научная статья по теме ТРАНСФОРМАЦИЯ ДИНАМИЧЕСКИХ ПРЕДСТАВЛЕНИЙ В ПРЕДМЕТНО-ОРИЕНТИРОВАННОМ ВИЗУАЛЬНОМ МОДЕЛИРОВАНИИ Математика

Текст научной статьи на тему «ТРАНСФОРМАЦИЯ ДИНАМИЧЕСКИХ ПРЕДСТАВЛЕНИЙ В ПРЕДМЕТНО-ОРИЕНТИРОВАННОМ ВИЗУАЛЬНОМ МОДЕЛИРОВАНИИ»

ПРОГРАММИРОВАНИЕ, 2015, No 4, с. 3-12

ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ

У л :

ТРАНСФОРМАЦИЯ ДИНАМИЧЕСКИХ ПРЕДСТАВЛЕНИЙ В ПРЕДМЕТНО-ОРИЕНТИРОВАННОМ ВИЗУАЛЬНОМ

МОДЕЛИРОВАНИИ *

© 2015 г. Д.В. Кознов, Е.В. Ларчик, А.Н. Терехов

Санкт-Петербургский государственный университет 198504 Санкт-Петербург, Старый Петергоф, Университетский пр., 28

E-mail: d.koznov@spbu.ru Поступила в редакцию 17.03.2015

Навигационные сервисы являются важной составляющей модельно-ориентированных средств, предоставляя пользователям возможности просмотра и изучения больших моделей. В данной статье даётся формальные определения динамического представления, трансформации динамического представления (у2\-трансформациям) и навигационного сервиса. Для задания у2\--трансформации предлагается использовать язык ATL. В работе также представлена апробация данного подхода — описан прототип программного решения, реализующего предложенный подход в среде Eclipse GMF и использующий для автоматизации раскладки результатов трансформации технологию KIELLER. Представлен также графический редактор, содержащий базовые навигационные сервисы для диаграмм классов.

1. ВВЕДЕНИЕ

Модельно-ориентированная инженерия (Model Based Software Development)1 — это подход к разработке ПО, фокусирующийся на создании моделей, более близких к понятиям предметной области, чем абстракции алгоритмов, структур данных и программ [1].

В последние годы в рамках модельно-ориентированной инженерии активно развивается DSM-подход (Domain-Specific Modeling), ориентированный на создание визуальных языков и разработку соответствующих программных средств для удовлетворения нужд конкретной предметной области; то есть универсальность приносится в жертву точности абстракций моделирования, что, в свою очередь, ведёт к повышению качества генераторов конечного кода и других сервисов по автоматической обработке моделей [2]. В последние годы

* Исследование выполнено при поддержке гранта РФФИ № 14-01-00407.

1Другой, более старый термин, обозначающий, по сути, то же — это визуальное моделирование (visual modeling).

наблюдается значительный прогресс инструментальных средств для разработки DSM-решений (так называемых DSM-платформ [4]): можно упомянуть MetaEdit+ [5], Microsoft Visual and Modeling SDK [6], К MP [7], [8], Microsoft Visio [9], [10], QReal [11], [12] и др. (вот некоторые обзоры для более глубокого ознакомления с этой темой [3], [13], [14]). Фактически, предметно-ориентированное визуальное моделирование является следующим за UML шагом. Отметим, что DSM-подход начинает также применяться и в других областях, помимо программной инженерии, в частности, в бизнес-информатике [15], [16].

Современные программные средства, предназначенные для работы с визуальными моделями, должны включать в себя удобные навигационные сервисы, позволяющие просматривать (т. е. отображать/скрывать) на диаграммах различные выборки из модели, созданные с помощью некоторого визуального языка. Можно сказать, что задача таких сервисов — предоставить пользователям специальные "окна", через которые те могут взглянуть на модель, причём то,

что можно через эти окна увидеть, должно гибко настраиваться. Так, например, работая с моделью классов UML, удобно иметь возможность отобразить/скрыть атрибуты и методы выделенного класса или всех классов данной диаграммы, показать всю иерархию наследования, в которой участвует этот класс, отобразить все классы модели, которые связаны ассоциациями с данным и пр. Подобные средства становятся особенно актуальными, когда речь идёт о работе с большими моделями — так, например, метамодель языка UML содержит около 250 классов и, будучи представлена на одной диаграмме, оказывается совершенно неудобочитаемой2.

На сегодняшний день в области модельно-ориентированной инженерии активно развивается трансформационный подход. Трансформация — это формально заданное преобразование одного артефакта модельно-ориентированной разработки в другой [17]. Различают model-to-model (m2m) и model-to-code (m2c) трансформации (см., например, [18]), отдельно исследуются трансформации в области эволюции схем баз данных [19] и т.д. Для задания трансформаций существуют специальные формальные языки, самые известные из которых — QVT [20] и ATL [21]. Использованию трансформаций посвящена обширная литература — см., например, обзоры [22], [23]. Однако до сих пор идея трансформаций не использовалась при разработке навигационных сервисов. В этом случае в качестве области действия трансформации может выступить динамическое представление модели — та выборка, которая отображается на диаграмме, и трансформация, таким образом, будет преобразовывать одну выборку в другую. Если к результату такой трансформации применить алгоритм автоматической раскладки (layout algorithm), то у нас, фактически, получится готовый навигационный сервис. Таким образом, спецификации подобных трансформаций вместе с другими верхнеуровневыми моделями могут служить входом генератора графического редактора

