Интерпретатор модели, не зависящей от платформы Парамонов В.В. Институт динамики систем и теории управления СО РАН, Иркутск Екатеринбург, 2006
Постановка задачи Рассматривается задача по созданию программных систем (ПС). Целью является создание программного инструментария для быстрой разработки достаточно сложных ПС. Значимыми факторами являются время и качество разработки. Создаваемая ПС также должна являться гибкой (в смысле модифицируемости), иметь возможность переноса на другую платформу функционирования с минимизацией временных и трудовых затрат. Основу документации разработчика должна формировать модель ПС, из которой она была реально получена.
Подход к созданию Подход к разработке ПС базируется на отделении спецификации функций от их реализации на конкретных программных платформах. За основу взята методика на основе архитектуры MDA - Model Driven Architecture
Описание подхода В основе подхода лежат понятия: модели, на зависящей от платформы – Platform Independent Model (PIM); модели, зависящей от платформы – Platform Specific Model (PSM). Преобразование PIM в PSM осуществляется посредством формального представления программной платформы и методов реализации.
Генерация ядра ПС PSM Преобразование PIM Модель платформы реализации Построение UML диаграммы проектируемой ПС. Преобразование в платформо-зависимую модель.
PIM-модель ПС
Схема работы интерпретатора XMI Набор правил Шаблон кода или Программная библиотека Формализованные знания о платформе функционирования
Пример правил распознавания hie_class(Owner, Class, ClassName):- pim_class(_, Owner, _, Class), pim_name(Class, ClassName). hie_class_attr(Owner, Class, Attr, ClassName, AttrName):- hie_class(Owner, Class, ClassName), pim_attr(_,Class,_,_,_,Attr), pim_name(Attr, AttrName). Распознавание класса Распознавание атрибута класса XMI UML
Дополнение ограничениями В качестве языка для задания ограничений модели используется OCL (Object Constrain Language). OCL является частью спецификации UML. OCL - формальный язык ограничений содержит необходимую строгость высказывания и может быть достаточно легко проинтерпретирован как человеком, так и вычислительной системой.
Возможности интерпретации ограничений в ПС context Person inv: self.dep_time>=self.check_in_time ALTER TABLE PERSON ADD CONSTRAINT DEP_TIME >= CHECK_IN_TIME if (!(this.dep_time>=this.check_in_time)){ alert(...Сообщение об ошибке...) } Класс в UML OCL-ограничение Ограничение на базу данных Программный код для пользовательского интерфейса
Выводы Разрабатывается программная технология интерпретации PIM- моделей ПС; Создаются методики анализа и обработки формализованных ограничений в контексте интерпретации модели; Практическая апробация технологии.
Апробация программной технологии Информационная система «Канц-регистр» Диаграмма, состоящая из 101 класса привела к –91 таблице; –8000 строк программного кода методов классов. Цикл генерации – 1 минута. Время настройки пользовательского интерфейса 6 чел/мес. Общее время разработки 12 чел/мес.
Схема реализации генератора