Requirement boilerplates: Transition from manually-enforced to automatically-verifiable natural language patterns

By enforcing predefined linguistic patterns on requirements statements, boilerplates serve as an effective tool for mitigating ambiguities and making Natural Language requirements more amenable to automation. For a boilerplate to be effective, one needs to check whether the boilerplate has been properly applied. This should preferably be done automatically, as manual checking of conformance to a boilerplate can be laborious and error prone. In this paper, we present insights into building an automatic solution for checking conformance to requirement boilerplates using Natural Language Processing (NLP). We present a generalizable method for casting requirement boilerplates into automated NLP pattern matchers and reflect on our practical experience implementing automated checkers for two well-known boilerplates in the RE community. We further highlight the use of NLP for identification of several problematic syntactic constructs in requirements which can lead to ambiguities.

[1]  Beatrice Santorini,et al.  Building a Large Annotated Corpus of English: The Penn Treebank , 1993, CL.

[2]  Mitchell P. Marcus,et al.  Text Chunking using Transformation-Based Learning , 1995, VLC@ACL.

[3]  Mark Hepple,et al.  Independence and Commitment: Assumptions for Rapid Training and Execution of Rule-based POS Taggers , 2000, ACL.

[4]  James H. Martin,et al.  Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition , 2000 .

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

[6]  Jane Cleland-Huang,et al.  Improving automated requirements trace retrieval: a study of term-based enhancement methods , 2010, Empirical Software Engineering.

[7]  Alistair Mavin,et al.  Easy Approach to Requirements Syntax (EARS) , 2009, 2009 17th IEEE International Requirements Engineering Conference.

[8]  Klaus Pohl,et al.  Requirements Engineering - Fundamentals, Principles, and Techniques , 2010 .

[9]  Alistair Mavin,et al.  Big Ears (The Return of "Easy Approach to Requirements Engineering") , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[10]  Thomas Moser,et al.  DODT: Increasing requirements formalism using domain ontologies for improved embedded systems development , 2011, 14th IEEE International Symposium on Design and Diagnostics of Electronic Circuits and Systems.

[11]  Sarah C. Gregory Easy EARS : Rapid Application of the Easy Approach to Requirements Syntax , 2011 .

[12]  Aurora Vizcaíno,et al.  Requirements engineering tools: Capabilities, survey and assessment , 2012, Inf. Softw. Technol..

[13]  Mehrdad Sabetzadeh,et al.  RUBRIC: a flexible tool for automated checking of conformance to requirement boilerplates , 2013, ESEC/FSE 2013.

[14]  Mehrdad Sabetzadeh,et al.  Automatic Checking of Conformance to Requirement Boilerplates via Text Chunking: An Industrial Case Study , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

[15]  Mehrdad Sabetzadeh,et al.  Improving requirements glossary construction via clustering: approach and industrial case studies , 2014, ESEM '14.