2При этом, даже если эта модель статически разделена на диаграммы, всё равно в процессе работы с ней (например, при её изучении) возникает потребность в динамическом формировании новых диаграмм для того, чтобы отображать на них какие-то отдельные её срезы, заинтересовавшие пользователя.

для предметно-ориентированного визуального языка. На решение данной задачи, а также на исследование её инженерных перспектив и нацелено исследование, представленное в данной работе.

Высказанная выше идея в предварительном виде была представлена в работе [24]. В данной статье даются формальные определения динамического представления, трансформации динамического представления (v2v-трансформациям) и навигационного сервиса. Для задания у2у-трансформации предлагается использовать язык ATL [21]. В работе также представлена апробация данного подхода — описан прототип программного решения, реализующего предложенный подход в среде Eclipse GMF и использующий для автоматизации раскладки результатов трансформации технологию KIELLER [25]. Представлен также графический редактор, содержащий базовые навигационные сервисы для диаграмм классов.

2. КОНТЕКСТ

2.1. Трансформации в модельно-ориентированной инженерии

Трансформация — это действие, которое преобразует одну или несколько исходных моделей в набор целевых, следуя некоторому набору правил [17].

Ниже представлены и кратко описаны основные способы использования трансформаций в модельно-ориентированном подходе: генерация по моделям; синхронизация моделей; поддержка ограничений целостности, наложенных на модель; рефакторинг моделей; построение различных представлений системы по запросу.

Трансформации для генерации моделей используются в тех случаях, когда исходная и целевая модели представляют собой взгляд на систему с разных уровней абстракции (например, генерация исполняемых моделей по моделям проектирования). Для задания таких трансформаций используются графовые грамматики и трансформации графов [30], [31]. В [45] показано, как с этой целью можно использовать декларативный язык EXPRESS. Этот вид трансформаций используется также для генерации конечного кода по моделям (примеры таких транс-

формаций можно найти в работе [18]), что оказывается важным при использовании модельно-ориентированного подхода в стиле языка программирования [41].

Необходимость в автоматизированной синхронизации моделей возникает, когда в рамках одного проекта пользователи работают одновременно с несколькими связанными между собой моделями. В [32] представлен фреймворк, реализующий с помощью трансформаций механизм инкрементального распространения изменений одной модели на другие.

Часто на создаваемые модели налагается ряд ограничений целостности, позволяющих создавать более точные спецификации, чем с помощью исходного языка моделирования. Для I .\ 11. создан язык ограничений ОСЬ и существуют многочисленные исследования, автоматизирующие его использование в различных контекстах (см., например, [42], [43]). Для этих же целей возможно использовать и трансформационный подход: например, в работе [33] описывается метод, в рамках которого модели дополняются специальными трансформациями, реализующими высокоуровневые изменения иМЬ-модели на основе используемых шаблонов проектирования.

Под рефакторингом понимают процесс изменения некоторого артефакта с целью сделать его структуру более удобной и понятной, сохраняя при этом неизменной его семантику [28]. В основном рефакторинг используется при программировании, но также и при разработке других артефактов: документации [34], [35], I .\ 11. моделей и т.д. В последнем случае рефакторинг может производиться с помощью трансформаций [27], [29].

Подход к использованию трансформаций для построения различных представлений системы по запросу наиболее близок к нашей задаче [49]: пользователю предоставляется набор представлений, каждое из которых является визуализацией модели с некоторой точки зрения. В таком случае трансформация представляет собой фильтр, который оставляет на диаграмме только необходимые для данного представления элементы. Но данный подход предполагает, что представления статичны и пользователь не может менять их, не изменяя модель.

Таким образом, все эти подходы не рассматривают преобразование с помощью трансформаций динамических представлений моделей.

2.2. Обзор Eclipse Modeling Project

Данный проект является, скорее, инициативой и объединяет разнообразные проекты по разработке инструментов в области модельно-ориентированной инженерии на Eclipse-платформе, а также удобной площадкой для исследовательских проектов. Eclipse Modeling Project (ЕМР) состоит более чем из десяти зрелых проектов, а также из нескольких десятков прототипных (незрелых) проектов. Мы использовали два проекта ЕМР в нашей работе — GMF, ATL, — а также проект KIELER, который тесно связан с GMF, хотя он официально и не входит в ЕМР.

GMF (Graphical Modeling Framework) — предназначен для задания высокоуровневой информации (моделей) о новом графическом редакторе и последующей автоматической генерации конечного кода редактора. GMF является

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком