автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Разработка инструментальных средств создания визуальных предметно-ориентированных языков

кандидата физико-математических наук
Сухов, Александр Олегович
город
Пермь
год
2013
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Разработка инструментальных средств создания визуальных предметно-ориентированных языков»

Автореферат диссертации по теме "Разработка инструментальных средств создания визуальных предметно-ориентированных языков"

На правах рукописи

005538066

Сухов Александр Олегович

РАЗРАБОТКА ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ СОЗДАНИЯ ВИЗУАЛЬНЫХ ПРЕДМЕТНО-ОРИЕНТИРОВАННЫХ ЯЗЫКОВ

Специальность 05.13.11 -Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ

диссертации на соискание ученой степени кандидата физико-математических наук

Пермь 2013

005538066

Работа выполнена на кафедре математического обеспечения вычислительных систем федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Пермский государственный национальный исследовательский университет».

Научный руководитель:

Официальные оппоненты:

Лядова Людмила Николаевна, кандидат физико-математических наук, доцент

Терехов Андрей Николаевич, доктор физико-математических наук, заведующий кафедрой системного программирования федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Санкт-Петербургский государственный

университет»

Малышко Виктор Васильевич, кандидат физико-математических наук, доцент кафедры системного программирования федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«Московский государственный университет имени М.В. Ломоносова»

Ведущая организация:

Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Южный федеральный университет»

Защита диссертации состоится « 5 » декабря 2013 г. в часов на

заседании диссертационного совета Д 002.087.01 при федеральном государственном бюджетном учреждении науки «Институт системного программирования Российской академии наук» по адресу: 109004, Москва, ул. Александра Солженицына, д. 25, конференц-зал (комната 110).

С диссертацией можно ознакомиться в библиотеке федерального государственного бюджетного учреждения науки «Институт системного программирования Российской академии наук».

Автореферат разослан « 1 » ноября 2013 г.

Ученый секретарь диссертационного совета кандидат физ.-мат. наук

/Прохоров С.П./

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы. Информационные системы (ИС) стали неотъемлемой частью инфраструктуры большинства организаций. Активное участие в процессе создания и сопровождения ИС должны принимать эксперты в предметной области и конечные пользователи, поскольку именно они знают особенности работы организации и замечают ограничения уже функционирующих в ней систем. При этом использование традиционных подходов к разработке программного обеспечения становится проблематичным, поскольку эксперты, не являющиеся ИТ-специалистами, не способны понять языки программирования общего назначения, используемые при создании ИС, а программисты не обладают достаточным уровнем знаний о предметной области, чтобы учесть ее особенности при реализации системы.

В связи с этим все более востребованными становятся инструментальные средства, использующие при создании ИС модельно-ориентированный подход, основная идея которого - построение моделей системы и генерация на их основе кода реализации ИС. Модель системы -это абстрактное описание на некотором формальном языке характеристик системы, важных с точки зрения цели моделирования, ее поведения.

Модельно-ориентированный подход к разработке ИС предполагает наличие хотя бы одного языка моделирования, с использованием которого производится построение моделей. При этом чаще применяются визуальные языки, поскольку графические модели обладают большей наглядностью и понятностью не только для программистов, но и для экспертов в предметной области, конечных пользователей. Визуальный язык — это совокупность формализованных наборов графических символов и правил для построения моделей. Визуальное моделирование — процесс построения моделей средствами визуальных языков.

Для привлечения к процессу разработки и сопровождения ИС экспертов в предметной области, конечных пользователей, не являющихся ИТ-специалистами, необходимо предоставить им удобные языки моделирования, оперирующие привычными для них терминами предметной области. В качестве таких языков могут выступать визуальные предметно-ориентированные языки (Domain-Specific Languages, DSL),

предназначенные для решения определенного класса задач в конкретной предметной области. Однако построение нового DSL - достаточно сложная задача, поскольку помимо описания самого языка моделирования необходимо создать удобный редактор для работы с ним. Для упрощения процесса разработки и сопровождения DSL используется специальный вид программного обеспечения — языковой инструментарий, или DSM-платформа [6].

Большое влияние на формирование и развитие предметно-ориентированного моделирования оказали исследования М. Фаулера, Ю.-П. Толванена, С. Келли, М. Велтера, работы, ведущиеся в СПбГУ (руководитель - профессор А.Н. Терехов), в ЮФУ (руководитель -профессор Ю.И. Рогозов), в НИУ ИТМО (руководитель — профессор Ф.А. Новиков) и др.

В процессе создания и эксплуатации информационных систем могут принимать участие различные категории специалистов (программисты, бизнес-аналитики, эксперты в предметной области и др.), в этом случае появляется необходимость динамического изменения описания DSL, его настройки на потребности конкретного пользователя. Для реализации этой возможности необходимо, чтобы языковой инструментарий позволял выполнять многоуровневое моделирование, при этом должна быть построена иерархия моделей: модель, метамодель, мета-метамодель и т.д., где метамодель — модель языка, используемого для создания моделей, а мета-метамодель (метаязык) — язык, на котором описываются метамодели.

При разработке крупных ИС нельзя ограничиваться созданием только одной модели, т.к. такая модель будет 1ромоздкой, сложной для понимания и модификации, поэтому, как правило, выполняется построение нескольких моделей, описывающих систему с различных точек зрения, с разной степенью детализации, созданных с использованием различных DSL. После построения моделей пользователь может на их основе сгенерировать исходный код реализации системы или выполнить экспорт разработанных моделей во внешние системы для их дальнейшей обработки, например, для проведения имитационного моделирования. Для этого требуется наличие средств трансформации моделей, которые позволяют производить преобразование моделей, описанных с использованием одного визуального

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

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

Для достижения цели были поставлены следующие задачи:

1. Провести анализ методов и инструментальных средств создания визуальных DSL.

2. Построить математическую модель для реализации процесса разработки визуальных DSL.

3.На основе построенной математической модели разработать метод создания визуальных предметно-ориентированных языков моделирования, обеспечивающий:

- возможность многоуровневого моделирования;

- возможность динамического изменения описания языков моделирования без перегенерации исходного кода их редакторов;

- единообразие средств представления, описания и использования моделей различных уровней иерархии.

4. Разработать метод описания и выполнения трансформаций моделей, позволяющий определять преобразования моделей в нотациях исходного и целевого языков моделирования.

5. На основе построенной математической модели, разработанных методов программно реализовать инструментальные средства Metalanguage, позволяющие упростить создание визуальных DSL и выполнение трансформаций моделей. С использованием разработанного инструментария описать визуальные динамически настраиваемые DSL для некоторых предметных областей, сравнить

