Введение

Язык спецификации CO OPN (Concurrent Object Oriented Petri Nets) основан как на алгебраических спецификациях, так и на алгебраических формализмах сетей Петри. Первый формализм описывает аспекты структур данных, а второй – поведенческие и параллельные аспекты систем. Для работы с большими спецификациями предусмотрены средства структурирования. Принята объектно-ориентированная парадигма, что означает, что спецификация CO OPN представляет собой совокупность объектов, взаимодействующих параллельно. Взаимодействие между объектами осуществляется посредством механизма синхронизации, то есть каждое событие объекта может потребовать синхронизации с некоторыми методами (параметризованными событиями) одного или нескольких партнеров с помощью выражения синхронизации. Спецификация CO OPN состоит из двух различных типов модулей: модулей абстрактных типов данных и объектных модулей. Модули абстрактных типов данных относятся к компоненту структуры данных спецификаций, и для их описания используются многосортные алгебраические спецификации. Кроме того, объектные модули представляют собой концепцию инкапсулированных сущностей, обладающих внутренним состоянием и предоставляющих внешнему миру различные сервисы. Для второго типа модулей был принят алгебраический сетевой формализм. Алгебраические сети Петри, являясь разновидностью сетей высокого уровня, значительно превосходят сети Петри, поскольку токены сетей Петри заменены структурами данных, описываемыми с помощью алгебраических абстрактных типов данных. Для управления видимостью как модули абстрактных типов данных, так и объектные модули состоят из интерфейса (который обеспечивает видимость некоторых операций извне) и тела (которое в основном инкапсулирует свойства операций и некоторые операции, используемые для построения модели). В случае объектных модулей состояние и поведение объектов остаются скрытыми в секции тела. Для разработки моделей на языке CO OPN можно использовать фреймворк COOPNBuilder – среду, состоящую из набора инструментов, предназначенных для поддержки параллельной разработки программного обеспечения на основе языка CO OPN.