Работа с временными интервалами и организация вычислительного процесса. Технологии RTST и REAL
Технология RTST
Итак, создаваемую систему удалось разбить на объекты и зафиксировать организацию вычислительного процесса. На самом деле, удачное разбиение — весьма нетривиальный творческий процесс, и это заставило нас уже после нескольких выполненных проектов приступить к развитию технологии "вверх", с упором на начальные этапы разработки.
Уже с середины 1980-х годов нам было ясно, что разработка системы должна начинаться с описания на специальном языке схемы объектов (в языках программирования принято говорить "тип", а в базах данных — "схема"). Сначала объект описывается как черный ящик (точки его подключения к другим объектам, перечни входящих и исходящих сообщений и их параметры). Затем описываются внутренние атрибуты объекта. Они могут быть двух видов — те, которые не могут быть изменены самим объектом (статические), и обычные рабочие переменные (динамические). В нашем коллективе удобный для разработчиков язык описания схем объектов предложил В.В. Парфенов [30], примерно через 5 лет Object Management Group предложила для этих же целей свой язык IDL [31], на удивление похожий на наш.
Задать поведение объекта значительно сложнее, причем трудности носят скорее "человеческий", нежели технический характер, то есть проблемы возникают не из-за недостаточной квалификации кого-либо из участников разработки, а из-за взаимного недопонимания. Слишком много людей вовлечено в решение этой задачи – алгоритмисты, специалисты по протоколам, программисты, инженеры-электронщики и т.д.
Для преодоления этих трудностей Международный Консультационный Комитет по Телеграфии и Телефонии (ныне ITU-T) разработал серию графических способов описания, в частности, языки SDL (спецификация Z.100) и MSC (спецификация Z.120) [32].
SDL-диаграмма (Specification and Description Language) очень похожа на традиционные блок-схемы, но с несколькими важными отличиями: символ состояния, в котором процесс не занимает процессор, ожидая приема одного или нескольких сигналов; символ приема сигнала и символ посылки сигнала.
В примере, изображенном на рис. 7.2, объект в состоянии S0 ожидает сообщения x или y. Получив сообщение y, он совершает переход: выполняет проверку некоторого условия C и, в зависимости от результата, выполняет определенное действие (Оператор Var:=0) или посылает сообщение z. После этого объект переходит в состояние S1. В RTST существует графический редактор для спецификации поведения объекта в таком виде, который, кроме того, осуществляет проверку синтаксической корректности спецификации и формирует ее внутреннее представление.
В дальнейшем конечно-автоматные диаграммы SDL мы будем называть просто SDL-диаграммами.
SDL-диаграммы очень удобны для наглядного описания параллельных процессов. На практике не принято графически детализировать процесс до отдельных мелких операторов, например:
И даже
заменяется на один оператор с коротким условным оператором внутри.
Графическая детализация нужна до такой степени, чтобы была видна логика обмена сигналами, например,
не стоит сводить к одному оператору, так как при одном значении условия будет посылка сигнала, а при другом – нет.