Methodology for Development of Event-driven Software Systems using CIAO Specification Language
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 PatternsAbstract
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.
References
2. Afanasieva I.V., Novikov F.A. [Software Architecture of Optical Detector Systems]. Informatsionno-upravliaiushchie sistemy – Information and Control Systems. 2016. vol. 3. pp. 51–63. (In Russ.).
3. Levonevskiy D., Novikov F., Fedorchenko L., Afanasieva I. Verification of Internet Protocol Properties Using Cooperating Automaton Objects. Proceedings of the 12th International Conference on Security of Information and Networks (SIN'19). ACM. 2019. pp. 1–4.
4. Harel D., Naamad A. The STATEMATE semantics of statecharts. ACM Transactions on Software Engineering and Methodology (TOSEM). 1996. vol. 5. no. 4. pp. 293–333.
5. Selic B., Gullekson G., Ward P.T. Real-Time Object-Oriented Modeling. John Wiley & Sons. 1994. 525 p.
6. Gomaa H. Designing Concurrent, Distributed, and Real-Time Applications with UML. Proceedings of the 28th international conference on Software engineering. 2006. pp. 1059–1060.
7. Gomaa H. Real-Time Software Design for Embedded Systems. Cambridge University Press. 2016. 586 p.
8. Polikarpova N.I., Shalyto A.A. Avtomatnoe programmirovanie [Automata-Based Programming]. Piter. 2011. 176 p. (In Russ.).
9. Novikov F.A., Tikhonova U.N. [An Automata Based Method for Domain Specific Languages Definition (Part 3)]. Informatsionno-upravliaiushchie sistemy – Information and Control Systems. 2010. vol. 3. pp. 29–37. (In Russ.).
10. Fedorchenko L., Baranov S. Equivalent Transformations and Regularization in Context–Free Grammars. Cybernetics and Information Technologies. 2015. vol. 14. no. 4. pp. 29–44.
11. Novikov F.A., Ivanov D.Iu. Modelirovanie na UML. Teoriia, praktika, videokurs [Modeling in UML. Theory, Practice, Video Course]. Nauka i Tekhnika. 2010. 640 p. (In Russ.).
12. Afanasieva I.V. Metod proektirovaniya i realizacii parallel'nyh reagiruyushchih sistem: dissertaciya [A method for designing and implementing concurrent reactive systems: PhD (tech) thesis]. 2018. 137 p. (In Russ.).
13. Knuth D.E. The Art of Computer Programming: Fundamental Algorithms. 3rd ed. Addison-Wesley Professional. 1998. vol. 1. 652 p.
14. Novikov F. et al. Attribute-based approach of defining the secure behavior of automata objects. Proceedings of the 10th International Conference on Security of Information and Networks (SIN'17). 2017. pp. 67–72.
15. Novikov F.A., Afanasieva I.V. [Cooperative Interaction of Automata Objects]. Informatsionno-upravliaiushchie sistemy – Information and Control Systems. 2016. vol. 6. pp. 50–63. (In Russ.).
16. Meyer B. Object-Oriented Software Construction. 2nd ed. Prentice-Hall. 1997. 1296 p.
17. Nesteruk D. Design Patterns in .NET: Reusable Approaches in C# and F# for Object-Oriented Software Design. Apress. 2019. 376 p.
18. OMG. Unified Modeling Language. Ver. 2.5.1. Available at: http://www.omg.org/spec/UML (accessed: 01.03.2020).
19. Yourdon E. Modern structured analysis. Prentice Hall. 1989. 688 p.
20. Martynenko B.K. Sintaksicheski upravlyaemaya obrabotka dannykh [Syntactically Controlled Data Processing]. Izdatel'stvo Sankt-Peterburgskogo universiteta. 2004. 316 p. (In Russ.).
21. Fedorchenko L.N., Afanasyeva I.V. [A method for describing systems with complex behavior on the principles of generalized automata]. Vestnik Buryatskogo gosudarstvennogo universiteta. Matematika, informatika – Bulletin of the Buryat State University. Mathematics, computer science. 2018. vol. 4. pp. 22–36. (In Russ.).
22. Harel D. Modelling Reactive Systems with Statecharts: The Statemate Approach. McGraw-Hill. 1998. 258 p.
23. Harel D. The Rhapsody semantics of statecharts. Integration of Software Specification Techniques for Applications in Engineering. 2004. pp. 325–354.
24. Grigoryev I. AnyLogic 7 in Three Days: A Quick Course in Simulation Modeling. 2nd ed. CreateSpace Independent Publishing Platform. 2015. 256 p.
25. MathWorks. Stateflow. Available at: https://www.mathworks.com/help/stateflow/index.html (accessed: 01.03.2020).
26. Selic B. ObjecTime Limited, Real-Time ObjectOriented Modeling (ROOM). Proceedings of the 2nd IEEE Real-Time Technology and Applications Symposium (RTAS ’96). 1996. pp. 214.
27. Kanav S., Lúcio L., Hilden C., Schuetz T. Design and Runtime Verification Side-by-Side in eTrice. NASA Formal Methods Symposium. pp. 255–262.
28. Selic B. Using UML for modeling complex real-time systems. Languages, Compilers, and Tools for Embedded Systems. 1998. pp. 250–260.
29. Posse E., Dingel J. An executable formal semantics for UML-RT. Software and Systems Modeling. 2016. vol. 15. pp. 179–217.
30. Das T.K., Dingel J. Model development guidelines for UML-RT: conventions, patterns and antipatterns. Software and Systems Modeling. 2018. vol. 17. pp. 717–752.
31. Kedwan F., Sharma C. Model-Driven Software Development Platforms Reviews. International Journal of Computer Applications. 2019. vol. 178. no. 31. pp. 24–33.
32. IBM Rational Rose RealTime. Available at: https://www.ibm.com/support/pages/node/574287 (accessed: 01.03.2020).
33. IBM Rational Software Architect RealTime Edition, v9.5.0 Product Documentation. Available at: https://www.ibm.com/support/knowledgecenter/SS5JSH_9.5.0 (accessed: 01.03.2020).
34. Hili N., Dingel J., Beaulieu A. Modelling and Code Generation for Real-Time Embedded Systems with UML-RT and Papyrus-RT. Proceedings of the 39th International Conference on Software Engineering Companion (ICSE-C). IEEE/ACM. 2017. pp. 509–510.
35. Kahani N., Hili N., Cordy J.R., Dingel J. Evaluation of UML-RT and Papyrus-RT for modelling self-adaptive systems. Proceedings of the 9th International Workshop on Modelling in Software Engineering. 2017. pp. 12–18.
36. Kahani N., Bagherzadeh M., Dingel J., Cordy J.R. The problems with Eclipse modeling tools: A topic analysis of Eclipse forums. Proceedings of the 19th International Conference on Model Driven Engineering Languages and Systems. ACM/IEEE. 2016. pp. 227–237.
37. Eclipse Papyrus Real Time. Available at: https://www.eclipse.org/papyrus-rt (accessed: 01.03.2020).
38. Gurov V.S., Mazin M.A., Narvsky A.S., Shalyto A.A. Tools for support of automata-based programming. Programming and Computer Software. 2007. vol. 33. no. 6. pp. 343–355.
39. Ricca F et al. On the impact of state-based model-driven development on maintainability: a family of experiments using UniMod. Empir Software Eng. 2018. vol. 23. pp. 1743–1790.
Published
How to Cite
Section
Copyright (c) Ирина Викторовна Афанасьева, Фёдор Александрович Новиков, Людмила Николаевна Федорченко

This work is licensed under a Creative Commons Attribution 4.0 International License.
Authors who publish with this journal agree to the following terms: Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal. Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal. Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).