Verification of event-driven software systems using the specification language of cooperating automata objects

The CIAO (Cooperative Interaction Automata Objects) specification language is intended to describe the behavior of distributed and parallel event-driven systems. This class of systems includes various software and hardware systems for control, monitoring, data collection, and processing. The ability...

Full description

Bibliographic Details
Main Authors: Irina V. Afanasieva, Fedor A. Novikov, Ludmila N. Fedorchenko
Format: Article
Language:English
Published: Saint Petersburg National Research University of Information Technologies, Mechanics and Optics (ITMO University) 2023-08-01
Series:Naučno-tehničeskij Vestnik Informacionnyh Tehnologij, Mehaniki i Optiki
Subjects:
Online Access:https://ntv.ifmo.ru/file/article/22199.pdf
_version_ 1797740096165773312
author Irina V. Afanasieva
Fedor A. Novikov
Ludmila N. Fedorchenko
author_facet Irina V. Afanasieva
Fedor A. Novikov
Ludmila N. Fedorchenko
author_sort Irina V. Afanasieva
collection DOAJ
description The CIAO (Cooperative Interaction Automata Objects) specification language is intended to describe the behavior of distributed and parallel event-driven systems. This class of systems includes various software and hardware systems for control, monitoring, data collection, and processing. The ability to verify compliance with requirements is desirable competitive advantage for such systems. The CIAO language extends the concept of state machines of the UML (Unified Modeling Language) with the possibility of cooperative interaction of several automata through strictly defined interfaces. The cooperative interaction of automatа objects is defined by a link scheme that defines how the provided and required interfaces of different automatа objects are connected. Thus, the behavior of the system as a whole could be described as a set of execution protocols, each of which is a sequence of interface calls, possibly with guard conditions. We represent a set of protocols using a semantic graph in which all possible paths from the initial nodes to the final nodes define sequences of interface method calls. Because the interfaces are strictly defined in advance by the connection scheme, it is possible to construct a semantic graph automatically according to a given system of interacting automaton objects. To verify the system behavior, one only has to check if each path in the semantic graph does satisfy the requirements. System requirements are formally described using conditional regular expressions that define patterns of acceptable and forbidden behavior. This article proposes methods and algorithms that allow you to check the compliance of programs in the CIAO language with the requirements automatically and, thereby, check the semantics of the developed program. The proposed method narrows the specification formalism to the class of regular languages and the programming language to a language with a simple and predefined structure. In many practical cases, this is sufficient for effective verification.
first_indexed 2024-03-12T14:07:37Z
format Article
id doaj.art-4d15bf0db4a84e0f8aa8bd180eabb380
institution Directory Open Access Journal
issn 2226-1494
2500-0373
language English
last_indexed 2024-03-12T14:07:37Z
publishDate 2023-08-01
publisher Saint Petersburg National Research University of Information Technologies, Mechanics and Optics (ITMO University)
record_format Article
series Naučno-tehničeskij Vestnik Informacionnyh Tehnologij, Mehaniki i Optiki
spelling doaj.art-4d15bf0db4a84e0f8aa8bd180eabb3802023-08-21T11:43:02ZengSaint Petersburg National Research University of Information Technologies, Mechanics and Optics (ITMO University)Naučno-tehničeskij Vestnik Informacionnyh Tehnologij, Mehaniki i Optiki2226-14942500-03732023-08-0123475075610.17586/2226-1494-2023-23-4-750-756Verification of event-driven software systems using the specification language of cooperating automata objectsIrina V. Afanasieva0https://orcid.org/0000-0003-4225-4124Fedor A. Novikov1https://orcid.org/0000-0003-4450-0173Ludmila N. Fedorchenko2https://orcid.org/0000-0002-4008-9316PhD, Head of Laboratory, Special Astrophysical Observatory of the Russian Academy of Sciences (SAO RAS), Nizhny Arkhyz, 369167, Russian Federation, sc 57210431774D.Sc., Senior Researcher, Professor, Peter the Great St. Petersburg Polytechnic University (SPbPU), Saint Petersburg, 195251, Russian Federation; Professor, Alferov Academic University, Saint Peterburg, 194021, Russian Federation, sc 16441904500PhD, Senior Researcher, St. Petersburg Federal Research Center of the Russian Academy of Sciences, Saint Petersburg, 199178, Russian Federation, sc 36561350100The CIAO (Cooperative Interaction Automata Objects) specification language is intended to describe the behavior of distributed and parallel event-driven systems. This class of systems includes various software and hardware systems for control, monitoring, data collection, and processing. The ability to verify compliance with requirements is desirable competitive advantage for such systems. The CIAO language extends the concept of state machines of the UML (Unified Modeling Language) with the possibility of cooperative interaction of several automata through strictly defined interfaces. The cooperative interaction of automatа objects is defined by a link scheme that defines how the provided and required interfaces of different automatа objects are connected. Thus, the behavior of the system as a whole could be described as a set of execution protocols, each of which is a sequence of interface calls, possibly with guard conditions. We represent a set of protocols using a semantic graph in which all possible paths from the initial nodes to the final nodes define sequences of interface method calls. Because the interfaces are strictly defined in advance by the connection scheme, it is possible to construct a semantic graph automatically according to a given system of interacting automaton objects. To verify the system behavior, one only has to check if each path in the semantic graph does satisfy the requirements. System requirements are formally described using conditional regular expressions that define patterns of acceptable and forbidden behavior. This article proposes methods and algorithms that allow you to check the compliance of programs in the CIAO language with the requirements automatically and, thereby, check the semantics of the developed program. The proposed method narrows the specification formalism to the class of regular languages and the programming language to a language with a simple and predefined structure. In many practical cases, this is sufficient for effective verification.https://ntv.ifmo.ru/file/article/22199.pdfverificationevent-driven programscritical system developmentregular expressionselevator control system
spellingShingle Irina V. Afanasieva
Fedor A. Novikov
Ludmila N. Fedorchenko
Verification of event-driven software systems using the specification language of cooperating automata objects
Naučno-tehničeskij Vestnik Informacionnyh Tehnologij, Mehaniki i Optiki
verification
event-driven programs
critical system development
regular expressions
elevator control system
title Verification of event-driven software systems using the specification language of cooperating automata objects
title_full Verification of event-driven software systems using the specification language of cooperating automata objects
title_fullStr Verification of event-driven software systems using the specification language of cooperating automata objects
title_full_unstemmed Verification of event-driven software systems using the specification language of cooperating automata objects
title_short Verification of event-driven software systems using the specification language of cooperating automata objects
title_sort verification of event driven software systems using the specification language of cooperating automata objects
topic verification
event-driven programs
critical system development
regular expressions
elevator control system
url https://ntv.ifmo.ru/file/article/22199.pdf
work_keys_str_mv AT irinavafanasieva verificationofeventdrivensoftwaresystemsusingthespecificationlanguageofcooperatingautomataobjects
AT fedoranovikov verificationofeventdrivensoftwaresystemsusingthespecificationlanguageofcooperatingautomataobjects
AT ludmilanfedorchenko verificationofeventdrivensoftwaresystemsusingthespecificationlanguageofcooperatingautomataobjects