Введение к работе
Актуальность проблемы. Объектно-ориентированное визуальное моделирование является молодой и бурно развивающейся областью компьютерной инженерии. С начала 90-х годов по этой теме появляется много фундаментальных работ. Наибольшее влияние на формирование этой области оказывают исследования Г.Буча, И. Джакобсона, Д. Рэмбо, П.Коуда, Д.Харела, Б.Селика и др., усилиями которых создается стандарт в этой отрасли - язык UML (Unified Modeling Language). Общие методы объектно-ориентированного анализа и проектирования программного обеспечения оказывают существенное влияние на целое направление компьютерной инженерии - компонентный подход к созданию программного обеспечения (ПО), в частности, на методы с средства разработки систем реального времени. Например, компания Microsoft создала большое количество компонентных технологий под общим названием ActiveX, а международный комитет ITU (International Telecommunication Union) активно развивает семейство объектно-ориентированных стандартов для спецификации телекоммуникационных систем - языки SDL (Specification and Description Language), MSC (Message Sequence Chart) и т.д.
Широкое распространение распределенного компонентного ПО с гетерогенной архитектурой (базы данных, компоненты сетевой поддержки, компоненты реального времени и т.д.) поднимает проблему создания единых методов проектирования систем, которые предполагают реализацию компонент в разных средах программирования. Таким образом, актуальным является поворот объектно-ориентированных подходов в сторону поддержания компонентности как одного из основных типов архитектур современного ПО. В приложении к событийно-ориентированным системам реального времени компонентный подход может быть дополнен конечно-автоматным, и основная проблема здесь - наличие удобных средств визуальной спецификации сложных алгоритмов, сочетающихся с языком реализации системы.
Цель диссертационной работы: создание и реализация в рамках CASE -пакета Real языка визуального моделирования для проектирования компонентного ПО со сложной событийно-ориентированной логикой и возможностью "автоматической генерации конечного кода. К языку моделирования предъявлялись следующие требования:
универсальность - применимость как для разработки событийно-ориентированных систем реального времени, так и для приложений, создаваемых и функционирующих на основе компонентных технологий типа ActiveX, Java Beans и т.д.;
удобство и лаконичность, выразительная сила;
сквозной характер (преодоление семантических разрывов) — средства спецификации должны быть едиными на различных фазах создания ПО - от раннего анализа до кодогенерации.
Научная новизна диссертационной работы раскрывается в следующих результатах:
методологический подход, обобщающий практический опыт разработки
CASE-средств и предназначенный для построения эффективных
Computer Aided Software Engineering.
технологических решений применения CASE-пакета в конкретных проектах;
расширенная модель классов UML, предназначенная для проектирования компонентных систем различных видов - систем реального времени, приложений, использующих различные распределенные компонентные архитектуры типа COM (Component Object Model), CORBA (Common Object Request Broker Architecture) и т.д.;
поведенческая модель, совмещающая в себе черты расширенного конечного автомата SDL и STD -диаграмм Харела, имеющая исполняемую семантику, являющаяся не замкнутым языком, а средством, предполагающим интеграцию с языками реализации системы; основное предназначение этого формализма - спецификация поведения систем реального времени с событийно-управляемой логикой.
Практическая ценность. Предложенный в диссертационной работе язык моделирования реализован в CASE-средстве Real 2.05. Методологический подход автора использован при создании стратегий возвратного проектирования и автоматической генерации документации по исходным текстам программ в различных проектах (кросс-компиляторы на C++, информационная система на Sybase/Delphi). Основные идеи компонентной и поведенческой моделей апробировались и использовались при разработке мобильной станции по стандарту ESTI GSM, Phase/2 (C++/Linux), в проекте по компьютерной телефонии (C++/Windows NT), при разработке ПО для телефонной станции (Алгол 68/Windows 95, операционная система реального времени "Бета").
Апробация работы и публикации. Основные идеи работы были изложены на семинарах: ИСП РАН (Москва, ноябрь 1999), ИСИ СО РАН "Технология программирования и системы программирования" (Новосибирск, октябрь 1999), МГУ (факультет ВМиК) "Автоматизация программирования" (Москва, ноябрь 1999). По теме диссертационной работы было опубликовано 7 научных работ и создано 3 научно-технических отчета.
Структура и объем работы. Диссертационная работа состоит из введения, семи глав, заключения, списка литературы. Работа содержит 86 страниц, 32 рисунка, список литературы из 62 наименований.