RUS  ENG
Full version
JOURNALS // Informatics and Automation // Archive

Tr. SPIIRAN, 2020 Issue 19, volume 3, Pages 481–514 (Mi trspy1106)

Mathematical Modeling, Numerical Methods

Methodology for development of event-driven software systems using CIAO specification language

I. Afanasievaa, F. Novikovb, L. Fedorchenkocd

a Special Astrophysical Observatory of the Russian Academy of Sciences (SAO RAS)
b Peter the Great St. Petersburg Polytechnic University (SPbPU)
c St. Petersburg Institute for Informatics and Automation of Russian Academy of Sciences (SPIIRAS)
d Saint Petersburg State University (SPbU)

Abstract: Event-driven software systems, belonging to the class of systems with complex behavior in the scientific literature, are reactive systems, which react to the same input effect in different ways depending on their state and background.
It is convenient to describe such systems using state-transition models utilizing special language tools, both graphical and textual. Methodology for automated development of systems with complex behavior using the designed CIAO language (Cooperative Interaction of Automata Objects), which allows formally specifying the required behavior based on an informal description of the reacting system, is presented.
An informal description of a reacting system can be provided verbally in a natural language or in another way adopted in a specific domain. Further, according to this specification in the CIAO language, a software system for interacting automata in the C++ programming language is generated with a special system.
The generated program implements a behavior guaranteed to correspond to a given specification and original informal description. CIAO provides both graphical and textual notation. Graphic notation is based on an extended notation of state machine diagrams and component diagrams of the unified modeling language UML, which are well established in describing the behavior of event-driven systems.
The text syntax of the CIAO language is described by context-free grammar in regular form. Automatically generated C++ code allows using of both library and any external functions written manually.
At the same time, the evident correspondence of the formal specification and the generated code is preserved on conditions that the external functions conform to their specifications.
As an example, an original solution to D. Knut's problem of a responsive elevator control system is proposed. The effectiveness of the proposed methodology is demonstrated, since the automaton-converter generating the C++ code is presented as a responsive system, is specified in the CIAO language and implemented by the bootstrapping. The proposed methodology is compared with other well-known formal methods for describing systems with complex behavior.

Keywords: Behavior model, systems with complex behavior, reactive systems, state transition graph, syntactic flow-chart (graph-scheme), context-free grammar in regular form, C++ code generation patterns.

UDC: 006.72

Received: 21.04.2020

DOI: 10.15622/sp.2020.19.3.1



© Steklov Math. Inst. of RAS, 2024