dc.description.abstract |
Use of the software based systems has increased very rapidly in last few decades. A number of rules, processes and standards are developed to bring accuracy and ease in software development process. Inspite of it the rate of failures is increased in software projects. Significant amounts of the failures are due to ambiguities in requirements stated in software requirement specification (SRS) document, which leads to the wrong implementations in later stages. SRS is one of the most important document which is produced during the requirement engineering phase. Requirement engineering is initial and one of the most integral phase of software development life cycle. Requirements help us to understand the nature of software before developing it. The success of the whole software project depends upon the quality of the requirements. But as we know that mostly the software requirements are stated and documented in the natural language. The requirements written in natural language can be ambiguous and inconsistent. These ambiguities and inconsistencies can lead to misinterpretations and wrong implementations in design and development phase. To address these issues a number of approaches, tools and techniques have been proposed for the automatic detection of natural language ambiguities from SRS documents.
However, to the best of our knowledge, there are still many loop holes in the tools and techniques developed till now. In this research first of all we performed the systematic literature review (SLR) based on tools and techniques used or proposed by different researchers in context of ambiguity detection for the software requirements engineering process. This SLR includes division of papers according to the type of ambiguity addressed, approaches used by the authors to detect the different kinds of ambiguities. Year wise rate of publication of studies with respect to different kinds of ambiguities, libraries / technologies used to develop tools. Total 29 tools were identified and a strong comparison is performed. We also focused on figuring out the popularity of different tools and techniques on the basis of citations.
After performing this state of the art Systematic Literature Review (SLR). We developed a new approach for automatic detection of ambiguous software requirement using natural language processing based on knowledge and rules based techniques. The approach we developed provides a knowledge based architecture using libraries containing the ambiguous terminology. We also developed rules based algorithms for the detection of passive voice and past tense ambiguity. Then we validated it by developing an open source tool named as ASRA (Ambiguous Software
vii
Requirement Analyzer) in Python using Natural Language Tool Kit (NLTK), which is re-validated by different case studies i.e. School Management System Software, Child Care Management System Software. The different kinds of lexical, syntactic, passive voice and past tense ambiguities detected by our proposed tool ASRA are validated by above mentioned case studies using the perimeters like Accuracy, Precision, Recall and F-Measure. |
en_US |