The automated synthesis of behavioural models in the form of state machines (SMs) from higher-level specifications has a high potential impact on the efficiency and accuracy of software development using models. In this paper, inspired by program synthesis techniques, we propose a model synthesis approach that takes as input a structural model of a system and its desired system properties, and automatically synthesizes executable SMs for its components. To this end, we first generate a synthesis formula for each component, consistent with the system properties, and then perform a State Space Exploration (SSE) of each component, based on its synthesis formula. Each step of the SSE involves simply solving the synthesis formula in different contexts, based on input messages and the current execution state. The result of the SSE is saved in a Labeled Transition System (LTS), for which we then synthesize detailed actions for each of its transitions. Finally, we transform the LTSs into UML-RT (UML real-time profile) SMs, and integrate them with the original structural models. We assess the applicability, performance, and scalability of our approach using several different use cases extracted from the literature.
Bence Graics Budapest University of Technology and Economics, Vince Molnár Budapest University of Technology and Economics, András Vörös Budapest University of Technology and Economics, Istvan Majzik Budapest University of Technology and Economics, Daniel Varro McGill University / Budapest University of Technology and Economics