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.
Key Words: Ambiguous Requirements. natural language requirement; r |
en_US |