выразительную мощность метаязыка и возможности системы MetaLanguage с другими языковыми инструментариями, проверить практическую значимость полученных в диссертационном исследовании результатов.

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

Научной новизной обладают следующие результаты диссертационного исследования:

1. Разработанная математическая модель, лежащая в основе процесса создания визуальных предметно-ориентированных языков, позволяющая унифицированным образом описывать модели различных уровней иерархии, поддерживать метамодели и модели в согласованном состоянии при внесении изменений в метаязык и/или метамодель.

2. Построенный на основе разработанной математической модели метод создания визуальных DSL, позволяющий не только производить многоуровневое моделирование, но и выполнять внесение изменений в описание предметно-ориентированных языков без повторной генерации исходного кода их редакторов.

3. Метод описания и выполнения трансформаций моделей, предоставляющий возможность в нотациях исходного и целевого языков моделирования производил, построение моделей различных уровней иерархии, преобразование моделей, созданных с использованием одного языка моделирования в модели, выполненные в иной графической/текстовой нотации.

Практическая значимость. Предложенные в диссертационном исследовании методы применялись автором на практике при создании предметно-ориентированных языков для различных предметных областей [4, 7, 10,13, 17].

Система MetaLanguage используется в практике деятельности ООО «Новая платформа» при создании системы FlexBeny, предназначенной для разработки SaaS-решений.

Результаты, полученные в ходе диссертационного исследования, внедрены в учебный процесс Пермского государственного национального

б

исследовательского университета и Пермского филиала национального исследовательского университета «Высшая школа экономики».

По теме диссертационной работы получено свидетельство о регистрации программы для ЭВМ в ФИПС РФ (Роспатент) [27], пять свидетельств о регистрации электронных ресурсов в ОФЭРНиО (ЦИТиС) [22-26].

Результаты диссертации могут быть использованы в следующих перспективных исследованиях: в области программной инженерии, при разработке основанных на методах многоуровневого моделирования инструментальных средств создания ИС; при решении практических задач в области создания DSL для конкретных предметных областей; в области разработки подходов к автоматизированному построению DSL на основе онтологий, полученных в результате анализа различных документов предметной области; в области усовершенствования методов трансформации визуальных моделей.

Апробация работы и публикации. Основные положения диссертационной работы докладывались и обсуждались на следующих конференциях:

1. Серия всероссийских научно-практических конференций «Технологии Microsoft в теории и практике программирования» г. Новосибирск, г. Нижний Новгород в 2008 г.; г. Томск, г. Нижний Новгород в 2009 г.; г. Нижний Новгород в 2010 г.

2. Всероссийская научно-практическая конференция молодых ученых с международным участием «Современные проблемы математики и ее прикладные аспекты», г. Пермь, 2010 г. и 2013 г.

3. Международный конгресс по интеллектуальным системам и информационным технологиям AIS/CAD'10, пос. Дивноморское, 2010 г.

4. Международная научно-техническая конференция «Технологии разработки информационных систем», г. Геленджик, 2011-2013 гг.

5. Международная конференция «Spring/Summer Young Researchers' Colloquium on Software Engineering (SYRCoSE)», г.Пермь в 2012г., г. Казань в 2013 г.

6. Всероссийская научно-практическая конференция с международным участием «Актуальные проблемы механики, математики, информатики 2012», г. Пермь, 2012 г.

7. Научная школа молодых ученых «Computer Science Days in Ekaterinburg», г. Екатеринбург, 2012 г.

8. Всероссийская научно-практическая конференция по имитационному моделированию и его применению в науке и промышленности «Имитационное моделирование. Теория и практика - ИММОД-2013», г. Казань, 2013 г.

Основные результаты диссертации опубликованы в 29 работах, среди которых 21 статья, 3 из них в изданиях, включенных в перечень ведущих рецензируемых научных, журналов, рекомендованных ВАК.

Работа была поддержана следующими грантами:

1. РФФИ, 2008-2009 гг., проект № 08-07-90006-Бел-а «Интеграция систем имитационного моделирования и информационных систем на основе онтологий и многоуровневых моделей предметных областей».

2. РФФИ, 2010-2011 гг., проект № 10-01 -00794-а «Методы создания DSL-инструментария и моделирования предметных областей на основе многоуровневых онтологий и графовых грамматик».

3. РФФИ, 2012-2013 гг., проект № 12-07-00763-а «Методы и средства реализации трансформаций предметно-ориентированных языков моделирования сложных проблемно-ориентированных информационных систем».

4. Научный фонд НИУ «Высшая школа экономики», софинансирование гранта РФФИ, 2012-2013 гг.

Структура и объем диссертации. Диссертация состоит из введения, четырех глав, заключения, списка сокращений, списка терминов, списка литературы из 128 наименований и 8 приложений. Основная часть работы изложена на 157 страницах, содержит 41 рисунок и 1 таблицу.

СОДЕРЖАНИЕ РАБОТЫ

Во введении обосновывается актуальность темы диссертационного исследования, формулируются цели и задачи работы, ее новизна и практическая значимость, приводится краткий обзор диссертации.

В начале первой главы рассматриваются особенности модельно-ориентированного подхода к разработке информационных систем. Некоторые его реализации (например, MDA) применяют для построения моделей языки моделирования общего назначения, однако такие языки

сложны для понимания не только для экспертов в конкретной предметной области, которые принимают участие в процессе создания системы, но и, в некоторых случаях, даже для ИТ-специалистов. Кроме того, иногда бывает затруднительно адекватно выразить понятия предметной области с помощью языков общего назначения.

Другие реализации модельно-ориентированного подхода используют в процессе построения И С визуальные предметно-ориентированные языки, которые позволяют:

- максимально учесть особенности предметной области при реализации системы;

- сократить семантический разрыв между понятиями предметной области и понятиями, которыми оперируют средства разработки ИС;

- привлечь к процессу разработки ИС экспертов в конкретной предметной области, конечных пользователей.

Основную часть первой главы составляет анализ наиболее развитых на сегодняшний день методов и инструментальных средств создания DSL (MetaEdit+, MS DSL Tools, Eclipse GMF, QReal и др.). В результате анализа были выявлены следующие основные ограничения, присущие большинству рассмотренных систем [14]:

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

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

3. Наличие избыточной функциональности языкового инструментария, не используемой при создании DSL, которая затрудняет изучение инструментария пользователями, не являющимися ИТ-специалистами.

4. Отсутствие развитых средств горизонтальной трансформации моделей, которые позволяют не только создавать единое описание системы на основе моделей, построенных на различных этапах разработки ИС, но и генерировать исходный код по указанному пользователем шаблону, либо производить преобразование модели, описанной с использованием одного языка моделирования, в модель, выполненную в иной графической нотации.

Существующие ограничения методов и инструментальных средств создания визуальных DSL было решено устранить при разработке системы MetaLanguage [2], удовлетворяющей следующим требованиям:

- универсальность — возможность построения визуальных языков моделирования для широкого спектра предметных областей;

- наличие возможности многоуровневого моделирования;

- наличие возможности динамического изменения описания языков моделирования без повторной генерации исходного кода редакторов DSL;

- автоматическое поддержание в согласованном состоянии описаний метамоделей и моделей при внесении изменений в метаязык и/или метам од ель;

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

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

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

Вторая глава посвящена описанию разработанного метода создания визуальных DSL. Процесс построения визуального языка моделирования начинается с создания его метамодели, для описания которой применяется метаязык.

Метаязык системы Metalanguage обладает свойством «самоописываемости», которое предоставляет возможность:

- выполнять многоуровневое моделирование;

- производить объединение нескольких моделей, созданных на основе общей метамодели;

- добавлять новые конструкции в метаязык и/или изменять существующие.

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

Базовыми элементами метаязыка системы MetaLanguage являются сущность, отношение, ограничения [7, 21]. Сущность - это конструкция метаязыка, используемая для обозначения множества однотипных объектов предметной области, информация о которых должна быть учтена при построении модели. Отношение — это конструкция метаязыка, используемая для обозначения связи между сущностями. Система MetaLanguage позволяет создавать отношения трех типов: ассоциация, агрегация, наследование. Сущности и отношения могут иметь атрибуты и ограничения. Ограничения определяют правила построения модели.

Для формального описания процесса создания визуальных DSL была построена математическая модель, в которой даны формальные определения метамодели и модели, описаны операции создания графа модели и его интерпретации. В качестве аппарата для построения математической модели были выбраны ориентированные псевдо-метаграфы [1]. Данный вид графов позволяет объединить в отдельные множества определенные вершины графа, так могут быть сгруппированы все атрибуты сущности/отношения, ограничения, налагаемые на сущность/отношение и др. Это позволяет сократить число дуг графа и сделать модель более структурированной, логичной. Рассмотрим построенную математическую модель процесса создания визуальных DSL подробнее [3].

Множество всех сущностей метамодели обозначим Ent = {ent,}, j'eN, где N - множество натуральных чисел, а множество отношений

метамодели — Reí = {relk}, AsN. Обозначим через EAtír,- и ERest¡, i -1,\Ent\ множество вершин, соответствующих атрибутам и ограничениям /-ой

сущности, а через RAttrk и RRestk, к = \, \Rel\ - множество вершин, соответствующих атрибутам и ограничениям к-ото отношения. Число элементов этих множеств потенциально не ограничено, но в каждый фиксированный момент времени оно конечно.

Пусть далее ЕЕА - множество дуг, соединяющих каждую сущность метамодели с множеством принадлежащих ей атрибутов, ERA - множество дуг, соединяющих каждое отношение метамодели с множеством принадлежащих ему атрибутов, EER — множество дуг, соединяющих каждую сущность метамодели с множеством налагаемых на нее ограничений, ERR — множество дуг, соединяющих каждое отношение метамодели с множеством налагаемых на него ограничений, EERR -множество дуг, соответствующих связям между сущностями и отношениями. Число элементов всех этих множеств потенциально не ограничено, но в каждый фиксированный момент времени конечно.

Тогда граф метамодели — это ориентированный псевдо-метаграф GMM= (V, Е), где V - это непустое множество вершин графа, Е - это множество дуг графа, причем эти множества определяются равенствами (1) и (2):

