GSoC Gupta Lab
Software Requirement Specification (SRS) is an initial document that captures the functional, non-functional, and technical aspects of the stakeholders’ requirement. It can be considered as a blueprint of their requirements and related dependencies. Being documented using some natural language, the issues such as incompleteness, inconsistency, ambiguity and redundancy may unintentionally seeded in the SRS. As an initial document to be referred in the development process, the quality of SRS needs to be ensured such that the natural language issues would not affect the other software artifacts. In this project, we aim to use Natural Language Processing (NLP) and Artificial Intelligence (AI) techniques to create an automated tool to verify the specifications documented in SRS and also generate use cases in a given format.
Software Engineering, Basic knowledge about NLP
Java, Python, c++, c .
Till now, we have performed lexical and syntactic analysis of the text specified in the SRS using Stanford core NLP. We have also developed a convention to capture the functional requirements in the use cases along with ensuring their correctness and consistency. Using all these prior knowledge with NLP, requirement specification, the road map for the functional requirement analyzer is as follows:
We mostly focus on the different type of analysis steps – lexical analysis, syntactic analysis, semantic analysis and pragmatic analysis – of the requirements (i.e., natural language in English) documented SRS. Specifically, first we convert the chunk of texts into sentences and words (or tokens) that are easy to handle for NLP parser. Next, we perform text parsing or syntactic analysis to identify the universal dependencies and basic verification (e.g., sentence structure, language grammar, etc.). Next, in order to check the meaningfulness of the text, we perform semantic and pragmatic analysis. This would ensure that the requirements specified in SRS are correct, consistent, unambiguous and non-redundant.
Moreover, we also focus to visualize the requirements documented in the SRS such that the conflict-detection between the requirements can be identified. For this, we automatically generate the mapping between name and entities using Named-Entity Recognition (NER) technique. Once this process of verification of SRS gets completed, we aim to moves towards automatic generation of use cases from the functional requirements specified in the SRS.
Overview of the implementation approach of the Functional Requirement Analyzer
1. Every requirement is checked for clarity and consistency.
Copyright © 2015- Dixita Limbachiya
2. The SRS is complete in terms of functionalities.
3. Proper use cases are generated following all necessary rules and conventions.