Диссертация (1148272), страница 20
Текст из файла (страница 20)
Вся функциональность метамоделирования на лету должна расширятьсуществующую функциональность редактора диаграмм. С точки зренияинтерфейса этот режим должен выглядеть как рисование диаграммы вобычном DSM-решении, с некоторыми дополнительными возможностями.2. Должна присутствовать возможность добавить элемент на палитру, задавего имя. При этом для элемента задаётся некоторая форма по умолчанию(например, прямоугольник), элемент создаётся без свойств.3. Должна быть возможность задать внешний вид элемента с использованиемредактора формы фигур, при этом все уже существующие на диаграммеэлементы должны обновить свой внешний вид.4. Должна быть возможность удалить элемент из палитры, если его экземпляров нет на диаграмме.5.
Должна быть возможность создавать копию элемента в палитре. При этомего внешний вид и свойства копируются, после чего могут быть редактируемы независимо.6. Должна быть возможность редактировать свойства элементов с палитры.(a) Добавлять новые свойства, задавая им имя, тип и значение по умолчанию.
Существующим на диаграмме элементам новые свойства добавляются автоматически, со значением по умолчанию, заданным дляэтого свойства. Явно значение по умолчанию при добавлении можноне указывать, в таком случае используется значение по умолчанию длятипа свойства (например, свойства целочисленного типа инициализируются значением 0).(b) Удалять существующие свойства. Если на диаграмме присутствуютэлементы с удаляемыми свойствами, выдаётся предупреждение с пе-99речислением элементов, имеющих эти свойства, и свойства простоудаляются с диаграммы, если пользователь согласен.(c) Редактировать имя, тип и значение по умолчанию существующихсвойств.
При этом, если изменяется тип свойства элемента, экземпляры которого присутствуют на диаграмме, должно выполнятьсяавтоматическое преобразование, если это возможно. Если невозможно (например, строку, содержащую латинские буквы, преобразуютв число), пользователю выдаётся предупреждение с перечислениемэкземпляров элементов, имеющих такие свойства.7. Практически никакие ограничения на рисуемые в этом режиме диаграммыне накладываются (за исключением ограничений, присущих самой среде).Любая связь может быт подключена к любому элементу, любой элемент может содержаться в любом другом элементе. Корректность значений свойствэлементов проверяется с точки зрения типа свойства, дополнительныеограничения на значения свойств в этом режиме не накладываются.8.
Метамодель, полученную в режиме метамоделирования на лету, должнобыть можно открыть и редактировать в метаредакторе. Метамодель должнабыть «плоской» в том смысле, что система не должна делать предположенийо структуре и иерархической организации метамодели. Даже в том случае,когда применялось копирование элемента, копия и оригинал не должныбыть связаны. Структурирование модели проводится отдельным этапом, вметаредакторе, по окончании быстрого прототипирования.Перечисленные требования до некоторой степени поддержаны в DSMплатформе MetaEdit+, там имеется возможность прямо в процессе моделированияменять внешний вид и свойства элемента. При этом для того, чтобы добавить илиудалить элемент, необходимо воспользоваться редактором метамодели, так чтоэто не может быть легко сделано самим экспертом без помощи человека, умеющего пользоваться этим инструментом, поэтому можно утверждать, что MetaEdit+не может быть в полной мере использован как DSM-платформа, поддерживающаяданную методику.
Ближе всего к данной методике методика, предлагаемаяинструментом Agentsheets [69], она тоже позволяет работать непосредственно с100пользователем и очень быстро создавать визуальные языки (даже с поддержкойинтерпретации). Однако, во-первых, технология предполагает программированиена текстовом языке, что делает невозможным её использование без помощиспециалиста по созданию языка, во-вторых, она не предполагает доработкиметамодели в полноценном метаредакторе, поэтому применима в более узкомнаборе случаев, чем типичные DSM-платформы, и плохо масштабируется набольшие проекты.3.5.
ЗаключениеБылирассмотренытипичныефазыжизненногоциклапредметно-ориентированного решения и методологические рекомендации, касающиесяактивностей на каждой из фаз. Были также описаны две методики созданияпредметно-ориентированного решения: «классическая» методика (которой втой или иной степени придерживается большинство существующих DSMплатформ, хоть и явно её не формулируют) и методика «метамоделирования налету». Методика «метамоделирования на лету» встраивается в «классическую»,подменяя начальные этапы анализа применимости, анализа предметной области,доказательства осуществимости и первых итераций разработки и являетсяальтернативной «классической» методике.
Для каждой методики приводятсятакже требования к реализации каждого этапа, которыми предлагаетсяруководствоваться при реализации инструментальных средств DSM-платформы.Эти требования положены в основу реализации, описанной в главе 4.Применимость и эффективность предложенных методик может быть подтверждена разработкой конкретных предметно-ориентированных решений в соответствии с этими методиками. Описание проектов по созданию таких решений,предпринятых в рамках данного диссертационного исследования, находится вприложениях A.1, A.2, A.3.101Глава 4Поддержка создания предметно-ориентированныхрешений в системе QReal4.1.
ВведениеВ данной главе описываются технологические средства для разработкипредметно-ориентированных визуальных языков, реализованные под руководством автора в системе QReal. Описаны средства для разработки языков сиспользованием метаредактора (в соответствии с «классической» методикой): самметаредактор, редактор конкретного синтаксиса, редактор ограничений, редактор правил рефакторингов, средства генерации редакторов и инструментальнойподдержки. Также описаны реализованные средства поддержки методики «метамоделирования на лету».
Приводится описание эксперимента по сравнениювремени, необходимого для создания редактора языка, генератора для него,ограничений и правил рефакторинга с использованием платформы QReal инаиболее распространённых из её аналогов.4.2. Возможности ядра системы QRealПрежде чем переходить к описанию средств описания визуальных языков,необходимо кратко описать возможности системы, в рамках которой будутработать созданные по метамоделям редакторы и средства инструментальнойподдержки. DSM-платформа QReal построена по модульному принципу: имеетсяабстрактное ядро, реализующее общую для всех языков функциональность иинфраструктуру редакторов, в него как подключаемые модули (плагины) загружаются редакторы, реализующие специфику конкретных языков, и инструменты,102реализующие какую-либо ещё специфичную для конкретного DSM-решенияфункциональность.
Ядро не содержит в себе никаких знаний про конкретные языки и работает со всеми DSM-решениями одинаковым образом. Всю необходимуюинформацию о языке и действиях, которые можно выполнить над диаграммами,созданными с его помощью, ядро получает из плагинов, либо непосредственноиз метамодели языка, если ядро работает в режиме интерпретации метамодели.Общая архитектура системы представлена на рисунке 4.1.
Цветом выделеныкомпоненты, которые были разработаны в рамках данного диссертационногоисследования.Рис. 4.1: Общая архитектура системы QReal.Плагины-инструменты могут настраивать внешний вид и состав интерфейсаQReal под свои нужды, базовый интерфейс среды представлен на рисунке 4.2. Интерфейс содержит область для редактирования диаграммы, называемую сценой,редактор свойств, палитру элементов, обозреватели логической и графическоймоделей, «миникарту», панель инструментов и меню.103Рис. 4.2: Пользовательский интерфейс системы QReal.Палитра элементов инициализируется описанными в плагине-редакторе элементами. Одновременно могут быть подключены несколько плагинов, тогдасоздаётся несколько палитр, между которыми можно переключаться с помощью выпадающего списка. В палитру попадают только те элементы, которыеимеют графическое представление, элементы, которые его не имеют, считаютсяабстрактными и используются в качестве базовых для определения другихэлементов.Редактор свойств отображает все свойства выделенного в данный моментэлемента и даёт возможность их редактировать.
Свойство характеризуется своимименем (задаваемым в метамодели), типом (одним из фиксированного набораэлементарных типов, типом-перечислением или типом-ссылкой на другой элемент диаграммы) и значением по умолчанию. Для разных типов редактор свойствпредлагает разные средства редактирования, например, выпадающие списки длятипов-перечислений, поля ввода для строк, «галочки» для булевых свойств.Панель инструментов содержит элементы, общие для всех редакторов (сохранение/загрузка, отмена операции и т.д.), и область, в которую добавляются104действия из плагинов-инструментов. Действие может вызвать произвольныйкод из плагина, который может использовать достаточно богатый программныйинтерфейс ядра QReal, предоставляющий доступ к сохранённой в репозиториимодели, сцене, возможность подписываться на системные события (например,закрытие вкладки с диаграммой, изменение системных настроек).Любой редактор визуального языка обязан реализовывать определённый интерфейс, чтобы быть подключенным к ядру системы.