(\Еп,I Л лн (м ) {М Л

V = Ent и U EAttr, Jul U ERest, JU^e/Ul U RAttrk Jul U RRestk J, (1)

E = EEA{JERA\JEER\JERR\JEERR. (2)

На рис. 1 представлен пример графа метамодели для сущности «Прецедент» диаграммы прецедентов UML [16].

EAttr, I ..............°ПИСа™е создания

А

ееа(

Прецедент j (ent) •

Рис. 1. Граф метамодели для сущности «Прецедент» 12

Как видно из рисунка, граф метамодели содержит вершину соответствующую сущности «Прецедент», множество вершин ЕАПг соответствующих атрибутам данной сущности, а также дугу ееа соединяющую вершину еиг, с множеством вершин ЕАиг,.

Аналогичным образом определяется граф модели. Граф модели — это ориентированный псевдо-метаграф СМ = (VI, ЕГ), где VI - это непустое множество вершин графа, Е1 — это множество дуг графа, причем эти множества определяются равенствами (3) и (4):

1И ПеангД У| 11 ЕАаг1, !«с/| Г /

У1= и Еп11,и и М1к и

ы \ ')) к=\ 1 V

и КАиг1к1

ы

(3)

Е1 = ЕЕА1 и ЕШ1 и ЕЕПЯ1 и Т. (4)

В определении графа модели используются следующие обозначения:

- Еп11, - множество экземпляров ¡'-ой сущности;

- ЕЛш!- множество значений атрибутов у-ого экземпляра ;'-ой

сущности;

- — множество экземпляров к-ого отношения;

- ЛАПг1к1 — множество значений атрибутов 1-ого экземпляра ¿-ого отношения;

- ЕЕА1 - множество дуг, соединяющих каждый экземпляр сущности с множеством принадлежащих ему атрибутов;

- ЕЕА1 - множество дуг, соединяющих каждый экземпляр отношения с множеством принадлежащих ему атрибутов;

- ЕЕШи — множество дуг, соответствующих связям между экземплярами сущностей и экземплярами отношений;

- Т — множество дуг графа модели, соединяющих экземпляры сущностей и отношений с теми сущностями и отношениями метамодели, на основе которых они созданы.

Число элементов всех этих множеств потенциально не ограничено, но в каждый фиксированный момент времени конечно.

Далее в работе приводится формальное описание операций создания и интерпретации графов моделей, которые фактически являются алгоритмами вертикальной трансформации моделей в прямом и обратном направлении [5]. Так при построении модели пользователь, оперируя

сущностями и отношениями метамодели, создает их экземпляры, при этом фактически происходит отображение графа метамодели на граф модели. Этому отображению соответствует операция создания графа модели. После создания модели необходимо выполнить проверку ограничений, налагаемых на метамодель, и, в случае необходимости, преобразование описания модели в другую нотацию. При выполнении этих действий система производит интерпретацию элементов модели, т.е. определяет с помощью каких сущностей, отношений они были созданы. Для этого используется отображение графа модели на граф метамодели. Этому отображению соответствует операция интерпретации графа модели.

На основе построенной математической модели разработаны подходы к реализации программных средств создания DSL, описанные в третьей главе. В начале третьей главы приводится описание архитектуры системы Metalanguage (см. рис. 2) [15].

Реиогиторни

Метамодель

J Моде

Модель [

Модель

Метамодель

Mtjc ib |

Модель

I рафпчсский редактор На.in i;uop

t Метамодель 1 Модель 1 t Модель I 1 Список ошибок

Браузер моделей

1 Исходная модель 1 1 Правила трансформации Т t Целевая модель 1

Трансформатор

Рис. 2. Архитектура системы Metalanguage

Единым хранилищем описаний моделей различных уровней иерархии является репозиторий. Он содержит информацию о метамоделях, моделях, сущностях, отношениях, атрибутах, ограничениях, трансформациях и др. Информация о метамоделях и моделях хранится единообразно, что позволяет работать с ними с помощью одного инструментария. Браузер моделей позволяет загружать/сохранять метамодели вместе с созданными на их основе моделями, выполнять над метамоделями и моделями различные операции (редактирование, проверка ограничений,

трансформация и др.). Графический редактор представляет собой программные компоненты, которые предоставляют пользователю средства визуального создания метамоделей и моделей. Валидатор позволяет проверять ограничения, заданные пользователем при описании метамодели. Трансформатор - это компонент, предоставляющий возможность выполнять горизонтальные трансформации моделей в текст на целевом языке программирования либо в визуальные модели, описанные в иной графической нотации.

Для создания метамоделей, моделей, описания и выполнения трансформаций используется единый пользовательский интерфейс, позволяющий работать с системой различным категориям специалистов.

Система MetaLanguage позволяет выполнять многоуровневое моделирование: определив некоторую метамодель, пользователь может загрузить ее в систему и использовать уже в качестве метаязыка для построения других метамоделей. Благодаря этому существует возможность создать целую иерархию языков моделирования, предназначенных для решения различных задач разными категориями пользователей.

Далее в третьей главе рассматривается возможность интеграции системы MetaLanguage с различными инструментальными средствами, предназначенными как для разработки ИС на основе созданных моделей (СА8Е-средствами), так и для их анализа (системами имитационного моделирования).

Большая часть третьей главы посвящена рассмотрению базовых алгоритмов функционирования системы MetaLanguage:

создания/модификации/удаления сущностей, отношений, ограничений; создания/модификации/ удаления экземпляров сущностей и отношений; проверки ограничений, налагаемых на элементы метамоделей. Все эти алгоритмы имеют полиномиальную сложность.

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

Вертикальная трансформация - это преобразование модели, описанной на одном уровне иерархии, в модель, представленную на другом уровне. Трансформация модели вышестоящего уровня иерархии, в модель нижестоящего уровня соответствует операции создания модели, расположенной на нижестоящем уровне. Обратная трансформация позволяет производить интерпретацию модели нижестоящего уровня, определять типы ее элементов, выполнять различные операции над этой моделью.

Горизонтальные трансформации, в отличие от вертикальных, работают с моделями, расположенными на одном уровне иерархии. Анализ языков, методов и инструментальных средств описания горизонтальных трансформаций, приведенный в работе, показал, что наиболее подходящим для реализации в системе Ме1аЬап£иа§е является алгебраический подход с одинарным выталкиванием, основанный на графовых грамматиках [12, 18].

Горизонтальные трансформации в Ме1аЬап§иа§е описываются на уровне метамоделей, что позволяет задавать преобразования, которые могут быть применены ко всем моделям, построенным с использованием данных метамоделей. Для создания трансформации необходимо выбрать исходную и целевую метамодели и задать продукционные правила, описывающие преобразование. В зависимости от вида трансформации правой частью правила будет либо текстовый шаблон для генерации кода, либо фрагмент целевой метамодели.

Правила трансформации выполняются в соответствии с порядком, заданным пользователем. Сначала будут найдены все возможные вхождения в исходную модель левой части первого правила, для каждого из них система выполнит замену левой части правила на правую, затем система перейдет ко второму правилу и приступит к его применению и т.д. [9]. Таким образом, для применения продукционного правила система Ме1аЬап§иа§е выполняет два алгоритма: алгоритм поиска левой части правила в графе исходной модели и алгоритм замены левой части правила на правую [20].

При поиске вхождения левой части правила в исходную модель система производит поиск фрагмента графа метамодели в графе модели, т.е. выполняет сопоставление графов, принадлежащих различным уровням иерархии, при этом учитываются типы вершин и дуг графа. Реализованный

в системе MetaLanguage алгоритм поиска паттерна в графе модели является разновидностью алгоритма перебора с возвратом, имеющего экспоненциальную сложность.

Алгоритм замены левой части правила на правую зависит от вида трансформации. Трансформация вида «модель-текст» позволяет пользователю системы MetaLanguage по заданным им шаблонам генерировать на основе построенных моделей исходный код на целевом языке программирования, а также другое текстовое представление модели, например, ее описание в формате XML.

Трансформация вида «модель-модель» позволяет выполнять преобразование визуальной модели, созданной с использованием одного языка моделирования, в модель, описанную в другой графической нотации. При описании продукционного правила трансформации этого вида также необходимо задать правила преобразования атрибутов сущностей и отношений.

Следует отметить, что в рассматриваемом подходе для описания трансформаций не создается специальный язык, а используются нотации исходной и целевой метамоделей, поэтому пользователю системы MetaLanguage не требуется знание дополнительного языка задания трансформаций.

Четвертая глава посвящена иллюстрации возможностей системы MetaLanguage и выразительной мощности метаязыка. В этой главе рассматриваются примеры создания визуальных предметно-ориентированных языков для описания административных регламентов (АР) и построения моделей систем массового обслуживания (СМО).

Созданный язык описания административных регламентов ARDL позволяет снизить трудоемкость разработки и сопровождения моделей административных регламентов, сделать регламенты понятными как государственным служащим, так и обычным гражданам [7].

Разработанный многоуровневый язык описания моделей систем массового обслуживания позволяет различным категориям специалистов выполнять построение моделей СМО в привычных для них терминах. Так ИТ-специалисты имеют возможность описывать модели в нотации общецелевого языка, оперирующего терминами теории СМО, а эксперты в конкретной предметной области — в нотации предметно-ориентированного

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

Рассмотренные в четвертой главе примеры создания DSL позволили сделать вывод о том, что выразительной мощности метаязыка системы Metalanguage достаточно для создания визуальных предметно-ориентированных языков моделирования для различных предметных областей.

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

В приложении А приводится сравнительный анализ формализмов описания синтаксиса визуальных языков моделирования, который обосновывает выбор математического аппарата, используемого при построении математической модели для реализации процесса создания визуальных DSL. Приложение В содержит аналитический обзор языков и инструментальных средств трансформации визуальных моделей, анализ возможности их применения для преобразования моделей в системе MetaLanguage. Приложение С содержит примеры фрагментов моделей административных регламентов, описанных с использованием различных графических нотаций. В приложении D содержится описание трансформации, позволяющей выполнять преобразование моделей АР, созданных с использованием языка ARDL, в эквивалентные модели, выполненные в нотации Flowchart, а также пример применения данной трансформации к модели АР регистрации автомототранспортных средств. Приложение Е содержит XML-описание АР регистрации автомототранспортных средств, сгенерированное компонентом трансформации разработанной системы. В приложении F иллюстрируется сравнение системы MetaLanguage с другими DSM-платформами на примере создания предметно-ориентированного языка описания АР. Приложение G содержит копии свидетельств о регистрации электронных ресурсов по материалам диссертационного исследования. Приложение Н содержит копии актов о внедрении результатов диссертационного исследования.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

Основные научные и практические результаты, выносимые на защиту:

1. Построена математическая модель, лежащая в основе процесса создания визуальных предметно-ориентированных языков, позволяющая унифицированным образом описывать модели различных уровней иерархии, поддерживать модели и меггамодели в согласованном состоянии при внесении изменений в метаязык и/или метамодель.

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

3. Разработан метод трансформации моделей, предоставляющий возможность описывать и выполнять преобразования моделей как между различными уровнями иерархии, так и внутри одного уровня (между различными языками моделирования).

4. На основе разработанных методов программно реализованы инструментальные средства MetaLanguage, упрощающие создание визуальных DSL и построение с их помощью моделей программных систем, а также снимающие ограничения присущие другим языковым инструментариям. С использованием системы MetaLanguage построены предметно-ориентированные языки для ряда проектов. Разработанные методы и инструментальные средства используются в практике деятельности ООО «Новая платформа», внедрены в учебный процесс Пермского государственного национального исследовательского университета и Пермского филиала национального исследовательского университета «Высшая школа экономики».

ПУБЛИКАЦИИ АВТОРА ПО ТЕМЕ ДИССЕРТАЦИИ

Публикации в журналах, включенных в перечень ВАК РФ

1. СуховА.О. Анализ формализмов описания визуальных языков моделирования / Современные проблемы науки и образования. — 2012. — № 2. - С. 1-9.

2. СуховА.О. Инструментальные средства создания визуальных предметно-ориентированных языков моделирования / Фундаментальные исследования. - 2013. - № 4 (ч. 4). - С. 848-852.

3. СуховА.О. Теоретические основы разработки Б8Ь-инструментария с использованием графовых грамматик / Информатизация и связь. — 2011. -№3,- С. 35-37.

Другие публикации

4. Замятина Е.Б., ЛядоваЛ.Н., СуховА.О. О подходе к интеграции систем моделирования и информационных систем на основе ОБМ-платформы Ме1аЬа1^1^е / Материалы IV межд. научно-технической конференции «Технологии разработки информационных систем ТРИС-2013». Таганрог: Изд-во Технол. инст. ЮФУ, 2013. - Т. 1. - С. 61-70.

5. ЛядоваЛ.Н., СерыйА.П., СуховА.О. Подходы к описанию вертикальных и горизонтальных трансформаций метамоделей / Математика программных систем: межвуз. сб. науч. ст. Пермь: Изд-во Перм. гос. нац. исслед. ун-та, 2012. — Вып. 9. - С. 33-49.

6. Лядова Л.Н., Сухое А.О. Визуальные языки и языковые инструментарии: методы и средства реализации / Труды межд. научно-технической конференции «Интеллектуальные системы» (А18'10). М.: Физматлит, 2010.-Т. 1,-С. 374-382.

7. Лядова Л.Н., СуховА.О. Моделирование административных регламентов с использованием возможностей языкового инструментария Ме1аЬап£иа§е / Материалы IV межд. научно-технической конференции «Технологии разработки информационных систем ТРИС-2013». Таганрог: Изд-во Технол. инст. ЮФУ, 2013. -Т. 2.-С. 45-49.

8. Лядова Л.Н., СуховА.О. Языковой инструментарий системы Ме1аЬап£иа£е / Математика программных систем: межвуз. сб. науч. ст. Пермь: Изд-во Перм. гос. ун-та, 2008. - Вып. 5. - С. 40-51.

9. Серый А.П., Лядова Л.Н., СуховА.О. Методы и средства разработки языков описания трансформаций предметно-ориентированных языков / Материалы III межд. научно-технической конференции «Технологии разработки информационных систем ТРИС-2012». Таганрог: Изд-во Технол. инст. ЮФУ, 2012. - Т. 1. - С. 107-112.

10. Сухов А.О. Интеграция систем имитационного моделирования и предметно-ориентированных языков описания бизнес-процессов / Математика программных систем: межвуз. сб. науч. ст. Пермь: Изд-во Перм. гос. ун-та, 2009. - Вып. 6. - С. 79-84.

11 .Сухов А.О. Классификация предметно-ориентированных языков и языковых инструментариев / Математика программных систем: межвуз. сб. науч. ст. Пермь: Изд-во Перм. гос. нац. исслед. ун-та, 2012. - Вып. 9. - С. 74-83.

12. Сухов А.О. Методы трансформации визуальных моделей / Материалы III межд. научно-технической конференции «Технологии разработки информационных систем ТРИС-2012». Таганрог: Изд-во Технол. инст. ЮФУ, 2012.-Т. 1.-С. 120-124.

I З.Сухов А.О. Моделирование приложений для сотовых телефонов с использованием предметно-ориентированных языков / Математика программных систем: межвуз. сб. науч. ст. Пермь: Изд-во Перм. гос. унта, 2009. - Вып. 6. - С. 85-89.

14. Сухов А. О. Сравнение систем разработки визуальных предметно-ориентированных языков / Математика программных систем: межвуз. сб. науч. ст. Пермь: Изд-во Перм. гос. нац. исслед. ун-та, 2012. - Вып. 9. -С. 84-111.

15. Сухов А. О. Среда разработки визуальных предметно-ориентированных языков моделирования / Математика программных систем: межвуз. сб. науч. ст. Пермь: Изд-во Перм. гос. ун-та, 2008. - Вып. 5. - С. 84-94.

16. Сухов А.О. Формальное описание метаязыка системы MetaLanguage / Труды всерос. научно-практической конференции «Современные проблемы математики и ее прикладные аспекты». Пермь: Изд-во Перм. гос. ун-та, 2010.-С. 154-159.

П.Сухов А.О., Семков H.A. Предметно-ориентированный язык описания моделей систем типа «Умный дом» / Математика программных систем:

межвуз. сб. науч. ст. Пермь: Изд-во Перм. гос. нац. исслед. ун-та, 2013. -Вып. 10.-С. 47-53.

18. Сухов А.О., Серый А.П. Использование графовых грамматик для трансформации моделей / Материалы конференции «CSEDays 2012». Екатеринбург: Изд-во Урал, ун-та, 2012. - С. 48-55.

19.SukhovA.O. Applying Graphs for Multilevel Domain Model Description / Материалы конференции «CSEDays 2012». Екатеринбург: Изд-во Урал, ун-та, 2012. - С. 82-89.

20. Sukhov А.О., Lyadova L.N. Horizontal Transformations of Visual Models in MetaLanguage System / Proceedings of the 7th Spring/Summer Young Researchers' Colloquium on Software Engineering. M.: Изд-во Инст. сист. прогр. РАН, 2013. - Р. 31-40.

21. Sukhov А.О., Lyadova L.N. MetaLanguage: a Tool for Creating Visual Domain-Specific Modeling Languages / Proceedings of the 6th Spring/Summer Young Researchers' Colloquium on Software Engineering. M.: Изд-во Инст. сист. прогр. РАН, 2012. - Р. 42-53.

Свидетельства о регистрации электронных ресурсов, разработанных по материалам диссертационного исследования

22. Инструментальное средство создания визуальных динамически настраиваемых предметно-ориентированных языков моделирования MetaLanguage: свидетельство о регистрации электронного ресурса № 16573 / А.О. Сухов, Л.Н.Лядова. № 50201150032; заявл. 24.12.2010; опубл. 31.12.2010. Хроники объединенного фонда электронных ресурсов «Наука и Образование», № 12, 2010 г., 1 с.

23. Обучающий видео-курс по работе с инструментальным средством MetaEdit+: свидетельство о регистрации электронного ресурса № 17010 / А.О. Сухов, А.А. Кандакова, Е.С.Попова. №50201150528; заявл. 21.04.2011; опубл. 30.04.2011. Хроники объединенного фонда электронных ресурсов «Наука и Образование», № 4, 2011 г., 1 с.

24. Обучающий видео-курс по работе с языковым инструментарием Eclipse Graphical Modeling Framework: свидетельство о регистрации электронного ресурса № 16577 / А.О. Сухов, А.О. Анисимов, К.В. Рябинин, С.И. Шарыбин. № 50201150029; заявл. 28.12.2010; опубл.

31.12.2010. Хроники объединенного фонда электронных ресурсов «Наука и Образование», № 12,2010 г., 1 с.

25. Обучающий видеоролик по работе с языковым инструментарием Meta Programming System: свидетельство о регистрации электронного ресурса № 18876 / И.С. Постаногов, Е.А. Чудинов, Т.А. Галимзянова, А.О. Сухов №50201350068; заявл. 16.01.2013; опубл. 31.01.2013. Хроники объединенного фонда электронных ресурсов «Наука и Образование», № 1, 2013 г., 1 с.

26. Электронные учебно-методические материалы дисциплины «Моделирование процессов и систем»: свидетельство о регистрации электронного ресурса № 18877 / Л.Н. Лядова, А.О. Сухов №50201350069; заявл. 17.01.2013; опубл. 31.01.2013. Хроники объединенного фонда электронных ресурсов «Наука и Образование», № 1, 2013 г., 1 с.

27. MetaLanguage: инструментальное средство создания визуальных предметно-ориентированных языков моделирования: свидетельство ФИГТС РФ о государственной регистрации программы для ЭВМ №2013615052 / А.О. Сухов, Л.Н. Лядова; заявл. 29.03.2013; опубл. 20.06.2013. Официальный бюллетень «Программы для ЭВМ, базы данных, топологии интегральных микросхем», № 2, 2013 г., 1 с.

Подписано в печать 31.10.13. Формат 60x84 1/16 Усл. печ. л. 1,33. Бум. офсетная. Печать офсетная. Тираж 100 экз. Заказ № ^

Типография Пермского государственного национального исследовательского университета 614990, г. Пермь, ул. Букирева, 15

Текст работы Сухов, Александр Олегович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

КАФЕДРА МАТЕМАТИЧЕСКОГО ОБЕСПЕЧЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

РАЗРАБОТКА ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ СОЗДАНИЯ ВИЗУАЛЬНЫХ ПРЕДМЕТНО-ОРИЕНТИРОВАННЫХ ЯЗЫКОВ

Специальность 05.13.11 -Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

Диссертация на соискание ученой степени кандидата физико-математических наук

На правах рукописи

04201450145

Сухов Александр Олегович

Научный руководитель -к.ф.-м.н., доцент Лядова Л.Н.

Пермь

2013

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ......................................................................................................................6

Глава 1. ЯЗЫКИ МЕТАМОДЕЛИРОВАНИЯ И ЯЗЫКОВЫЕ ИНСТРУМЕНТАРИИ: СРАВНИТЕЛЬНЫЙ АНАЛИЗ............................................17

1.1. Модельно-ориентированный подход к разработке программного обеспечения................................................................................................................17

1.2. Предметно-ориентированные языки моделирования..................................27

1.3. Языковые инструментарии.............................................................................29

1.3.1. MetaEdit+...................................................................................................30

1.3.2. Microsoft Tools for Domain-Specific Languages......................................33

1.3.3. Eclipse Graphical Modeling Framework...................................................37

1.3.4. QReal..........................................................................................................39

1.3.5. Разработка DSM-платформы на основе системы MS Visio.................42

1.3.6. Автоматный метод определения проблемно-ориентированных языков ....................................................................................................................45

1.4. Сравнение технологий создания предметно-ориентированных языков .. 48

1.5. Выводы.............................................................................................................51

Глава 2. МЕТОД СОЗДАНИЯ ВИЗУАЛЬНЫХ ПРЕДМЕТНО-ОРИЕНТИРОВАННЫХ ЯЗЫКОВ МОДЕЛИРОВАНИЯ В СИСТЕМЕ METALANGUAGE.......................................................................................................55

2.1. Конструкции метаязыка системы MetaLanguage.........................................56

2.1.1. Сущность...................................................................................................57

2.1.2. Отношение.................................................................................................59

2.1.2.1. Отношение наследования.................................................................60

2.1.2.2. Отношение ассоциации.....................................................................60

2.1.2.3. Отношение агрегации.......................................................................61

2.1.3. Ограничения..............................................................................................62

2.1.3.1. Ограничения, налагаемые на сущности..........................................62

2.1.3.2. Ограничения, налагаемые на отношения........................................64

2.2. Математическая модель, лежащая в основе процесса создания визуальных

предметно-ориентированных языков......................................................................65

2.2.1. Граф метамодели......................................................................................66

2.2.2. Граф модели..............................................................................................68

2.2.3. Отображение графа метамодели на граф модели.................................70

2.2.4. Отображение графа модели на граф метамодели.................................73

2.3. Выводы.............................................................................................................76

Глава. 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СИСТЕМЫ METALANGUAGE.....77

3.1. Архитектура системы MetaLanguage............................................................78

3.2. Создание и трансформация моделей с использованием системы MetaLanguage.............................................................................................................79

3.3. Использование системы MetaLanguage в процессе разработки и сопровождения информационных систем..............................................................82

3.4. Алгоритмы функционирования системы......................................................84

3.4.1. Построение графа метамодели................................................................85

3.4.1.1. Создание сущности...........................................................................85

3.4.1.2. Создание отношения.........................................................................86

3.4.1.3. Создание ограничений......................................................................93

3.4.2. Построение графа модели........................................................................94

3.4.2.1. Создание экземпляра сущности.......................................................94

3.4.2.2. Создание экземпляра отношения.....................................................95

3.4.3. Удаление элементов модели и метамодели...........................................98

3.4.3.1. Удаление элементов модели.............................................................98

3.4.3.2. Удаление элементов метамодели...................................................102

3.4.4. Проверка ограничений...........................................................................110

3.4.4.1. Проверка ограничений, налагаемых на сущности.......................110

3.4.4.2. Проверка ограничений, налагаемых на отношения.....................112

3.5. Трансформация моделей в системе MetaLanguage....................................113

3.5.1. Основные понятия..................................................................................116

3.5.2. Вертикальные трансформации моделей..............................................117

3.5.3. Горизонтальные трансформации моделей...........................................118

3.5.3.1. Алгоритм поиска паттерна в исходном графе..............................119

3.5.3.2. Алгоритм замены левой части правила на правую для трансформации вида «модель-текст».............................................................124

3.5.3.3. Алгоритм замены левой части правила на правую для трансформации вида «модель-модель»..........................................................129

3.6. Выводы...........................................................................................................135

Глава. 4. РАЗРАБОТКА ПРЕДМЕТНО-ОРИЕНТИРОВАННЫХ ЯЗЫКОВ С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ METALANGUAGE........................................136

4.1. Язык описания административных регламентов.......................................136

4.1.1. Метамодель языка описания административных регламентов.........138

4.1.2. Создание языка ARDL с использованием системы MetaLanguage... 140

4.2. Язык описания систем массового обслуживания......................................145

4.3. Выводы...........................................................................................................155

ЗАКЛЮЧЕНИЕ...........................................................................................................156

СПИСОК СОКРАЩЕНИЙ.........................................................................................158

СЛОВАРЬ ТЕРМИНОВ.............................................................................................159

СПИСОК ЛИТЕРАТУРЫ..........................................................................................162

Приложение А. СРАВНЕНИЕ ФОРМАЛИЗМОВ ОПИСАНИЯ СИНТАКСИСА ВИЗУАЛЬНЫХ ЯЗЫКОВ МОДЕЛИРОВАНИЯ....................................................177

А. 1. Графы и орграфы...........................................................................................178

А.2. Мультиграфы и псевдографы......................................................................180

А.З. Метаграфы......................................................................................................182

А.4. Hi-графы.........................................................................................................183

А. 5. Гиперграфы....................................................................................................184

A.6. Выводы...........................................................................................................186

Приложение В. СРАВНЕНИЕ ЯЗЫКОВ И ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ ТРАНСФОРМАЦИИ ВИЗУАЛЬНЫХ МОДЕЛЕЙ.................................................187

B. 1. Attributed Graph Grammar.............................................................................187

В.2. Graph Rewriting and Transformation.............................................................192

B.3. Visual Automated Model Transformations.....................................................198

B.4. Query/View/Transformation...........................................................................204

В.5. ATLAS Transformation Language.................................................................210

В.6. Model Transformation By-Example...............................................................215

B.7. Выводы...........................................................................................................221

Приложение С. ПРИМЕРЫ ВИЗУАЛЬНОГО ОПИСАНИЯ

АДМИНИСТРАТИВНЫХ РЕГЛАМЕНТОВ...........................................................225

Приложение D. ТРАНСФОРМАЦИЯ МОДЕЛЕЙ, ОПИСАННЫХ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ARDL, В МОДЕЛИ, ВЫПОЛНЕННЫЕ В

НОТАЦИИ FLOWCHART.........................................................................................227

Приложение Е. XML-ОПИСАНИЕ МОДЕЛИ АДМИНИСТРАТИВНОГО

РЕГЛАМЕНТА, СГЕНЕРИРОВАННОЕ СИСТЕМОЙ METALANGUAGE........231

Приложение F. СРАВНЕНИЕ СИСТЕМЫ METALANGUAGE С ДРУГИМИ

DSM-ПЛАТФОРМАМИ.............................................................................................238

Приложение G. КОПИИ СВИДЕТЕЛЬСТВ О РЕГИСТРАЦИИ ЭЛЕКТРОННЫХ РЕСУРСОВ ПО МАТЕРИАЛАМ ДИССЕРТАЦИОННОГО ИССЛЕДОВАНИЯ....

...........................................................................................................247

Приложение Н. КОПИИ АКТОВ О ВНЕДРЕНИИ РЕЗУЛЬТАТОВ ДИССЕРТАЦИОННОГО ИССЛЕДОВАНИЯ.........................................................253

ВВЕДЕНИЕ

Информационные системы (ИС) стали неотъемлемой частью инфраструктуры большинства организаций. Активное участие в процессе создания и сопровождения ИС должны принимать эксперты в предметной области и конечные пользователи, поскольку именно они знают особенности работы организации и замечают ограничения уже функционирующих в ней систем. При этом использование традиционных подходов к разработке программного обеспечения (ПО) становится проблематичным, поскольку эксперты, не являющиеся ИТ-специалистами, не способны понять языки программирования общего назначения, языки описания схем баз данных, пользовательского интерфейса, применяемые при создании ИС, а программисты не обладают достаточным уровнем знаний о предметной области, чтобы учесть ее особенности при реализации системы.

В связи с этим все более востребованными становятся инструментальные средства, основанные на применении моделъно-ориентированного подхода к созданию ИС. Такие средства позволяют объединить усилия разработчиков и экспертов в предметной области, снизить трудоемкость создания и сопровождения систем за счет переиспользования ранее описанных моделей, и сделать ИС более гибкими, поскольку для их модификации в этом случае уже не требуется «вручную» вносить изменения в исходный код, а достаточно лишь модифицировать визуальную модель. Важно подчеркнуть, что с этой задачей при наличии соответствующих инструментальных средств способны справиться даже пользователи, не являющиеся профессиональными разработчиками [88].

Понятие «модель» трактуется достаточно широко. Здесь и далее будем рассматривать понятие «модель» в контексте модельно-ориентированного подхода (МОП) к разработке ПО. Модель - абстрактное описание системы (объекта, процесса), содержащее существенные с точки зрения цели моделирования характеристики системы, отражающее особенности ее функционирования [23].

Модельно-ориентированный подход к разработке ПО предполагает наличие хотя бы одного языка моделирования, с помощью которого производится построение моделей. При этом чаще используются визуальные языки, поскольку графические модели обладают большей наглядностью и понятностью не только для программистов, но и для экспертов в предметной области, конечных пользователей. Визуальный язык - это совокупность формализованных наборов графических символов и правил для построения моделей.

Существуют реализации МОП, которые используют языки моделирования общего назначения для построения моделей. Так язык моделирования общего назначения UML вместе со стандартом MOF (Meta-Object Facility) формирует основу для концепции MDA (Model-Driven Architecture). Но языки моделирования общего назначения сложны для понимания не только для экспертов в конкретной предметной области, которые принимают участие в процессе создания системы, но и, в некоторых случаях, даже для профессиональных разработчиков. Кроме того, иногда бывает затруднительно адекватно выразить понятия предметной области с помощью языков общего назначения [70].

Именно поэтому в модельно-ориентированной разработке ПО все более широко применяются визуальные предметно-ориентированные языки моделирования (Domain-Specific Modeling Languages - DSML, Domain-Specific Languages - DSL), предназначенные для решения определенного класса задач в конкретной предметной области. Предметно-ориентированные языки просты в применении и понятны различным категориям специалистов, поскольку они оперируют привычными для них терминами предметной области.

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

и т.д., где метамоделъ - модель языка, используемого для создания моделей, а мета-метамодель {метаязык) - язык, на котором описываются метамодели.

При создании крупных ИС, как правило, строится несколько моделей, описывающих систему с различных точек зрения, с разной степенью детализации, поэтому возникает необходимость согласования моделей, созданных различными категориями специалистов на разных этапах разработки систем с использованием различных DSL. Для этого требуется наличие средств горизонтальной трансформации моделей, которые позволяют выполнять преобразование моделей, описанных с использованием одного визуального языка, в модели, построенные в иной графической нотации. Причем описание правил преобразования моделей должно производиться в терминах исходного и целевого языков моделирования, понятных различным категориям специалистов. Кроме того, достаточно часто появляется необходимость преобразования визуальной модели в некоторое текстовое представление, например, в исходный код на целевом языке программирования. Таким образом, трансформация моделей является неотъемлемой частью модельно-ориентированного подхода к разработке программного обеспечения [109].

Большое влияние на формирование и развитие предметно-ориентированного моделирования оказали исследования М. Фаулера, Ю.-П. Толванена, С. Келли, работы, ведущиеся в СПбГУ (руководитель -профессор А.Н. Терехов), в НИУ ИТМО (руководитель - профессор Ф.А. Новиков), в ЮФУ (руководитель - профессор Ю.И. Рогозов) и др.

В настоящее время разработано большое число DSL, используемых для создания систем разного класса и назначения: систем искусственного интеллекта [7, 54, 74], распределенных систем [27], мобильных систем [46, 126], систем имитационного моделирования [11, 43] и др. Однако построение нового предметно-ориентированного языка - достаточно сложная задача, поскольку помимо описания самого языка необходимо создать удобный редактор для работы с ним. Для поддержки процесса разработки и сопровождения DSL используется специальный вид ПО, получивший название языковой инструментарий, или DSM-платформа. Существуют различные средства создания визуальных DSL с

возможностью задания собственных графических нотаций: MetaEdit+[117, 118], DSL Tools [65, 103], Eclipse GMF [34, 81, 89], QReal [8, 20, 36, 53] и др. Анализ существующих языковых инструментариев выявил следующие основные ограничения, присущие большинству рассмотренных систем [47]:

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

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

3. Наличие избыточной функциональности языкового инструментария, не используемой при создании DSL, которая затрудняет изучение инструментария пользователями, не являющимися ИТ-специалистами.

4. Отсутствие развитых средств горизонтальной трансформации моделей, которые позволяют не только создавать единое описание системы на основе моделей, построенных на различных этапах разработки ИС, но и генерировать исходный код по указанному пользователем шаблону, либо производить преобразование модели, описанной с использованием одного языка моделирования, в модель, выполненную в другой графической нотации.

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

Для достижения цели диссертационного исследования были поставлены следующие задачи:

1. Провести анализ методов и инструментальных средств создания визуальных DSL.

2. Построить математическую модель для реализации процесса разработки визуальных DSL.

3. На основе построенной математической модели разработать метод создания визуальных предметно-ориентированных языков моделирования, обеспечивающий:

- возможность многоуровневого моделирования;

- возможность динамического изменения описания языков моделирования без перегенерации исходного кода их редакторов;

- единообразие средств представления, описания и использования моделей различных уровней иерархии.

4. Разработать метод описания и выполнения трансформаций моделей, позволяющий определять преобразования моделей в нотациях исходного и целевого языков моделирования.

5. На основе построенной математической модели, разработанных методов программно реализовать инструментальные средства MetaLanguage, позволяющие упростить создание визуальных DSL и выполнение трансформаций моделей. С использованием разработанного инструментария описать визуальные динамически настраиваемые DSL для некоторых предметных областей, сравнить выра