Диссертация (Методы и средства разработки графических предметно-ориентированных языков)
Описание файла
Файл "Диссертация" внутри архива находится в папке "Методы и средства разработки графических предметно-ориентированных языков". PDF-файл из архива "Методы и средства разработки графических предметно-ориентированных языков", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве СПбГУ. Не смотря на прямую связь этого архива с СПбГУ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст из PDF
Санкт-Петербургский государственный университетНа правах рукописиУДК 004.4’22Литвинов Юрий ВикторовичМетоды и средства разработки графическихпредметно-ориентированных языковСпециальность 05.13.11 —математическое и программное обеспечение вычислительных машин,комплексов и компьютерных сетейДиссертация на соискание учёной степеникандидата технических наукНаучный руководитель:д.ф.-м.н., профессорА.Н. ТереховСанкт-Петербург – 20162ОглавлениеВведение61 Визуальные языки и их свойства171.1 Введение . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.2 Визуальное моделирование . . . . . . . . . . . . . . . . . . . . . . . . 171.3 Структура визуальных языков . . . . . . . . . . . . . . . . . . . . . . . 201.3.1 Синтаксис, семантика и прагматика . . . . . . . . . . . . . . . . .
211.3.2 Уровни моделирования . . . . . . . . . . . . . . . . . . . . . . . . 231.4 Предметно-ориентированное моделирование . . . . . . . . . . . . . . 261.4.1 Понятие предметно-ориентированного моделирования . . . . . . 261.4.2 Инструментальные средства предметно-ориентированного моделирования . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 291.5 Свойства визуальных языков . . . . . . . . . . . . . . . . . . . . . . . 311.6 Способы формализации визуальных языков . . . . . . . . . . . . . . . 351.6.1 Применяемая формализация визуальных языков . . . . . . . . . . 381.7 Заключение . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 392 Существующие подходы к созданию DSM-решений422.1 Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.2 Существующиеметодикииприёмыразработкипредметно-ориентированных языков . . .
. . . . . . . . . . . . . . . . . . . . . . . 442.2.1 Модели жизненного цикла языка . . . . . . . . . . . . . . . . . . 442.2.2 Паттерныирекомендациипоразработкепредметно-ориентированных языков . . . . . . . . . . . . . . . . . . . . . . . 492.2.3 Способы внутренней организации визуальных языков . . . . . . 512.3 Создание визуальных языков в существующих DSM-платформах .
. . 552.3.1 Платформа MetaEdit+ . . . . . . . . . . . . . . . . . . . . . . . . . 5532.3.2 Eclipse Modeling Project . . . . . . . . . . . . . . . . . . . . . . . 572.3.3 Платформа Generic Modeling Environment . . . . . . . . . . . . . 612.3.4 Платформа PSL/PSA . . . .
. . . . . . . . . . . . . . . . . . . . . 632.3.5 Платформа AToM3 . . . . . . . . . . . . . . . . . . . . . . . . . . 632.3.6 Платформа Microsoft Modeling SDK . . . . . . . . . . . . . . . . . 652.3.7 Платформа Pounamu . . . . . . . . . . .
. . . . . . . . . . . . . . 662.3.8 Платформа DOME . . . . . . . . . . . . . . . . . . . . . . . . . . 682.3.9 Платформа MetaLanguage . . . . . . . . . . . . . . . . . . . . . . 702.4 Сравнение рассмотренных DSM-платформ . . . . . . . . . . . . . . . . 702.5 Заключение . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 Методики создания DSM-решения773.1 Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.2 Фазы жизненного цикла визуального предметно-ориентированногоязыка . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 773.2.1 Анализ применимости . . . . . . . . . . . . . . . . . . . . . . . . 793.2.2 Анализ предметной области . . . . . . . . . . . . . . . . . . . . . 803.2.3 Проектирование и реализация . . . . . . . . . . . . . . . . . . . . 823.2.4 Развёртывание . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 843.2.5 Эволюция языка . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.2.6 Вывод из эксплуатации . . . . . . . . . . . . . . . . . . . . . . . . 863.3 «Классическая» методика . . . . . . . . . . . . . . . . . . . . . . . . . 873.4 Метамоделирование на лету . . . . . . .
. . . . . . . . . . . . . . . . . 943.5 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 Поддержка создания предметно-ориентированных решений в системе QReal1014.1 Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.2 Возможности ядра системы QReal . . . . . . . . . . . . . . . . . . . . 1014.3 Инструментальные средства поддержки создания визуальных языков . 1054.3.1 Метаредактор .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.3.2 Редактор формы фигур . . . . . . . . . . . . . . . . . . . . . . . . 1084.3.3 Редактор ограничений . . . . . . . . . . . . . . . . . . . . . . . . 1094.3.4 Редактор правил рефакторинга . . . . . . . .
. . . . . . . . . . . 11244.3.5 Средства поддержки технологии «метамоделирования на лету» . 1154.4 Сравнение эффективности разработанных средств с существующимиинструментами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184.4.1 Организация эксперимента . . . . . . . . .
. . . . . . . . . . . . . 1194.4.2 Результаты эксперимента . . . . . . . . . . . . . . . . . . . . . . . 1214.4.3 Обсуждение и выводы . . . . . . . . . . . . . . . . . . . . . . . . 1234.5 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Заключение126Список сокращений и условных обозначений128Литература129A Применение предложенных в работе подходов147A.1 Среда программирования роботов QReal:Robots .
. . . . . . . . . . . . 147A.1.1Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147A.1.2Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . 148A.1.3Существующие среды визуального программирования роботов . 150A.1.4Требования к DSM-решению . . . . . . . . .
. . . . . . . . . . . 154A.1.5Визуальный язык QReal:Robots . . . . . . . . . . . . . . . . . . . 155A.1.6Инструментальные средства QReal:Robots . . . . . . . . . . . . . 161A.1.7Опыт применения QReal . . . . . . . . . . . . . . . . . . . . . . . 169A.1.8Заключение . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 173A.2 Среда программирования распределённых мобильных приложенийQReal:Ubiq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175A.2.1Введение . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 175A.2.2Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . 175A.2.3Визуальный язык QReal:Ubiq . . . . . . . . . . . . . . . . . . . . 177A.2.4Обсуждение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182A.2.5Дальнейшее развитие QReal:Ubiq . . . . .
. . . . . . . . . . . . . 183A.2.6Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185A.3 Среда разработки аппаратуры QReal:HaSCoL . . . . . . . . . . . . . . 186A.3.1Введение . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 186A.3.2Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . 1865A.3.3Существующие средства визуального описания аппаратных систем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 190A.3.4Предлагаемый набор визуальных языков . . . . . . . . . . . . . . 192A.3.5Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196B Описание метаязыка QReal205C Акты о внедрении результатов диссертационного исследования2126ВведениеАктуальность темы. Визуальное моделирование — это подход к разработкепрограммного обеспечения (ПО), в котором программа представляется в виденабора графических моделей, каждая из которых описывает её с разных точекзрения. Благодаря наличию стандартных широко распространённых графическихязыков, визуальное моделирование повышает продуктивность разработки ПО икачество результирующего продукта.
Существуют исследования, подтверждающие это экспериментально, см., например, [6, 28].Сейчас визуальные модели используются в основном при анализе и проектировании, а также как средство документирования и передачи информации междуразработчиками. Однако же программы целиком или их фрагменты возможноавтоматически генерировать по набору визуальных моделей. Это позволяет непосредственно использовать результаты анализа и проектирования и в значительнойстепени автоматизировать труд программистов, давая им возможность работатьне с кодом программы на текстовом языке, а с гораздо более нагляднымивизуальными моделями.Использование визуальных языков общего назначения, таких как UML1 ,без заранее подготовленного набора библиотек и генераторов, делает задачуразработки программного обеспечения недостаточно эффективной, в силу наличия семантического разрыва между кодом и моделями [73, 115].
Такие языкиоперируют теми же терминами, что и традиционные текстовые языки (классы,объекты, компоненты и т.д.), поэтому, чтобы полностью специфицировать поведение системы и сделать возможной автоматическую генерацию, модель должнасодержать в себе столько же информации, что и исходный код программы, чтопротиворечит самому понятию модели как некоего упрощения моделируемогообъекта. На самом деле, визуальная модель в этом случае даже менее удобна,1Unified Modeling Language, URL: http://uml.org/ (дата обращения: 22.02.2014г.)7чем код программы — визуальные символы занимают на экране больше места,чем текст.
Если же визуальная модель будет изображать только важные аспектыфункционирования системы, опуская излишние подробности, то она будет обозрима и полезна для человека, но это сделает её бесполезной для исполнителя(например, для интерпретатора или генератора исходного кода). Именно так,в основном, используется UML сейчас — как средство для анализа и дизайнасистемы, а сама система специфицируется ручным кодированием на текстовыхязыках. Большинство инструментов для рисования UML-диаграмм позволяютсгенерировать заглушки, куда предполагается дописывать код вручную, но существенного выигрыша для разработчиков это не даёт.