Nuts and Bolts of Extracting Variability Models from Natural Language Requirements Documents

Natural language (NL) requirements documents are often ambiguous, and this is considered as a source of problems in the later interpretation of requirements. Ambiguity detection tools have been developed with the objective of improving the quality of requirement documents. However, defects as vagueness, optionality, weakness and multiplicity at requirements level can in some cases give an indication of possible variability, either in design and in implementation choices or configurability decisions. Variability information is actually the seed of the software engineering development practice aiming at building families of related systems, known as software product lines. Building on the results of previous analyses conducted on large and real word requirement documents, with QuARS NL analysis tool, we provide here a classification of the forms of ambiguity that indicate variation points, and we illustrate the practical aspects of the approach by means of a simple running example. To provide a more complete description of a line of software products, it is necessary to extrapolate, in addition to variability, also the common elements. To this end we propose here to take advantage of the capabilities of the REGICE tool to extract and cluster the glossary terms from the requirement documents. In summary, we introduce the combined application of two different NL processing tools to extract features and variability and use them to model a software product line.

[1]  Stefania Gnesi,et al.  Detecting requirements defects with NLP patterns: an industrial experience in the railway domain , 2018, Empirical Software Engineering.

[2]  Mathieu Acher,et al.  Automated extraction of product comparison matrices from informal product descriptions , 2017, J. Syst. Softw..

[3]  Stefania Gnesi,et al.  An automatic tool for the analysis of natural language requirements , 2005, Comput. Syst. Sci. Eng..

[4]  Stan Jarzabek,et al.  Handling variant requirements in domain modeling , 2003, J. Syst. Softw..

[5]  Mehrdad Sabetzadeh,et al.  Automated Extraction and Clustering of Requirements Glossary Terms , 2017, IEEE Transactions on Software Engineering.

[6]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[7]  Thomas Leich,et al.  FeatureIDE: An extensible framework for feature-oriented software development , 2014, Sci. Comput. Program..

[8]  Felice Dell'Orletta,et al.  CMT and FDE: tools to bridge the gap between natural language documents and feature diagrams , 2015, SPLC.

[9]  Marcelo R. Campo,et al.  Mining textual requirements to assist architectural software design: a state of the art review , 2012, Artificial Intelligence Review.

[10]  Stefania Gnesi,et al.  Requirement Engineering of Software Product Lines: Extracting Variability Using NLP , 2018, 2018 IEEE 26th International Requirements Engineering Conference (RE).

[11]  Hai H. Wang,et al.  Formal semantics and verification for feature modeling , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

[12]  Felice Dell'Orletta,et al.  Mining commonalities and variabilities from natural language documents , 2013, SPLC '13.

[13]  Stefania Gnesi,et al.  Hacking an Ambiguity Detection Tool to Extract Variation Points: an Experience Report , 2018, VaMoS.

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

[15]  Olivier Barais,et al.  Automating the formalization of product comparison matrices , 2014, ASE.

[16]  Zarinah Mohd Kasirun,et al.  Feature extraction approaches from natural language requirements for reuse in software product lines: A systematic literature review , 2015, J. Syst. Softw..

[17]  Vincenzo Gervasi,et al.  On the Systematic Analysis of Natural Language Requirements with CIRCE , 2006, Automated Software Engineering.

[18]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[19]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[20]  Linda H. Rosenberg,et al.  Automated Analysis of Requirement Specifications , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[21]  Yang Li,et al.  Reverse engineering variability from requirement documents based on probabilistic relevance and word embedding , 2018, SPLC.

[22]  Arnaud Gotlieb,et al.  Synthesis of attributed feature models from product descriptions , 2015, SPLC.

[23]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[24]  Andrea Esuli,et al.  Natural Language Requirements Processing: A 4D Vision , 2017, IEEE Software.

[25]  Stefania Gnesi,et al.  Ambiguity defects as variation points in requirements , 2017, VaMoS.

[26]  Didar Zowghi,et al.  On the Role of Ambiguity in RE , 2010, REFSQ.

[27]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[28]  Mathieu Acher,et al.  From comparison matrix to Variability Model: The Wikipedia case study , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[29]  Yair Wand,et al.  Variability Analysis of Requirements: Considering Behavioral Differences and Reflecting Stakeholders’ Perspectives , 2016, IEEE Transactions on Software Engineering.