Сборники трудов ИСП РАН


Использование языка программирования Python для описания ограничений на архитектурные модели

Е.В. Корныхин (МГУ, Москва), А.В. Хорошилов (ИСП РАН, Москва; МГУ, Москва; МФТИ, Москва; ВШЭ, Москва)

Аннотация

В данной статье предлагается подход к описанию и верификации структурных ограничений на архитектурные модели, в основе которого лежит переиспользование возможностей языка программирования Python, инструментов, библиотек, документации и методических материалов для языка Python. Использование в качестве основы широко известного языка должно уменьшить порог вхождения в предлагаемый подход. Ограничения становятся частью архитектурной модели, в идеале они разрабатываются вместе с моделью. Ограничения записываются на языке программирования Python в виде функций с одним аргументом (он обозначает проверяемый компонент модели) и возвращаемым значением логического типа, снабженных специальным декоратором (исполнимой аннотацией). Чтобы проверить выполнение ограничений для модели, генерируется и выполняется программа на языке Python. В этой программе создается архитектурная модель и затем выполняются нужные функции-ограничения.
Подход был реализован в среде MASIW Framework – это среда моделирования программно-аппаратных систем на языке AADL, выполненная на базе широко известной среды разработки Eclipse. В среду MASIW Framework были интегрированы инструменты разработки на языке программирования Python – это инструмент PyDev, хорошо известный разработчикам на Python в среде Eclipse. Этот инструмент упрощает выполнение программ на Python, содержит в себе мощный редактор программ на Python с раскраской кода и автодополнением. Такие возможности удалось задействовать из-за особенностей генерируемых исходных кодов на Python: классы строятся из компонентов модели, поля классов – из подкомпонентов, соединений и т.п., методы – из ограничений, иерархия классов и пакетов – из иерархии компонентов и пакетов исходной архитектурной модели.

Ключевые слова

архитектурное моделирование; верификация моделей; язык программирования Python, язык моделирования AADL

Издание

Труды Института системного программирования РАН, том 27, вып. 5, 2015, стр. 143-156.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2015-27(5)-8

Полный текст статьи в формате pdf Вернуться к содержанию тома