Within software engineering, requirements engineering starts from imprecise and vague user requirements descriptions and infers precise, formalized specifications. Techniques, such as interviewing by requirements engineers, are typically applied to identify the user's needs. We want to partially automate even this first step of requirements elicitation by methods of evolutionary computation. The idea is to enable users to specify their desired software by listing examples of behavioral descriptions. Users initially specify two lists of operation sequences, one with desired behaviors and one with forbidden behaviors. Then, we search for the appropriate formal software specification in the form of a deterministic finite automaton. We solve this problem known as grammatical inference with an active coevolutionary approach following Bongard and Lipson . The coevolutionary process alternates between two phases: (A) additional training data is actively proposed by an evolutionary process and the user is interactively asked to label it; (B) appropriate automata are then evolved to solve this extended grammatical inference problem. Our approach leverages multi-objective evolution in both phases and outperforms the state-of-the-art technique  for input alphabet sizes of three and more, which are relevant to our problem domain of requirements specification.
|Title of host publication||Proceedings of the Genetic and Evolutionary Computation Conference|
|Number of pages||8|
|Place of Publication||New York, NY, USA|
|Publication status||Published - 01.07.2017|
|Event||2017 Genetic and Evolutionary Computation Conference Companion - Berlin, Germany|
Duration: 15.07.2017 → 19.07.2017