Телематика'2003

X Всероссийская
научно-методическая
конференция


 

 

АВТОМАТИЗАЦИЯ ПРОЕКТИРОВАНИЯ СОБЫТИЙНЫХ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ ПРОГРАММ С ЯВНЫМ ВЫДЕЛЕНИЕМ СОСТОЯНИЙ

В.С.Гуров (1), А.С.Нарвский (1), А.А.Шалыто (2)

(1) Компания «eVelopers Corp.», (2) Санкт-Петербургский государственный институт точной механики и оптики (технический университет), Санкт-Петербург

Тел.: (812) 324-32-11, e-mail: vgurov@evelopers.com

В работе [1] предложен метод проектирования событийных объектно-ориентированных программ с явным выделением состояний. Особенность этого подхода состоит в том, что поведение объектов описывается с помощью конечных автоматов, представляемых в форме графов переходов.
Однако изложенный метод не был автоматизирован. Настоящая работа посвящена решению задачи автоматизации программ указанного класса. При этом для обеспечения переносимости создаваемых приложений применяется язык Java.
В ходе решения этой задачи было принято целесообразным отказаться от использования конструкции «SWITCH» для реализации графов переходов, так как в рамках предлагаемого подхода логика программы выполняется с помощью интерпретатора.
Разработанный подход состоит из следующих этапов:
– на основе анализа предметной области выделяются объекты и управляющие ими автоматы;
– используя одну из сред разработки диаграмм на языке UML, например «Together Control Center 6.0», строится диаграмма классов, в которой справа отображаются объекты управления, а слева автоматы, в том числе вложенные;
– связи между объектами управления и автоматами именуются символами, соответствующими указанным объектам (O);
– каждый объект содержит два типа основных методов, которые реализуют входные переменные (X) и выходные воздействия (Z) [2];
– для каждого автомата в указанной среде разработки строятся схема связей и граф переходов типа Мура-Мили, в котором на дугах кроме входных переменных указываются также события (E);
– диаграмма классов и графы переходов автоматически преобразуются в текстовое описание в формате XML.
На этом процесс автоматизации проектирования программы заканчивается.
Каждое входное и выходное воздействие реализуется вручную в соответствии с его функциональностью.
На языке Java разработана среда исполнения полученного XML-описания. При этом сначала указанное описание однократно и целиком преобразуется в соответствующее внутреннее объектное представление программы. В результате образуется система, состоящая из среды исполнения и объектного представления программы.
Эта система при появлении события анализирует его и входные переменные и выполняет выходные воздействия, а также запускает вложенные автоматы. При этом как при работе, так и при отладке, могут вестись два типа протоколов (логов) – длинный и короткий. Первый из них отражает внутреннее поведение автоматов, в том числе вложенных, записи для которых выделяются отступами. Во втором протоколе отражаются только входные переменные и выходные воздействия.
Предложенный подход позволяет:
– резко сократить объем ручного программирования;
– использовать диаграммы классов и графы переходов в составе проектной документации;
– формально и наглядно описывать логику поведения программы и модифицировать ее, только изменяя графы переходов;
– упростить экспериментальную оценку производительности системы за счет повышения централизации логики программы.
Разработанный метод апробирован при создании ряда интернет-приложений и показал свою эффективность.
Работа выполнена при поддержке Российского фонда фундаментальных исследований по гранту №02-07-90114 «Разработка технологии автоматного программирования».
Литература
1. Шалыто А.А., Туккель Н.И. Танки и автоматы //BYTE/Россия. 2003. №2. http://is.ifmo.ru.
2. Шалыто А.А., Туккель Н.И. SWITCH-технология – автоматный подход к созданию программного обеспечения "реактивных" систем //Программирование. 2001. №5. http://is.ifmo.ru.


 



Санкт-Петербург, 14-17 апреля 2003 г.
X Всероссийская научно-методическая конференция "Телематика'2003"