@article{15025,
  abstract     = {{In software engineering, the imprecise requirements of a user are transformed to a formal requirements specification during the requirements elicitation process. This process is usually guided by requirements engineers interviewing the user. We want to partially automate this first step of the software engineering process in order to enable users to specify a desired software system on their own. With our approach, users are only asked to provide exemplary behavioral descriptions. The problem of synthesizing a requirements specification from examples can partially be reduced to the problem of grammatical inference, to which we apply an active coevolutionary learning approach. However, this approach would usually require many feedback queries to be sent to the user. In this work, we extend and generalize our active learning approach to receive knowledge from multiple oracles, also known as proactive learning. The ‘user oracle’ represents input received from the user and the ‘knowledge oracle’ represents available, formalized domain knowledge. We call our two-oracle approach the ‘first apply knowledge then query’ (FAKT/Q) algorithm. We compare FAKT/Q to the active learning approach and provide an extensive benchmark evaluation. As result we find that the number of required user queries is reduced and the inference process is sped up significantly. Finally, with so-called On-The-Fly Markets, we present a motivation and an application of our approach where such knowledge is available.}},
  author       = {{Wever, Marcel Dominik and van Rooijen, Lorijn and Hamann, Heiko}},
  journal      = {{Evolutionary Computation}},
  number       = {{2}},
  pages        = {{165–193}},
  publisher    = {{MIT Press Journals}},
  title        = {{{Multi-Oracle Coevolutionary Learning of Requirements Specifications from Examples in On-The-Fly Markets}}},
  doi          = {{10.1162/evco_a_00266}},
  volume       = {{28}},
  year         = {{2020}},
}

@inproceedings{25101,
  author       = {{van Rooijen, Lorijn and Baeumer, Frederik Simon and Platenius,  Marie Christin and Geierhos,,  Michaela and Hamann,  Heiko  and Engels, Gregor}},
  title        = {{{From User Demand to Software Service: Using Machine Learning to Automate the Requirements Specification Process}}},
  year         = {{2017}},
}

@inproceedings{97,
  abstract     = {{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.}},
  author       = {{van Rooijen, Lorijn and Bäumer, Frederik Simon and Platenius, Marie Christin and Geierhos, Michaela and Hamann, Heiko and Engels, Gregor}},
  booktitle    = {{2017 IEEE 25th International Requirements Engineering Conference Workshops (REW)}},
  isbn         = {{978-1-5386-3489-9}},
  keywords     = {{Software, Unified modeling language, Requirements engineering, Ontologies, Search problems, Natural languages}},
  location     = {{Lisbon, Portugal}},
  pages        = {{379--385}},
  publisher    = {{IEEE}},
  title        = {{{From User Demand to Software Service: Using Machine Learning to Automate the Requirements Specification Process}}},
  doi          = {{10.1109/REW.2017.26}},
  year         = {{2017}},
}

@article{6725,
  author       = {{Czerwinski, Wojciech and Martens, Wim and van Rooijen, Lorijn and Zeitoun, Marc and Zetzsche, Georg}},
  journal      = {{Discrete Mathematics & Theoretical Computer Science}},
  number       = {{4}},
  title        = {{{A Characterization for Decidable Separability by Piecewise Testable Languages}}},
  doi          = {{10.23638/DMTCS-19-4-1}},
  volume       = {{19}},
  year         = {{2017}},
}

@inproceedings{120,
  abstract     = {{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 [2]. 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 [2] for input alphabet sizes of three and more, which are relevant to our problem domain of requirements specification.}},
  author       = {{Wever, Marcel Dominik and van Rooijen, Lorijn and Hamann, Heiko}},
  booktitle    = {{Proceedings of the Genetic and Evolutionary Computation Conference (GECCO)}},
  pages        = {{1327----1334}},
  title        = {{{Active Coevolutionary Learning of Requirements Specifications from Examples}}},
  doi          = {{10.1145/3071178.3071258}},
  year         = {{2017}},
}

@techreport{221,
  author       = {{Platenius, Marie Christin and Josifovska, Klementina and van Rooijen, Lorijn and Arifulina, Svetlana and Becker, Matthias and Engels, Gregor and Schäfer, Wilhelm}},
  publisher    = {{Universität Paderborn}},
  title        = {{{An Overview of Service Specification Language and Matching in On-The-Fly Computing (v0.3)}}},
  year         = {{2016}},
}

