ReqWiki: A Semantic System for Collaborative Software Requirements Engineering
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], "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].
2. Features
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.
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.
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
- "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.
- "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.
- "Can Text Mining Assistants Help to Improve Requirements Specifications?", Mining Unstructured Data (MUD 2012), Kingston, Ontario, Canada, October 17, 2012.