Диссертация (1148272)
Текст из файла
Санкт-Петербургский государственный университетНа правах рукописиУДК 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-диаграмм позволяютсгенерировать заглушки, куда предполагается дописывать код вручную, но существенного выигрыша для разработчиков это не даёт.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.