@inproceedings{160,
  abstract     = {{A task at the beginning of the software development process is the creation of a requirements specification. The requirements specification is usually created by a software engineering expert. We try to substitute this expert by a domain expert (the user) and formulate the problem of creating requirements specifications as a search-based software engineering problem. The domain expert provides only examples of event sequences that describe the behavior of the required software program. These examples are represented by simple sequence diagrams and are divided into two subsets: positive examples of required program behavior and negative examples of prohibited program behavior. The task is then to synthesize a generalized requirements specification that usefully describes the required software. We approach this problem by applying a genetic algorithm and evolve deterministic finite automata (DFAs). These DFAs take the sequence diagrams as input that should be either accepted (positive example) or rejected (negative example). The problem is neither to find the minimal nor the most general automaton. Instead, the user should be provided with several appropriate automata from which the user can select, or which help the user to refine the examples given initially. We present the context of our research ("On-The-Fly Computing"), present our approach, report results indicating its feasibility, and conclude with a discussion.}},
  author       = {{van Rooijen, Lorijn and Hamann, Heiko}},
  booktitle    = {{Proceedings of 24th IEEE International Requirements Engineering Conference (RE 2016)}},
  pages        = {{3----9}},
  title        = {{{Requirements Specification-by-Example Using a Multi-Objective Evolutionary Algorithm}}},
  doi          = {{10.1109/REW.2016.015}},
  year         = {{2016}},
}

@inproceedings{6726,
  author       = {{Czerwinski, Wojciech and Martens, Wim and van Rooijen, Lorijn and Zeitoun, Marc}},
  booktitle    = {{Fundamentals of Computation Theory - 20th International Symposium, (FCT) 2015, Gdańsk, Poland, August 17-19, 2015, Proceedings}},
  pages        = {{173--185}},
  title        = {{{A Note on Decidable Separability by Piecewise Testable Languages}}},
  doi          = {{10.1007/978-3-319-22177-9\_14}},
  year         = {{2015}},
}

@phdthesis{6727,
  author       = {{van Rooijen, Lorijn}},
  publisher    = {{University of Bordeaux, France}},
  title        = {{{A combinatorial approach to the separation problem for regular languages. (Une approche combinatoire du problème de séparation pour les langages réguliers)}}},
  year         = {{2014}},
}

@article{6728,
  author       = {{Place, Thomas and van Rooijen, Lorijn and Zeitoun, Marc}},
  issn         = {{1860-5974}},
  journal      = {{Logical Methods in Computer Science}},
  number       = {{3}},
  publisher    = {{Logical Methods in Computer Science e.V.}},
  title        = {{{On Separation by Locally Testable and Locally Threshold Testable Languages}}},
  doi          = {{10.2168/lmcs-10(3:24)2014}},
  volume       = {{10}},
  year         = {{2014}},
}

@article{6729,
  author       = {{Coumans, Dion and Gehrke, Mai and van Rooijen, Lorijn}},
  issn         = {{1570-8683}},
  journal      = {{Journal of Applied Logic}},
  number       = {{1}},
  pages        = {{50--66}},
  publisher    = {{Elsevier BV}},
  title        = {{{Relational semantics for full linear logic}}},
  doi          = {{10.1016/j.jal.2013.07.005}},
  volume       = {{12}},
  year         = {{2013}},
}

@inproceedings{6730,
  author       = {{Place, Thomas and van Rooijen, Lorijn and Zeitoun, Marc}},
  booktitle    = {{Annual Conference on Foundations of Software Technology and Theoretical Computer Science, (FSTTCS) 2013, December 12-14, 2013, Guwahati, India}},
  pages        = {{363----375}},
  publisher    = {{Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik}},
  title        = {{{Separating Regular Languages by Locally Testable and Locally Threshold Testable Languages}}},
  doi          = {{10.4230/LIPICS.FSTTCS.2013.363}},
  volume       = {{24}},
  year         = {{2013}},
}

@inproceedings{6732,
  author       = {{Place, Thomas and van Rooijen, Lorijn and Zeitoun, Marc}},
  booktitle    = {{Mathematical Foundations of Computer Science 2013 - 38th International Symposium, (MFCS) 2013, Klosterneuburg, Austria, August 26-30, 2013}},
  isbn         = {{9783642403125}},
  issn         = {{0302-9743}},
  pages        = {{729--740}},
  publisher    = {{Springer Berlin Heidelberg}},
  title        = {{{Separating Regular Languages by Piecewise Testable and Unambiguous Languages}}},
  doi          = {{10.1007/978-3-642-40313-2_64}},
  year         = {{2013}},
}

@article{7342,
  author       = {{Chernilovskaya, Anna and Gehrke, Mai and van Rooijen, Lorijn}},
  issn         = {{1367-0751}},
  journal      = {{Logic Journal of IGPL}},
  number       = {{6}},
  pages        = {{1110--1132}},
  publisher    = {{Oxford University Press (OUP)}},
  title        = {{{Generalized Kripke semantics for the Lambek-Grishin calculus}}},
  doi          = {{10.1093/jigpal/jzr051}},
  volume       = {{20}},
  year         = {{2012}},
}

@article{6733,
  author       = {{Chernilovskaya, A. and Gehrke, M. and van Rooijen, Lorijn}},
  issn         = {{1367-0751}},
  journal      = {{Logic Journal of IGPL}},
  number       = {{6}},
  pages        = {{1110--1132}},
  publisher    = {{Oxford University Press (OUP)}},
  title        = {{{Generalized Kripke semantics for the Lambek-Grishin calculus}}},
  doi          = {{10.1093/jigpal/jzr051}},
  volume       = {{20}},
  year         = {{2012}},
}

