Skip navigation.
Home
Semantic Software Lab
Concordia University
Montréal, Canada

ReqWiki: A Semantic System for Collaborative Software Requirements Engineering

Printer-friendly versionPrinter-friendly versionPDF versionPDF version

1. Overview

ReqWiki is a novel open source web-based approach for software requirements engineering. It is based on a semantic wiki that includes natural language processing (NLP) assistants, which work collaboratively with humans on the requirements specification documents. It is the first Requirements Engineering tool that combines wiki technology for collaborative use and semantic knowledge representation for formal queries and reasoning with natural language processing assistants within a single, cohesive interface. ReqWiki is described in our COMPSAC 2013 publication [1], Sateli, B., E. Angius, and R. Witte, "The ReqWiki Approach for Collaborative Software Requirements Engineering with Integrated Text Analysis Support", The 37th Annual International Computer Software & Applications Conference (COMPSAC 2013), Kyoto, Japan : IEEE, pp. 405–414, 07/2013. Additionally, a brief, high-level description of ReqWiki is available in our WikiSym'12 paper [2].

ReqWiki User InterfaceReqWiki User Interface

2. Features

Based entirely on open source and open standards, ReqWiki is powered by MediaWiki – the powerful engine behind Wikipedia – and uses the Semantic MediaWiki extension to provide a technical platform with semantic support. The pre-defined semantic forms and templates in ReqWiki help users in creating various artifacts, while at the same time automatically creating the required semantic metadata. The generated semantic metadata by users are then automatically formalized in ReqWiki using its underlying ontology. Once the ontology is populated from the user input, it can be exploited in many ways, e.g., to create dynamic tables of complex traceability relationships such as: "set of needs and their corresponding features" as shown in the figure on the right. This way, traceability matrices that would have been manually created in traditional SRS documents can automatically be kept up-to-date. Automatic Traceability Links in ReqWikiAutomatic Traceability Links in ReqWiki



NLP capabilities are provided in ReqWiki through analysis pipelines deployed in the GATE architecture and brokered through the Semantic Assistants framework as web services. The NLP services are seamlessly integrated into the wiki environment, where they can be executed on demand by a user or proactively based on events. The user interface generated by our Semantic Assistants plug-in as shown in the figure below allows users to inquire about and invoke arbitrary NLP services on the wiki content. Also, this ReqWiki interface provides the possibility to perform collection-based NLP analysis by allowing users to collect pages of interest in a collection and invoke an NLP service on the pages at once, e.g., generate a multi-document summary.

NLP Services Provided by Semantic Assistants in ReqWikiNLP Services Provided by Semantic Assistants in ReqWiki

Depending on the Semantic Assistants server settings configured in ReqWiki, the list of available NLP services are dynamically generated and provided to users. Users then have the option to view a brief description of what each service does and customize the service execution by providing additional runtime parameters. In ReqWiki, we provide generic NLP pipelines, such as named entity detection, as well as domain-specific analysis, such as finding SRS defects like Options, Directives or Weak Phrases [3], [1].

The figure below shows the results of a Writing Quality pipeline executed on a use case description template. The Writing Quality pipeline performs grammar and spell checking on the content and provides suggestions for improvements, where possible. Employing such NLP services has proved in our user studies to improve the quality of the SRS documents on both syntactic and semantic level.

Quality Assessment of SRS Documents in ReqWikiQuality Assessment of SRS Documents in ReqWiki

3. Download & Installation

In order to use ReqWiki, you need to set up a MediaWiki version 1.16 or later and install our Semantic Assistants Wiki-NLP plug-in. You will also need to import the ReqWiki templates in your wiki. These templates are available in our GitHub repository.

If you also want to install your own Semantic Assistants server (offering NLP services), you should obtain the complete Semantic Assistants Architecture.


References

  1. Sateli, B., E. Angius, and R. Witte, "The ReqWiki Approach for Collaborative Software Requirements Engineering with Integrated Text Analysis Support", The 37th Annual International Computer Software & Applications Conference (COMPSAC 2013), Kyoto, Japan : IEEE, pp. 405–414, 07/2013.
  2. Sateli, B., S. S. Rajivelu, E. Angius, and R. Witte, "ReqWiki: A Semantic System for Collaborative Software Requirements Engineering", The 8th International Symposium on Wikis and Open Collaboration (WikiSym 2012), Linz, Austria : ACM, 08/2012.
  3. Sateli, B., E. Angius, S. S. Rajivelu, and R. Witte, "Can Text Mining Assistants Help to Improve Requirements Specifications?", Mining Unstructured Data (MUD 2012), Kingston, Ontario, Canada, October 17, 2012.