Toward Learning Realizable Scenario-Based, Formal Requirements Specifications

Distributed, software-intensive systems such as fully automated cars have to handle various situations employing message-based coordination. The growing complexity of such systems results in an increasing difficulty to achieve a high quality of the systems' requirements specifications, particularly w.r.t. the realizability of the specifications. Scenario-based requirements engineering addresses the message-based coordination of such systems and enables, if underpinned with formal languages, automatic requirements validation techniques for proving the realizability of a requirements specification. However, formal requirements modeling languages require a deep knowledge of requirements engineers and typically require many manual iterations until they find a realizable specification. In order to support requirements engineers in the stepwise development of scenario-based requirements specifications, we propose to evolve a high-quality specification from a (presumably unrealizable) manually created specification employing an evolutionary algorithm. In this paper, we show our results on automatically evolving new assumptions on the systems' environment behavior that guarantee a realizable requirements specification. Based on this contribution, we outline our research roadmap toward our long-term goal of automatically supporting requirements engineers in finding high-quality requirements specifications.

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

[2]  Krishnendu Chatterjee,et al.  Conditionally Optimal Algorithms for Generalized Büchi Games , 2016, MFCS.

[3]  David Harel,et al.  Come, let's play - scenario-based programming using LSCs and the play-engine , 2003 .

[4]  Jan Oliver Ringert,et al.  On well-separation of GR(1) specifications , 2016, SIGSOFT FSE.

[5]  Guy Katz,et al.  Scenario-Based Modeling and Synthesis for Reactive Systems with Dynamic System Structure in ScenarioTools , 2016, D&P@MoDELS.

[6]  Blas Galván,et al.  Use of multiple objective evolutionary algorithms in optimizing surveillance requirements , 2006, Reliab. Eng. Syst. Saf..

[7]  Keith L. Downing,et al.  Introduction to Evolutionary Algorithms , 2006 .

[8]  Ufuk Topcu,et al.  Counter-strategy guided refinement of GR(1) temporal logic specifications , 2013, 2013 Formal Methods in Computer-Aided Design.

[9]  Amir Pnueli,et al.  Synthesis of Reactive(1) designs , 2006, J. Comput. Syst. Sci..

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

[11]  Jörg Holtmann,et al.  Integrated and iterative systems engineering and software requirements engineering for technical systems , 2016, J. Softw. Evol. Process..

[12]  Michael O'Neill,et al.  Grammatical Evolution: Evolving Programs for an Arbitrary Language , 1998, EuroGP.

[13]  R. Neville,et al.  Optimizing system requirements with evolutionary computation , 2002, Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No.02TH8600).

[14]  Sanjit A. Seshia,et al.  Mining assumptions for synthesis , 2011, Ninth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMPCODE2011).

[15]  David Harel,et al.  LSCs: Breathing Life into Message Sequence Charts , 1999, Formal Methods Syst. Des..

[16]  Joel Greenyer,et al.  Synthesizing Executable PLC Code for Robots from Scenario-Based GR(1) Specifications , 2017, STAF Workshops.