Диссертация (Методы и средства разработки графических предметно-ориентированных языков), страница 10
Описание файла
Файл "Диссертация" внутри архива находится в папке "Методы и средства разработки графических предметно-ориентированных языков". PDF-файл из архива "Методы и средства разработки графических предметно-ориентированных языков", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве СПбГУ. Не смотря на прямую связь этого архива с СПбГУ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 10 страницы из PDF
Описываемый в статье инструментарий позволяет удобнопереключаться между режимами использования и разработки языка, при этом,поскольку используемые языковые концепции довольно просты, вносить изменения удаётся «на лету». Для задания семантики языка требуется программированиена языке, похожем на LISP, поэтому сами пользователи создавать для себя языквсё-таки не могут.Некоторые указания по методике разработки представлены также в книге [36].Предлагаемая методология состоит из четырёх фаз: предварительная проработка,разработка, внедрение и сопровождение. При этом на фазе предварительной48проработки предлагается начать с proof of concept — реализации небольшой частиязыка для наиболее изученного фрагмента предметной области, прежде всегодля того, чтобы продемонстрировать пользу от DSM-подхода.
Эта фаза должнадлиться всего несколько дней, после чего принимается решение о продолженииили завершении проекта. Далее следует приступить к разработке пилотногопроекта, где впервые создаётся достаточно полная версия языка, и впервыееё начинают использовать те, для кого этот язык создаётся. После пилотногопроекта начинается фаза полномасштабного внедрения, когда уже несколькопроектов внутри организации начинают использовать созданный язык.
Послеэтого начинается фаза сопровождения, на которой в язык и инструментальныесредства вносятся изменения, при этом важно не нарушить совместимости с ужесозданными моделями. После этого наступает момент, когда на созданном DSMрешении уже не создаются новые программы, это, как правило, означает, чтопредметная область изменилась настолько сильно, что не покрывается созданнымрешением.
В этом случае решение выводится из эксплуатации.При этом выделяются роли участников процесса создания и использованияпредметно-ориентированного решения. Роли включают в себя экспертов предметной области, пользователей предметно-ориентированного решения, разработчиков языка, эргономистов, разработчиков генераторов, разработчиков предметноориентированной библиотеки, разработчиков инструментария. Наличие разныхролей не обязательно означает, что их будут играть разные люди, но каждаяроль имеет свою зону ответственности и связанные с ней задачи. Также приводятся соображения по организации команды — создавать DSM-решение должнанебольшая группа высококвалифицированных специалистов.В книге также приводятся рекомендации по деятельности на каждом этаперазработки, однако они слабо структурированы и могут восприниматься скореекак советы, чем предписания, поэтому нельзя сказать, что авторы предлагаютцелостную методологию разработки.492.2.2.
Паттерны и рекомендации по разработкепредметно-ориентированных языковНаиболее подробный свод рекомендаций по разработке предметноориентированных языков приведён в уже упоминавшейся книге [36] ибазируется на многолетнем опыте авторов по разработке визуальных языковс использованием DSM-платформы MetaEdit+, а также опыте разработкисамой этой платформы. Рассматриваются преимущества от использованияDSM, общие указания о том, когда следует применять DSM-подход (посколькуавторы редко ссылаются на другие работы и сами серьёзных исследованийпреимуществ и применимости DSM-подхода не проводили, книга производитнесколько рекламное впечатление, но тем не менее, многие указания из неёмогут быть полезны на практике и подтверждаются в работах других авторов).В качестве основных составляющих DSM-решения авторы рассматриваютвизуальный язык, генератор кода, предметно-ориентированный каркас (илибиблиотеку, или окружение).
Для задания абстрактного синтаксиса визуальногоязыка предлагается использовать метамоделирование, конкретный синтаксисзадаётся в графическом виде, либо в табличном виде, авторы обращают особоевнимание на то, что не стоит пытаться всё изобразить графически. Обращаетсявнимание на необходимость задания ограничений на модели. В качестветипичных подходов к реализации генераторов авторы выделяют генераторына языках общего назначения, получающие доступ к модели через программныйинтерфейс репозитория, генераторы, основанные на паттерне «Visitor» [112],шаблонные генераторы (использующие шаблонные файлы со вставкамиуправляющих конструкций на специальном языке, которые подставляют вшаблонный файл информацию из модели), crawler-ы (генераторы, входныефайлы для которых представляют собой набор управляющих конструкций совставками фрагментов на целевом языке, в некотором смысле обратная поотношению к шаблонным генераторам ситуация), и генераторы генераторов.Предметно-ориентированный каркас, в тех случаях, когда он нужен, пишетсявручную высококвалифицированными разработчиками, и служит, как правило,для упрощения генераторов.50Книга также содержит некоторые рекомендации, относящиеся к начальнымфазам создания DSM-решения, например, приводится опросник, который призванпомочь принять решение о целесообразности начала разработки.
Имеются такжеуказания по выбору концепций предметной области, которые должны статьосновными концепциями языка. Авторы не упоминают формальных методиканализа предметной области. В качестве основных источников концепций выделяются архитектура существующих приложений в данной предметной области,сами существующие приложения, спецификации, типичные паттерны проектирования, целевое окружение и существующий код. Также предлагается обращатьвнимание на физическую структуру продукта (если предметно-ориентированныйязык предназначен для программирования программно-аппаратного комплекса,полезным источником концепций могут стать его физические элементы, например, кнопки у часов), внешний вид приложения (если визуальный язык задаётинтерфейс, то лучше, чтобы модель на этом языке была близка по виду к разрабатываемому интерфейсу), различия между продуктами в линейке программныхпродуктов, мнение эксперта, требуемый вывод генератора.Книга содержит массу подробных рекомендаций, касающихся всех аспектовразработки и внедрения предметно-ориентированного языка, вплоть до того,как преодолеть отторжение нового языка коллективом.
Приводится и подробноанализируется пять примеров созданных при участии авторов DSM-решений,при этом решения были отобраны так, чтобы иллюстрировать разные подходы кразработке и разные типы визуальных языков. Книга может быть чрезвычайнополезна разработчикам DSM-решений и DSM-платформ, однако, не отменяетактуальности данной диссертации, поскольку авторы сфокусированы на использовании своего продукта (платформы MetaEdit+) и не рассматривают другихподходов.
К тому же, предлагаемая авторами методика довольно тяжеловесна итребует зрелой инструментальной и организационной поддержки.Некоторый набор советов, частично пересекающийся с книгой, рассмотренной выше, приводится в статье [99]. Рекомендации разбиты на три раздела:разработка предметно-ориентированного языка, интерпретация или генерация,процесс и организация. Рекомендации сформулированы в достаточно общемвиде, чтобы быть применимыми и к визуальным, и к текстовым языкам, авторобращает внимание, что не всегда визуальные нотации предпочтительны, в силу51сложности реализации редакторов для них. Касательно организации процессаавтор также настаивает на итеративном процессе разработки, начинающемся спостроения proof of concept, кроме того, автор рекомендует разрабатывать языкнепосредственно в процессе анализа предметной области.
Для этого требуетсядостаточно легковесный инструментарий, который позволял бы быстро увидетьрезультаты. Автор рекомендует не уделять серьёзного внимания опубликованнымпримерам реализации языков, поскольку предметно-ориентированные языки концептуально предназначены для узкой предметной области и настолько сильноотличаются друг от друга, что опыт создания одного языка может оказатьсянеприменимым для другой предметной области.Статья также интересна списком открытых проблем: совмещение текстовогои графического синтаксиса в языке, модульность и композиция языков, рефакторинг метамоделей, одновременный рефакторинг моделей и кода, автоматическаямиграция моделей при изменении метамодели, отладка на уровне моделей, работас большими моделями.Ещё одна работа, содержащая общие рекомендации — [42], от авторовсистемы MetaEdit+.
Данная работа сфокусирована на этапе проектированияязыка, а именно, поиске абстракций предметной области. Изложение ведётся порезультатам исследования 23 примеров DSM-решений, созданных с помощьюMetaEdit+. Было выделено четыре основных способа выделения сущностей: соображения эксперта предметной области, требуемый вывод генератора, внешнийвид создаваемой системы, различия между продуктами в линейке программныхпродуктов. При этом первый способ (эксперт) считается в этом исследовании«не совсем честным», поскольку эксперт сам должен был каким-либо образомпровести требуемый анализ. Способы упорядочены по возрастанию сложностиих применения — если есть эксперт, он представит готовые абстракции, которыедостаточно реализовать в языке, а анализ различий продуктов, напротив, сложен(как правило, требует формальных методов, но ссылки на такие методы в статьене приведены).2.2.3.
Способы внутренней организации визуальных языковСуществуют работы, рассматривающие теоретические аспекты организациивизуальных языков, которые могут быть важны для формирования методик,52поскольку такие аспекты так или иначе будут отражены в средствах задания языка(например, метаредакторах) и будут направлять деятельность проектировщикаязыка.