NLARE, a natural language processing tool for automatic requirements evaluation

Most research works have found that an important root cause of software project failure comes from the requirements; their quality has an important impact over other artifacts. As the requirements are expressed in natural language, they can be an important source of defects. Aspects such as non ambiguity, completeness, and atomicity can be affected due the characteristics of natural language. Traditional practices focus on finding software bugs, as a corrective approach, until the project has been coded already, instead assuring quality since the beginning. By other hand, evaluating such quality attributes can be a difficult task. In this paper we propose some guidelines for a disciplined sentence structure for expressing the requirements, which allows natural language processing techniques to evaluate quality. We also propose a tool for automatic requirement evaluation based on the grammar structure of sentences expressed in natural language. With this tool we have a huge speed increase over manual evaluation. In order to validate our proposal we have implemented a set of experiments with real projects, assessing the impact of requirements quality over project results.

[1]  Jorge J. Gómez-Sanz,et al.  Requirements Elicitation for Agent-Based Applications , 2005, AOSE.

[2]  J. Hayes,et al.  Experiments in Automated Identification of Ambiguous Natural-Language Requirements , 2010 .

[3]  Daniel M. Berry,et al.  AbstFinder, A Prototype Natural Language Text Abstraction Finder for Use in Requirements Elicitation , 1997, Automated Software Engineering.

[4]  Joshua D. Summers,et al.  Elicitation and Development of Requirements Through Integrated Methods , 2009 .

[5]  Ram Chillarege,et al.  Defect type and its impact on the growth curve (software development) , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[6]  Erik Kamsties,et al.  From Contract Drafting to Software Specification: Linguistic Sources of Ambiguity , 2003 .

[7]  Reyes Juarez-Ramirez,et al.  Towards improving user interfaces: A proposal for integrating functionality and usability since early phases , 2011, 2011 International Conference on Uncertainty Reasoning and Knowledge Engineering.

[8]  George S. Avrunin,et al.  User guidance for creating precise and accessible property specifications , 2006, SIGSOFT '06/FSE-14.

[9]  Jan Renkema,et al.  Introduction to Discourse Studies , 2018 .

[10]  Jane Huffman Hayes,et al.  Improving requirements tracing via information retrieval , 2003, Proceedings. 11th IEEE International Requirements Engineering Conference, 2003..

[11]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[12]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[13]  Christopher D. Manning,et al.  Enriching the Knowledge Sources Used in a Maximum Entropy Part-of-Speech Tagger , 2000, EMNLP.

[14]  Jane Huffman Hayes,et al.  Helping analysts trace requirements: an objective look , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[15]  Forrest Shull,et al.  Inspecting the History of Inspections: An Example of Evidence-Based Technology Diffusion , 2008, IEEE Software.

[16]  Erik Kamsties,et al.  The Syntactically Dangerous All and Plural in Specifications , 2005, IEEE Softw..

[17]  Gerald M. Weinberg,et al.  Exploring Requirements: Quality Before Design , 1989 .

[18]  William Wilson,et al.  Automated quality analysis of Natural Language requirement specifications , 1996 .

[19]  Stephen P. Boyd,et al.  Measuring the expressiveness of a constrained natural language: an empirical study , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[20]  Allen P. Nikora,et al.  Improving the Accuracy of Space Mission Software Anomaly Frequency Estimates , 2009, 2009 Third IEEE International Conference on Space Mission Challenges for Information Technology.

[21]  Phillip A. Laplante,et al.  What Every Engineer Should Know about Software Engineering , 2007 .

[22]  Allen P. Nikora,et al.  Automated Identification of LTL Patterns in Natural Language Requirements , 2009, 2009 20th International Symposium on Software Reliability Engineering.