From User Demand to Software Service: Using Machine Learning to Automate the Requirements Specification Process

Bridging the gap between informal, imprecise, and vague user requirements descriptions and precise formalized specifications is the main task of requirements engineering. Techniques such as interviews or story telling are used when requirements engineers try to identify a user's needs. The requirements specification process is typically done in a dialogue between users, domain experts, and requirements engineers. In our research, we aim at automating the specification of requirements. The idea is to distinguish between untrained users and trained users, and to exploit domain knowledge learned from previous runs of our system. We let untrained users provide unstructured natural language descriptions, while we allow trained users to provide examples of behavioral descriptions. In both cases, our goal is to synthesize formal requirements models similar to statecharts. From requirements specification processes with trained users, behavioral ontologies are learned which are later used to support the requirements specification process for untrained users. Our research method is original in combining natural language processing and search-based techniques for the synthesis of requirements specifications. Our work is embedded in a larger project that aims at automating the whole software development and deployment process in envisioned future software service markets.

[1]  Sabine Schulze,et al.  What Did You Mean? - Facing the Challenges of User-generated Software Requirements , 2015, ICAART.

[2]  Hans-Arno Jacobsen,et al.  Orchestrating SOA Using Requirement Specifications and Domain Ontologies , 2014, ICSOC.

[3]  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).

[4]  Felice Dell'Orletta,et al.  Measuring and Improving the Completeness of Natural Language Requirements , 2014, REFSQ.

[5]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[6]  Agung Fatwanto,et al.  Software requirements specification analysis using natural language processing technique , 2013, 2013 International Conference on QiR.

[7]  Amir Pnueli,et al.  Synthesis Revisited: Generating Statechart Models from Scenario-Based Requirements , 2005, Formal Methods in Software and Systems Modeling.

[8]  Heiko Hamann,et al.  Active coevolutionary learning of requirements specifications from examples , 2017, GECCO.

[9]  Erkki Mäkinen,et al.  An Interactive Approach for Synthesizing UML Statechart Diagrams from Sequence Diagrams , 2000, OOPSLA 2000.

[10]  Markus Dollmann,et al.  On- and Off-Topic Classification and Semantic Annotation of User-Generated Software Requirements , 2016, EMNLP.

[11]  Lionel C. Briand,et al.  A systematic review of transformation approaches between user requirements and analysis models , 2011, Requirements Engineering.

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

[13]  Colin de la Higuera,et al.  Grammatical Inference: Learning Automata and Grammars , 2010 .

[14]  Sabine Schulze,et al.  What Did You Mean , 2015, ICAART 2015.

[15]  Heiko Hamann,et al.  Requirements Specification-by-Example Using a Multi-objective Evolutionary Algorithm , 2016, 2016 IEEE 24th International Requirements Engineering Conference Workshops (REW).

[16]  Mark Harman,et al.  Search Based Software Engineering: Techniques, Taxonomy, Tutorial , 2010, LASER Summer School.

[17]  Imran Sarwar Bajwa,et al.  Minimizing ambiguity in natural language software requirements specification , 2011, 2011 Sixth International Conference on Digital Information Management.

[18]  Haruhiko Kaiya,et al.  Ontology based requirements analysis: lightweight semantic processing approach , 2005, Fifth International Conference on Quality Software (QSIC'05).

[19]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[20]  Hod Lipson,et al.  Active Coevolutionary Learning of Deterministic Finite Automata , 2005, J. Mach. Learn. Res..

[21]  Alexander Maedche,et al.  The state of the art in automated requirements elicitation , 2013, Inf. Softw. Technol..

[22]  Rajeev Alur,et al.  Synthesizing Finite-State Protocols from Scenarios and Requirements , 2014, Haifa Verification Conference.