<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">ntv</journal-id><journal-title-group><journal-title xml:lang="ru">Научно-технический вестник информационных технологий, механики и оптики</journal-title><trans-title-group xml:lang="en"><trans-title>Scientific and Technical Journal of Information Technologies, Mechanics and Optics</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">2226-1494</issn><issn pub-type="epub">2500-0373</issn><publisher><publisher-name>Университет ИТМО</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.17586/2226-1494-2023-23-4-750-756</article-id><article-id custom-type="elpub" pub-id-type="custom">ntv-206</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>КОМПЬЮТЕРНЫЕ СИСТЕМЫ И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>COMPUTER SCIENCE</subject></subj-group></article-categories><title-group><article-title>Верификация событийно-управляемых программных систем  с использованием языка спецификации взаимодействующих  автоматных объектов</article-title><trans-title-group xml:lang="en"><trans-title>Verifcation of event-driven software systems using the specifcation language  of cooperating automata objects</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-4225-4124</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Афанасьева</surname><given-names>И. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Afanasieva</surname><given-names>I. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Афанасьева Ирина Викторовна — кандидат технических наук, заведующий лабораторией</p><p>sc 57210431774</p><p>Нижний Архыз, 369167</p></bio><bio xml:lang="en"><p>Irina V. Afanasieva — PhD, Head of Laboratory</p><p>sc 57210431774</p><p>Nizhny Arkhyz, 369167</p></bio><email xlink:type="simple">riv615@gmail.com</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-4450-0173</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Новиков</surname><given-names>Ф. А.</given-names></name><name name-style="western" xml:lang="en"><surname>Novikov</surname><given-names>F. A.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Новиков Федор Александрович — доктор технических наук, старший научный сотрудник, профессор; профессор</p><p>sc 16441904500</p><p>Санкт-Петербург, 195251</p><p>Санкт-Петербург, 194021</p></bio><bio xml:lang="en"><p>Fedor A. Novikov — D.Sc., Senior Researcher, Professor; Professor</p><p>sc 16441904500</p><p>Saint Petersburg, 195251</p><p>Saint Peterburg, 194021</p></bio><email xlink:type="simple">fedornovikov51@gmail.com</email><xref ref-type="aff" rid="aff-2"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-4008-9316</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Федорченко</surname><given-names>Л. Н.</given-names></name><name name-style="western" xml:lang="en"><surname>Fedorchenko</surname><given-names>L. N.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Федорченко Людмила Николаевна — кандидат технических наук, старший научный сотрудник</p><p>sc 36561350100</p><p>Санкт-Петербург, 199178</p></bio><bio xml:lang="en"><p>Ludmila N. Fedorchenko — PhD, Senior Researcher</p><p>sc 36561350100</p><p>Saint Petersburg, 199178</p></bio><email xlink:type="simple">lnf@iias.spb.su</email><xref ref-type="aff" rid="aff-3"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Специальная астрофизическая обсерватория Российской академии наук</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Special Astrophysical Observatory of the Russian Academy of Sciences (SAO RAS)</institution><country>Russian Federation</country></aff></aff-alternatives><aff-alternatives id="aff-2"><aff xml:lang="ru"><institution>Санкт-Петербургский политехнический университет Петра Великого; Санкт-Петербургский национальный исследовательский Академический университет имени Ж.И. Алфёрова Российской академии наук</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Peter the Great St. Petersburg Polytechnic University (SPbPU); Alferov Academic University</institution><country>Russian Federation</country></aff></aff-alternatives><aff-alternatives id="aff-3"><aff xml:lang="ru"><institution>Санкт-Петербургский Федеральный исследовательский центр Российской академии наук</institution><country>Россия</country></aff><aff xml:lang="en"><institution>St. Petersburg Federal Research Center of the Russian Academy of Sciences</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2023</year></pub-date><pub-date pub-type="epub"><day>14</day><month>12</month><year>2024</year></pub-date><volume>23</volume><issue>4</issue><fpage>750</fpage><lpage>756</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Афанасьева И.В., Новиков Ф.А., Федорченко Л.Н., 2024</copyright-statement><copyright-year>2024</copyright-year><copyright-holder xml:lang="ru">Афанасьева И.В., Новиков Ф.А., Федорченко Л.Н.</copyright-holder><copyright-holder xml:lang="en">Afanasieva I.V., Novikov F.A., Fedorchenko L.N.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://ntv.elpub.ru/jour/article/view/206">https://ntv.elpub.ru/jour/article/view/206</self-uri><abstract><p>Введение. Язык спецификации Cooperative Interaction Automata Objects (CIAO) предназначен для описания поведения распределенных и параллельных систем, управляемых событиями. К этому классу систем относятся различные программно-аппаратные комплексы управления, контроля, сбора и обработки данных. Возможность автоматической проверки соответствия требованиям является желательным конкурентным преимуществом событийно-управляемых программных систем. Язык CIAO расширяет концепцию конечных автоматов (Unifed Modeling Language, UML) возможностью кооперативного взаимодействия нескольких автоматов через строго определенные интерфейсы. Кооперативное взаимодействие автоматных объектов определяется схемой связи, которая связывает предоставленные и требуемые интерфейсы различных автоматных объектов. Таким образом, поведение системы в целом можно описать как набор протоколов выполнения, каждый из которых представляет собой последовательность вызовов интерфейса, возможно со сторожевыми условиями. Метод. Представлен набор протоколов с помощью семантического графа, в котором все возможные пути от начальных к конечным узлам определены последовательностью вызовов методов интерфейса. Благодаря тому, что интерфейсы заранее строго определены схемой связи, возможно автоматическое построение семантического графа по заданной системе взаимодействующих автоматных объектов. Для проверки поведения системы достаточно убедиться, что каждый путь в семантическом графе удовлетворяет требованиям. Системные требования формально описаны с помощью условных регулярных выражений, определяющих шаблоны допустимого и запрещенного поведения. Основные результаты. Предложены методы и алгоритмы, позволяющие автоматически проверить соответствие программ на языке CIAO заданным требованиям. Обсуждение. Разработанный метод сужает формализм для задания спецификаций до класса регулярных языков, а язык программирования — до языка с простой и предопределенной структурой. Во многих практических случаях этого достаточно для эффективной верификации.</p></abstract><trans-abstract xml:lang="en"><p>The CIAO (Cooperative Interaction Automata Objects) specifcation 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 (Unifed Modeling Language) with the possibility of cooperative interaction of several automata through strictly defned interfaces. The cooperative interaction of automatа objects is defned by a link scheme that defnes 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 fnal nodes defne sequences of interface method calls. Because the interfaces are strictly defned 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 defne 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 specifcation formalism to the class of regular languages and the programming language to a language with a simple and predefned structure. In many practical cases, this is suffcient for effective verifcation.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>верификация</kwd><kwd>событийно-ориентированные программы</kwd><kwd>разработка критических систем</kwd><kwd>регулярные выражения</kwd><kwd>система управления лифтом</kwd></kwd-group><kwd-group xml:lang="en"><kwd>verifcation</kwd><kwd>event-driven programs</kwd><kwd>critical system development</kwd><kwd>regular expressions</kwd><kwd>elevator control system</kwd></kwd-group><funding-group><funding-statement xml:lang="ru">Работа Ирины Афанасьевой выполнена в рамках государственного задания Специальной астрофизической  обсерватории РАН № 121092300060-6, утвержденного Министерством науки и высшего образования Российской  Федерации.</funding-statement><funding-statement xml:lang="en">The work of Irina Afanasieva was carried out within the framework of the SAO RAS State Assignment approved by the  Ministry of Science and Higher Education of the Russian Federation no. 121092300060-6.</funding-statement></funding-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Harel D., Pnueli D. On the development of reactive systems // Logics and Models of Concurrent Systems. Berlin, Heidelberg: Springer, 1985. P. 477–498. https://doi.org/10.1007/978-3-642-82453-1_17</mixed-citation><mixed-citation xml:lang="en">Harel D., Pnueli D. On the development of reactive systems. Logics and Models of Concurrent Systems. Berlin, Heidelberg, Springer, 1985, pp. 477–498. https://doi.org/10.1007/978-3-642-82453-1_17</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Карпов Ю.Г. Model Checking. Верификация параллельных и распределенных программных систем. СПб.: БХВ-Петербург, 2010. 560 с.</mixed-citation><mixed-citation xml:lang="en">Karpov Iu.G. Model Checking. Verifcation of Parallel and Distributed Software Systems. St. Petersburg, BHV-Petersburg Publ., 2010, 560 p. (in Russian)</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Sommerville I. Software Engineering / 10th ed. Boston: Pearson, 2020.</mixed-citation><mixed-citation xml:lang="en">Sommerville I. Software Engineering. 10th ed. Boston, Pearson, 2020.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Hinchey M., Coyle L. Evolving critical systems: a research agenda for computer-based systems // Proc. of the 17th IEEE International Conference and Workshops on Engineering of Computer Based Systems. 2010. P. 430–435. https://doi.org/10.1109/ECBS.2010.56</mixed-citation><mixed-citation xml:lang="en">Hinchey M., Coyle L. Evolving critical systems: a research agenda for computer-based systems. Proc. of the 17th IEEE International Conference and Workshops on Engineering of Computer Based Systems, 2010, pp. 430–435. https://doi.org/10.1109/ECBS.2010.56</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Вельдер С.Э., Лукин М.А., Шалыто А.А., Яминов Б.Р. Верификация автоматных программ. СПб.: Наука, 2011. 244 с.</mixed-citation><mixed-citation xml:lang="en">Velder S.E., Lukin M.A., Shalyto A.A., Iaminov B.R. Automata-Based Program Verifcation. St. Petersburg, Nauka Publ., 2011, 244 p. (in Russian)</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Fedorchenko L., Baranov S. Equivalent transformations and regularization in context-free grammars // Cybernetics and Information Technologies. 2015. V. 14. N 4. P. 29–44. https://doi.org/10.1515/cait-2014-0003</mixed-citation><mixed-citation xml:lang="en">Fedorchenko L., Baranov S. Equivalent transformations and regularization in context-free grammars. Cybernetics and Information Technologies, 2015, vol. 14, no. 4, pp. 29–44. https://doi.org/10.1515/cait-2014-0003</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Новиков Ф.А., Афанасьева И.В. Кооперативное взаимодействие автоматных объектов // Информационно-управляющие системы. 2016. № 6. С. 50–64. https://doi.org/10.15217/issn1684-8853.2016.6.50</mixed-citation><mixed-citation xml:lang="en">Novikov F.A., Afanasieva I.V. Cooperative interaction of automata objects. Information and Control Systems, 2016, no. 6, pp. 50–64. (in Russian). https://doi.org/10.15217/issn1684-8853.2016.6.50</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Афанасьева И.В., Новиков Ф.А., Федорченко Л.Н. Методика построения событийно-управляемых программных систем с использованием языка спецификации CIAO // Труды СПИИРАН. 2020. Т. 19. № 3. С. 481–514. https://doi.org/10.15622/sp.2020.19.3.1</mixed-citation><mixed-citation xml:lang="en">Afanasieva I., Novikov F., Fedorchenko L. Methodology for development of event-driven software systems using ciao specifcation language. SPIIRAS Proceedings, 2020, no. 19, no. 3, pp. 481–514. (in Russian). https://doi.org/10.15622/sp.2020.19.3.1</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Aho A.V., Lam M.S., Sethi R., Ullman J.D. Compilers: Principles, Techniques, and Tools / 2nd ed. Boston: Pearson/Addison-Wesley, 2007. 1009 p.</mixed-citation><mixed-citation xml:lang="en">Aho A.V., Lam M.S., Sethi R., Ullman J.D. Compilers: Principles, Techniques, and Tools. 2nd ed. Boston, Pearson/Addison-Wesley, 2007, 1009 p.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Афанасьева И.В., Новиков Ф.А. Архитектура программного обеспечения систем оптической регистрации // Информационно-управляющие системы. 2016. № 3. С. 51–63. https://doi.org/10.15217/issn1684-8853.2016.3.51</mixed-citation><mixed-citation xml:lang="en">Afanasieva I.V., Novikov F.A. Software architecture for optical detector systems. Information and Control Systems, 2016, no. 3, pp. 51–63. (in Russian). https://doi.org/10.15217/issn1684-8853.2016.3.51</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Новиков Ф.А., Иванов Д.Ю. Моделирование на UML. Теория, практика, видеокурс. СПб.: Профессиональная литература, 2010. 640 с.</mixed-citation><mixed-citation xml:lang="en">Novikov F.A., Ivanov D.Iu. UML Modeling. Theory, Practice, Video Course. St. Petersburg, Professional’naja literature Publ., 2010, 649 p.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Knuth D.E. The Art of Computer Programming, V. 1. Fundamental Algorithms / 3rd ed. Addison-Wesley Professional, 1997. 672 p.</mixed-citation><mixed-citation xml:lang="en">Knuth D.E. The Art of Computer Programming, V. 1. Fundamental Algorithms. 3rd ed. Addison-Wesley Professional, 1997, 672 p.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Поликарпова Н.И., Шалыто А.А. Автоматное программирование. СПб.: Питер, 2011. 176 с.</mixed-citation><mixed-citation xml:lang="en">Polikarpova N.I., Shalyto A.A. Automata-Based Programming. St. Petersburg, Piter Publ., 2011, 176 p. (in Russian)</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Fan W., Li J., Ma S., Tang N., Wu Y., Wu Y. Graph pattern matching: From intractable to polynomial time // Proceedings of the VLDB Endowment. 2010. V. 3. N 1–2. P. 264–275. https://doi.org/10.14778/1920841.1920878</mixed-citation><mixed-citation xml:lang="en">Fan W., Li J., Ma S., Tang N., Wu Y., Wu Y. Graph pattern matching: From intractable to polynomial time. Proceedings of the VLDB Endowment, 2010, vol. 3, no. 1–2, pp. 264–275. https://doi.org/10.14778/1920841.1920878</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Авдошин С.М., Набебин А.А. Дискретная математика. Формально-логические системы и языки. М.: ДМК Пресс, 2018. 390 с.</mixed-citation><mixed-citation xml:lang="en">Avdoshin S.M., Nabebin A.A. Discrete Mathematics. Formal Logic Systems and Languages. Moscow, DMK Press Publ., 2018, 390 p. (in Russian)</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">Levonevskiy D., Novikov F., Fedorchenko L., Afanasieva I. Verifcation of internet protocol properties using cooperating automaton objects // Proc. of the 12th International Conference on Security of Information and Networks (SIN’19). 2019. P. 1–4. https://doi.org/10.1145/3357613.3357639</mixed-citation><mixed-citation xml:lang="en">Levonevskiy D., Novikov F., Fedorchenko L., Afanasieva I. Verifcation of internet protocol properties using cooperating automaton objects. Proc. of the 12th International Conference on Security of Information and Networks (SIN’19), 2019, pp. 1–4. https://doi.org/10.1145/3357613.3357639</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">Dijkstra E.W. A Discipline of Programming / 3rd ed. Englewood Cliffs, N.J.: Prentice Hall, 1976. 217 p.</mixed-citation><mixed-citation xml:lang="en">Dijkstra E.W. A Discipline of Programming. 3rd ed. Englewood Cliffs, N.J., Prentice Hall, 1976, 217 p.</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">Шалыто А.А. Валидация автоматных спецификаций // Научно-технический вестник информационных технологий, механики и оптики. 2023. Т. 23. № 2. С. 436–438. https://doi.org/10.17586/2226-1494-2023-23-2-436-438</mixed-citation><mixed-citation xml:lang="en">Shalyto A.A. Validation of state machine specifcations. Scientifc and Technical Journal of Information Technologies, Mechanics and Optics, 2023, vol. 23, no. 2, pp. 436–438. (in Russian). https://doi.org/10.17586/2226-1494-2023-23-2-436-438</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
