Механизм обмена сообщениями для параллельно работающих автоматов (на примере системы управления турникетом)



(C) 2003 г. Ю.А. Альшевский, М.Г. Раер, А.А. Шалыто

Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Отсюда можно скачать полный текст документации в формате pdf (720 Кб)
Отсюда можно скачать архив исполняемого модуля в формате zip (81 Кб)
Отсюда можно скачать архив исходных файлов в формате zip (53 Кб)

Аннотация

Для алгоритмизации задач логического управления была предложена SWITCH.технология. При решении этих задач автоматы, работающие параллельно, не рассматривались.

В настоящей работе предложено использовать параллельно работающие автоматы (параллельные автоматы), которые взаимодействуют между собой за счет обмена сообщениями. Это напоминает такую область параллельных вычислений, как распределенное программирование, в которой процессы также взаимодействуют посредством обмена сообщениями.

Данная работа призвана рассмотреть вариант расширения идеологии объектно.ориентированного программирования с явным выделением состояний на случай наличия параллельно работающих автоматов. Это выполняется на примере создания системы управления турникетом, контролирующим проход пассажиров.

При проектировании систем параллельных автоматов возникают три задачи:

Эти задачи решаются в настоящей работе. Отметим, что предлагаемый подход наследует все достоинства SWITCH-технологии. К ним можно отнести централизацию логики управления и изоморфизм между кодом и графом переходов автомата. Это облегчает чтение, модификацию, документирование и отладку программ.

Для демонстрации работы системы управления был создан визуализатор, имитирующий работу турникета.

Программный код написан на языке Visual C++ с использованием библиотеки классов Microsoft Foundation Classes и функционирует в одном потоке под управлением операционной системы Microsoft Windows.

С целью облегчения процесса отладки программы и детального ознакомления с механизмом взаимодействия параллельных автоматов выполняется протоколирование работы каждого автомата. Известен метод проектирования объектно-ориентированных систем – Рациональный Унифицированный Процесс (Rational Unified Process), разработанный фирмой Rational Software Corporation, который использует в качестве нотации язык UML [1]. Однако существуют и другие методы объектно-ориентированного проектирования, например, описанный в работе [2].

Подход, изложенный в настоящей работе, является еще одним методом проектирования подобных систем.

Данная работа выполнена в рамках движения за открытую проектную документацию (http://is.ifmo.ru). Открытыми являются также и исходные файлы.

Работа победила в общегородском межвузовском конкурсе курсовых и дипломных работ на премии “Компьютер-центра КЕЙ” (Санкт-Петербург) в номинации ”Компьютерные технологии в электронике и автоматике”.

Литература

  1. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. СПб.: Питер, 2002.
  2. Дейтел Х. М., Дейтел П. Дж. Как программировать на C++. М.: Бином, 2003.