Создание режима быстрого прототипирования в CASE-системе QReal Такун Евгения Игоревна, 545 гр. Научный руководитель: ст. преп. Литвинов Ю.В. Рецензент: к. ф.-м. н. Иванов А.Н.
CASE-системы Охватывают обширные области поддержки проектирования программного обеспечения o Анализ программного обеспечения o Визуализация архитектуры o Передача знаний о системе o Документация Представители o Rational Rose o Altova UModel o Enterprise Architect o Visio
metaCASE-системы предназначены для создания предметно- ориентированных визуальных языков и инструментов работы с ними с помощью метамоделирования Метамодель – описание синтаксиса языка o Может создаваться как вручную, так и с помощью специальных метаредакторов o Создается один раз и редко редактируется Существующие metaCASE-средства o MS DSL Tools o Eclipse GMF o MetaEdit+
Задачи CASE-систем Характер решаемой задачи CASE-средстваmetaCASE-средства Задача хорошо решается с помощью стандартных языков общего назначения Идеально подходятТребует предварительного создания метамодели. После чего задача решается хорошо Задача лучше решается с помощью предметно- ориентированных языков Позволяют удобно анализировать только самые абстрактные вещи Требует создания и поддержки изменений метамодели
Постановка задачи Метамоделирование «на лету» o Динамическое изменение метамодели o Скрыть от пользователя уровень метамодели o Все изменения должны быть корректно обработаны системой Режим быстрого прототипирования o Возможность изменять тип добавленного на диаграмму элемента o Валидация и поддержка целостности и корректности системы после изменений
Метамоделирование «на лету» MS DSL Tools, Eclipse GMF, QReal (раньше) MetaEdit+ QReal Языкозави- симая часть системы Ядро системы Редактор метамодели Метамодель компиляция Языкозави- симая часть системы Ядро системы Редактор метамодели Метамодель Работа с приложением Языкозави- симая часть системы Ядро системы Метамодель Работа с приложением сохранение
Динамическая смена типа элемента Возможные последствия смены типа элемента o Потеря данных, которые были заданы для старого типа o Появление ограничений, заданных для нового типа Автоматические изменения o Изменение графического представления элемента o Изменение данных, на которые не наложены ограничения o Перенос значений свойств старого элемента в свойства нового элемента Изменения, требующие участия пользователя o Изменение ограничений, влияющих на поведение элемента
Результаты Реализована возможность динамического изменения метамодели Релизована возможность динамически изменять тип элемента Проведена апробация на реальной задаче