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

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

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

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

Степанян Карлен Багратович

Разработка и применение языка описания нотации графо-подобных диаграмм

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

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

1 З ДЕН 2012

Санкт-Петербург - 2012

005057298

Работа выполнена на кафедре Прикладной математики Санкт-Петербургского Государственного Политехнического Университета (СПбГПУ).

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

профессор

Новиков Федор Александрович

Официальные оппоненты: Тропченко Александр Ювенальевич, доктор

технических наук, профессор кафедры «Вычислительная техника» НИУ ИТМО

Макаров Владимир Алексеевич, кандидат технических наук, начальник управления инноваций Новгородского государственного

университета им. Ярослава Мудрого

Ведущая организация Государственный научный центр

Центральный научно-исследовательский и опытно-конструкторский институт робототехники и технической кибернетики

Защита диссертации состоится 20 декабря 2012 года в 17 часов 00 минут на заседании диссертационного совета Д212.227.06 при НИУ ИТМО по адресу: 197101, Санкт-Петербург, Кронверкский пр., д. 49, Центр Интернет-образования.

С диссертацией можно ознакомиться в библиотеке НИУ ИТМО.

Автореферат разослан «19» ноября 2012 года.

Ученый секретарь диссертационного совета Лобанов

Игорь Сергеевич

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

Актуальность темы диссертации. В современной компьютерной индустрии для представления информации широко используются графические конструкции (например, схемы или диаграммы). Большое значение в последнее время приобрели различные диаграммы, используемые при моделировании, проектировании и реализации программного обеспечения. Разнообразие применяемых при этом визуальных образов довольно велико, но при разработке программ чаще всего используются двумерные графо-подобные диаграммы. Например, нотация функционального проектирования ШНРО, блок-схемы ГОСТ 19.701-90, диаграммы унифицированного языка моделирования

имь.

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

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

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

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

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

Цели и задачи диссертационного исследования:

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

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

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

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

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

Научная новизна. В работе предложен язык «DiaDeL» (Diagram Definition Language) описания нотации графо-подобных диаграмм, обладающий следующими характеристиками, не поддерживаемыми ранее предложенными языками.

1. Семантика диаграммы является внешним входным параметром, заданным в форме системы классов, удовлетворяющей определенным условиям.

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

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

Внедрение результатов работы. Работа была выполнена в 2006-2010 годах. Результаты работы внедрены в ЗАО «МОБИ.Деньги» в виде базового компонента программного комплекса, что подтверждено актом о внедрении от 21.07.2010 г.

Апробация работы. Основные результаты работы представлялись на следующих конференциях и семинарах: «XVI Всероссийская научно-методическая конференция "Телематика'2009"», ИТМО, Санкт-Петербург (2325 июня 2009 года); «XIV Всероссийская конференция "Фундаментальные

исследования и инновации в национальных исследовательских университетах"», СПбГПУ, Санкт-Петербург (13-14 мая 2010 года); «XII международной научно-практической конференции "Фундаментальные и прикладные исследования, разработка и применение высоких технологий в промышленности"», Санкт-Петербург (8-10 декабря 2011 года).

Публикации. По теме диссертации опубликовано 9 печатных работ, в том числе 6 статей в журналах из списка ВАК и три статьи (тезисы) в трудах конференций.

Объем и структура работы. Диссертационная работа изложена на 129 страницах и состоит из введения, пяти глав, заключения, списка литературы и четырех приложений. Список литературы содержит 83 наименования. Работа иллюстрирована 24 рисунками, содержит 11 таблиц и 3 листинга.

ОСНОВНОЕ СОДЕРЖАНИЕ ДИССЕРТАЦИИ

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

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

редактирования.

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

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

«TIGER», «GMF», «Microsoft DSL Tool», «MetaEdit+» и «Moses». Продукты проанализированы с точки зрения предоставления возможностей для решения актуальных задач по отображению диаграмм (Таблица 1).

Таблица 1 Результаты апализа рассмотренных продуктов и их языков

Возможности «TIGER» «GMF» «MS DSL Tool» «Meta Edit+» «Moses»

Использование внешнего абстрактного синтаксиса - - - - -

Отображение вложенных друг в друга сущностей (фигура-контейнер) + + - - +

Отображение обрамления вокруг одной или нескольких конструкций (рамка) - - - - -

Описание произвольных декораций для вершин и ребер - - - + -

Все рассмотренные продукты предполагают определение абстрактного синтаксиса своими специфическими средствами. Таким образом, эти продукты не могут быть использованы в том случае, когда абстрактный синтаксис уже существует или разрабатывается с использованием других инструментов. Продукты «Microsoft DSL Tool» и «MetaEdit+» не допускают визуального представления вложенности одной или нескольких сущностей в другую, что является серьезным недостатком на сегодняшний день, так как многие современные визуальные языки используют визуальную вложенность конструкций для отображения связи между их сущностями (например, диаграмма состояний или диаграмма развертывания унифицированного языка моделирования UML). Ни один из рассмотренных продуктов не предполагает описание конструкции, обрамляющей другие конструкции, что также используется в ряде популярных языков (IDEFO, UML). Продукты «TIGER», «GMF» и «Microsoft DSL Tool» позволяют описывать декорации для ребер только из ограниченного набора (стрелки, ромбик). Это, в частности, не позволяет описать нотацию такого языка, как ERD в варианте Crow's Foot.

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

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

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

1. Модель должна представлять собой набор классов или интерфейсов.

2. Среди классов должен быть выделен корневой класс, который соответствует диаграмме в целом. Система объектов, которая используется для построения отображения, должна содержать единственный объект данного класса.

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

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

5. Классы модели должны позволять извлекать информацию об объектах, отображение которых зависит от отображения текущего объекта.

Возможны два варианта использования языка «Б1аОсЬ». Система автоматического построения диаграмм (Рис. 1) состоит из компилятора языка «Б1аОеЬ» и визуализатора диаграмм. Компилятор создает из описания конкретного синтаксиса диаграммы ее синтаксическую модель. Визуализатор, используя синтаксическую модель и систему объектов семантической модели, создает экземпляр диаграммы. Данный вариант использования языка практически наиболее востребован.

Рис. X Схема работы системы автоматического построения диаграмм Синтезатор визуализаторов диаграмм (Рис. 2) работает по аналогичной схеме, только вместо визуализатора диаграмм в ней находится синтезатор визуализаторов, который на вход получает саму семантическую модель, а на выходе строит синтезированный код визуализатора.

/Синтез визуапизаторовЧ диаграмм

Семантическая модель

DiaPeL программа

Синтезатор виэуалиэаторов

Синтаксическая модель

DiaDeL интерпретатор

Визуапияатоп диаграмм

Диаграмма

Семантическая молепь

Рис. 2 Схема работы системы синтезирующей визуализаторы диаграмм

Спецификация «DiaDeL» разбита на две части: описание метамодели -абстрактного синтаксиса языка, и описание конкретного синтаксиса. Описание метамодели включает описание классов конструкций, их свойств, допустимых отношений и семантических мостов. В «DiaDeL» выделены следующие основные классы графических конструкций - метка, декорация, простая фигура, составная фигура, фигура-контейнер, рамка, линия. Фигуры предназначены для представления на диаграмме вершин, линии — ребер, связывающих вершины. Метки — для отображения текстовой информации. Декорации - для отображения дополнительной семантики сущностей. Метки и декорации связываются с фигурами и линиями с помощью отношения прикрепления, которое определяет их расположение относительно родительских фигур. Все конструкции имеют присущий им набор атрибутов, позволяющий указывать такие детали отображения, как цвет, толщина линий, шрифт, выравнивание и т.д. Метамодель также содержит описание сущностей для определения связей между графическими конструкциями и элементами заданной семантической модели, которые называются семантическими мостами.

На Рис. 3 представлен фрагмент метамодели, описывающий класс двумерных графических конструкций (FlatConstructiori) и класс конструкций метка {Text). Метка является прикрепляемой сущностью, поэтому она наследуется от Attachable. Любая двумерная конструкция может иметь прикрепления, поэтому сущность FlatConstruction наследуется от сущности A ttachmentHost.

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

Рис. 3 Метка и двумерная конструкция в метамодели

На Рис. 4 представлены декорация (Decoration), диаграмма (Diagram) и различные классы фигур: простая фигура {Figuré), составная фигура (CompoundFigurè) и фигура-контейнер (ContainerFigure). Декорация является прикрепляемой сущностью, поэтому она наследуется от Attachable. Для составной фигуры обязательно должны быть определены ее части, что отображает направленная ассоциация с концом parts. Сущность InstanceSpecification обозначает экземпляр конструкции. При создании конкретной графической конструкции описываемой CompoundFigurè, автоматически будут созданы все ее части.

Рис. 3 и Рис. 4 демонстрируют определение небольшой части метамодели языка. В диссертации подобным образом определены и остальные сущности метамодели, в частности линия (Line), семантические мосты (SemanticModelBridge, LineSemanticModelBridge, FigureSemanticModelBridge — некоторые из них), сущности для описания прикрепления (Attachment, Attachment Host, AttachmentPoint) сущности для управления отображением (Statement, CompoundStatement, Condition, Assignment - некоторые из них) и другие элементы необходимые для построения отображения. Общий объем метамодели составляет 9 диаграмм, описывающих 53 сущности и 70 отношений.

Рис. 4 Декорация, фигура, составная фигура, фигура-контейнер и диаграмма Конкретный синтаксис «ОіаОеЬ» имеет текстовый формат, поскольку он является наиболее привычным для основной категории пользователей

«01а0еЬ» - разработчиков программного обеспечения. Для описания правил грамматики языка используется расширенная форма Бекуса - Наура.

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

Классификация конструкций основывается на двух множествах: V -множество двумерных конструкций, которые располагаются на диаграмме контекстно-независимо (вершины); Е - множество линий, которые располагаются на диаграмме в зависимости от расположения инцидентных им двумерных конструкций (ребра). Они дополнены множеством меток Т -множество конструкций, отображающих текст. Множество V разбивается на следующие подмножества:

• множество декораций £> с V - множество конструкций предназначенных для отображения статических элементов, например, таких как значки на концах линии;

• множество фигур F с V - множество конструкций отображающих сущности диаграммы, содержащее в том числе

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

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

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

Перечисленные множества формируют допустимые в «В1аОеЬ» классы конструкций. В качестве примера применения используемого формализма рассмотрим формализацию оператора прикрепления метки к вершине. Формально контекстом прикрепления метки к вершине для оператора являются следующие параметры (Я - множество действительных чисел):

г„ = (гхр, гур) ейхй - точка прикрепления родительской вершины в ее системе координат;

Г[ = (гх(, гус) ейхД - точка прикрепления метки в системе координат метки.

Тогда для любой вершины V имеющей координаты (*„, уу) = ро1Ш(у) и размеры (и'у, /ц) = оператор прикрепления ТА V применяется для

вычисления положения прикрепленной метки по ее размерам:

■v

■v

) ©

= TAV(y,rt) x

где (wt> ht) e Size - размер метки, вычисленный по тексту, который необходимо отобразить;

(xt, yt) Е Point — вычисленное положение метки на диаграмме;

Point — Z х Z - множество точек плоскости, на которой отображается диаграмма;

Size = Z+ х Z+ — множество всевозможных размеров элементов по ширине и высоте;

Z - множество чисел, которые используются для представления координат, или размеров элементов диаграммы.

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

Четвертая глава содержит описание архитектуры и реализации системы автоматического построения диаграмм по описанию нотации на «DiaDeL». Система состоит из компилятора и визуализатора диаграмм. С целью удобства и экономии трудозатрат, реализация выполнена на платформе «Eclipse». Логически алгоритм работы системы можно разбить на три основных шага: 1) компиляция - преобразование описания на языке «DiaDeL» в экземпляр метамодели «DiaDeL»; 2) построение конкретных графических объектов по экземпляру метамодели и переданной системе объектов семантической модели; 3) отображение графических объектов на экране.

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

Пятая глава посвящена описанию применения языка «DiaDeL» и системы автоматического построения диаграмм. С целью демонстрации графической выразительности языка в главе приводятся примеры различных диаграмм, построенных по описаниям на языке «DiaDeL». Здесь приведены два примера -диаграмма «сущность-связь» в варианте Crow's Foot (Рис. 5) и диаграмма классов UML (Рис. 6).

Рис. 5 Пример диаграммы сущность-связь построенной системой автоматической визуализации диаграмм по описанию на языке «ВтРеЬ»

Рис. 6 Пример диаграммы классов иМЬ построенной системой автоматической визуализации диаграмм по описанию на языке «Б1аОеЬ»

В главе приведено описание внедрения языка «В1аОеЬ» и системы автоматического построения диаграмм в компании ЗАО «МОБИ.Деньги». На основе визуализатора «Б1аВеЬ» -, компонента системы, создан компонент, позволяющий строить отображение денежных потоков между счетами клиентов в виде графо-подобной диаграммы. Диаграммы денежных потоков используются аналитиками для определения мошеннических операций. Ниже приведен фрагмент описания нотации диаграммы денежных потоков на языке «В1аВеЬ».

Листинг 1. Описание нотации диаграммы денежных потоков на «DiaDeL»

// описание диаграммы diagram cash_flow_diagram {

// объявление конструкций, которые будут // отображаться на диаграмме contain = {cash_node, cash_edge);

}

// связь диаграммы с классом ARoot из модели bridge <cash_flow_d±agram> { model :=

org.mobimoney.cfanalyzer.domain.ifaces.antifraud.ARoot; // метод getNodes() возвращает счета для отображения children := model.getNodes();

}

// описание фигуры для отображения счета figure cash_node {

shape = ellipse; // представляем счет на диаграмме

// в виде эллипса // начальный размер конструкции 100x80 пикселей size = (100, 80);

// эллипс отображается сплошной черной

// линией толщиной в 2 пикселя

pen.style = styles.solid;

pen.width = 2;

pen.color = colors.black;

}

// связь фигуры для отображения счета с классом ACashNode представляющим счет в модели bridge <cash_node> { model :=

org.mobimoney.cfanalyzer.domain.ifaces.antifraud.ACashNode; // метод getEdges() возвращает денежные потоки, // которые должны отображаться инцидентно данному счету edges := model.getEdges();

refresh() {

// присвоение номера счета из модели метке по умолчанию text.value = model.getNodeld();

}

}

II описание декорации в виде стрелки для обозначения // направления у денежного потока decoration arrow {

size = (20,15);

// стрелка описывается в виде замкнутого многоугольника // с тремя вершинами:

II в левом верхнем углу, левом нижнем углу // и на середине правой стороны

shape = polygon((0%,0%) ,(0%,100%), (100%,50%));

}

// описание линии для отображения денежного потока line cash_edge (

pen.style = styles.solid; pen.color = colors.black;

// определение допустимых инцидентных конструкций links = {(cash_node,cash_node)};

// прикрепление к концу линии декорации в виде стрелки attachments[100%] = (:arrow)[100%,50%];

Из приведенного выше примера видно, что в языке «В1аВеЬ» используются два схожих по синтаксису, но разных по смыслу оператора -оператор присвоения значения, обозначается как знак равно '=', и оператор связи, обозначается как двоеточие равно ':='. Оператор присвоения значения носит классический смысл. Оператор связи используется только в семантических мостах для обозначения связи конструкции с элементом из семантической модели или его свойством/методом, возвращающим необходимые данные для построения отображения. Т.е. в отличие от оператора присвоения, который указывает, какое значение необходимо присвоить левой части, оператор связи указывает, откуда необходимо извлечь значение для присвоения.

Пример диаграммы, построенной по этому описанию, приведен на Рис. 7.

о>

9649808851

О

90936501«

О

961581978«

Рис. 7 Пример диаграммы денежных потоков построенной системой

автоматической визуализации диаграмм по описанию на языке «0!а0еЬ» В конце главы проводится анализ полученных результатов. Делается вывод о том, что язык описания диаграмм «В1аБеЬ» позволяет решить поставленные в работе задачи, а именно описать конкретный синтаксис графо-подобных диаграмм в предположении, что абстрактный синтаксис задан изначально и удовлетворяет обозначенным ограничениям. Указанные характеристики в совокупности позволяют эффективно решать задачу визуализации существующих моделей, что продемонстрировано на примере внедрения результатов работы.

4790.......'1?25

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

1. Язык описания графо-подобных диаграмм «01а0еЬ», позволяющий описывать конкретный синтаксис и его связь с.внешней семантикой заданной в виде программных объектов.

2. Система автоматического построения диаграмм «0!а0еЬ», которая позволяет автоматически визуализировать диаграммы различных типов.

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

Разработанное программное обеспечение внедрено для решения задачи построения отображения денежных потоков в компании ЗАО «МОБИ.Деньги». Публикации автора по теме диссертации

[1] Степанян К.Б. Язык описания диаграмм // Научно технические ведомости СПбГПУ. № 6-1. 2006. С. 36^1 (список ВАК).

[2] Новиков Ф.А., Степанян К.Б. Язык описания диаграмм // Информационно-управляющие системы. 2007, №4, с. 28-36 (список ВАК).

[3] Новиков Ф.А., Степанян К.Б. Использование порождающего программирования при реализации языка описания диаграмм // Информационно-управляющие системы. 2008, №6, с. 32-35 (список ВАК).

[4] Степанян К.Б. Использование языка описания диаграмм // Информационно-управляющие системы. 2009, №1. с. 25-32 (список ВАК)

[5] Степанян К.Б. Использование языка описания диаграмм при моделировании программного обеспечения / Труды XVI Всероссийской научно-методической конференции Телематика'2009. Том 2. СПб. 2009, с. 428-429

[6] Степанян К.Б. Использование языка описания диаграмм при моделировании программного обеспечения // Дистанционное и виртуальное обучение. 2009, № 12(30), с. 42-50 (список ВАК)

[7] Степанян К.Б. Формализация двумерных графо-подобных диаграмм / Фундаментальные исследования и инновации в национальных исследовательских университетах: материалы XIV Всероссийской конференции. Том 1. СПб. 2010, с. 132-133

[8] Степанян К.Б. Формализация двумерных графо-подобных диаграмм // Компьютерные инструменты в образовании. 2010, № 3, с. 8-18 (список ВАК).

[9] Степанян К.Б. Решение задачи оптимизации обновления графо-подобной диаграммы в распределенной системе с помощью языка

«В1аБе1_» // Высокие технологии, фундаментальные исследования, экономика: Сборник статей двенадцатой международной научно-практической конференции «Фундаментальные и прикладные исследования, разработка и применение высоких технологий в промышленности» 8-10 декабря 2011 г. Том 1. СПб. 2011, с. 135136.

Подписано в печать 15.11.12 Формат 60х84'/іб Цифровая Печ. л. 1.0 Тираж 100 Заказ 11/11 печать

Отпечатано в типографии «Фалкон Принт» (197101, г. Санкт-Петербург, ул. Большая Пушкарская, д. 54, офис 2)

Оглавление автор диссертации — кандидата технических наук Степанян, Карлен Багратович

Введение.

Глава 1. Обзор существующих решений.

1.1. Обзор способов спецификации визуальных языков.

1.1.1. Спецификации, основанные на алгебрах.

1.1.2. Спецификации, основанные на логике.

1.1.3. Спецификации, основанные на грамматиках и системах подстановок.

1.2. Обзор и анализ существующих продуктов.

1.2.1. Система TIGER.

1.2.2. Инструментальная среда Graphical Modeling Framework (GMF)

1.2.3. Набор инструментов Microsoft DSL Tools.

1.2.4. Продукт MetaEdit+ 4.5.

1.2.5. Проект Moses 1.5.

1.3. Выводы по главе 1.

Глава 2. Язык описания диаграмм DiaDeL.

2.1. Назначение языка.

2.1.1. Основные концепции.

2.1.2. Требования к семантической модели.

2.1.3. Способы использования языка.

2.2. Абстрактный синтаксис.

2.2.1. Корневые сущности метамодели.

2.2.2. Графическая конструкция, контейнер, диаграмма и конструкция-владелец

2.2.3. Прикрепление.

2.2.4. Метка и абстрактная геометрическая конструкция.

2.2.5. Декорация, фигура, составная фигура и фигура-контейнер.

2.2.6. Линия.

2.2.7. Семантические мосты.

2.2.8. Управление отображением конструкции.

2.2.9. Операнды.

2.3. Конкретный синтаксис.

2.3.1. Используемые терминалы.

2.3.2. Правила грамматики.

2.3.3. Пояснения к правилам грамматики.

2.4. Выводы по главе 2.

Глава 3.Математическая формализация графических конструкций языка

Б1аБеЬ.

3.1. Общие определения.

3.2. Метки.

3.3. Оператор прикрепления метки к вершине.

3.4. Оператор прикрепления метки к ребру.

3.5. Декорация.

3.6. Оператор прикрепления декорации к ребру.

3.7. Фигура.

3.8. Составная фигура.

3.9. Контейнер.

3.10. Рамка.

3.11. Ребра.

3.12. Выводы по главе 3.

Глава 4. Система автоматического построения диаграмм.

4.1. Архитектура и описание логики работы.

4.2. Модель конкретных графических объектов.

4.3. Алгоритм построения диаграммы.

4.4. Выводы по главе 4.

Глава 5. Применение языка Э1аОеЬ и визу ал изатора диаграмм.

5.1. Внедрение предложенных результатов работы в компании ЗАО «МОБИ. Деньги».

5.1.1. Бизнес задача.

5.1.2. Архитектура решения на основе САДП.

5.1.3. Описание диаграммы денежных потоков на языке DiaDeL.

5.1.4. Пример построенной диаграммы денежных потоков.

5.2. Визуализация диаграмм с использованием DiaDeL.

5.2.1. Диаграмма сущность-связь.

5.2.2. Диаграмма классов UML.

5.2.3. Диаграмма состояний UML.

5.2.4. Диаграмма IDEF0.

5.3. Выводы по главе 5.

Введение 2012 год, диссертация по информатике, вычислительной технике и управлению, Степанян, Карлен Багратович

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

Изначально такие диаграммы предназначались только для рисования и чтения человеком. С развитием современных технологий они стали широко использоваться в целях автоматизации производства. Но инструментальное программное обеспечение, применяемое при работе с диаграммами, должно «понимать», что представлено на диаграмме. Для этого требуется строго формализовать нотацию и семантику всех графических конструкций, используемых на диаграммах данного типа. Если это условие соблюдено, диаграмму можно тем или иным способом интерпретировать, вследствие чего класс диаграмм данного типа становится визуальным (графическим) языком.

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

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

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

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

Цели и задачи диссертационного исследования.

1. Разработка языка описания нотации графо-подобных диаграмм, позволяющего описывать нотацию в предположении, что семантическая модель является внешним входным параметром (язык 01аБеЬ).

2. Программная реализация визуализации диаграммы по описанию типа диаграммы на языке Б1аВеЬ и системе объектов, построенных по соответствующей семантической модели (система автоматического построения диаграмм).

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

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

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

Научная новизна. В работе предложен язык «DiaDeL» (Diagram Definition Language) описания нотации графо-подобных диаграмм, обладающий следующими характеристиками, не поддерживаемыми ранее предложенными языками.

1. Семантика диаграммы является внешним входным параметром, заданным в форме системы классов, удовлетворяющей определенным условиям.

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

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

Реализация результатов работы. Результаты работы внедрены в ЗАО «МОБИ.Деньги» в виде базового компонента программного комплекса, что подтверждено актом о внедрении от 21.07.2010 г.

Апробация работы. Основные результаты работы представлялись на следующих конференциях и семинарах: «XVI Всероссийская научнометодическая конференция "Телематика'2009"», ИТМО, Санкт-Петербург (23-25 июня 2009 года); «XIV Всероссийская конференция "Фундаментальные исследования и инновации в национальных исследовательских университетах"», СПбГПУ, Санкт-Петербург (13-14 мая 2010 года); «XII международной научно-практической конференции "Фундаментальные и прикладные исследования, разработка и применение высоких технологий в промышленности"», Санкт-Петербург (8-10 декабря 2011 года).

Публикации. По теме диссертации опубликовано 9 печатных работ, в том числе 6 статей в журналах из списка ВАК и три статьи (тезисы) в трудах конференций.

Объем и структура работы. Диссертационная работа изложена на 132 страницах и состоит из введения, четырех глав, заключения, списка литературы и четырех приложений. Список литературы содержит 83 наименования. Работа иллюстрирована 24 рисунками, содержит 8 таблиц и 3 листинга.

Заключение диссертация на тему "Разработка и применение языка описания нотации графо-подобных диаграмм"

5.3. Выводы по главе 5

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

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

Представленные в разделе 5.2 примеры диаграмм демонстрируют, что возможности DiaDeL позволяют описать нотацию для сложных современных визуальных графо-подобных языков. Пример в разделе 5.2.1 демонстрирует создание совершенно нестандартных декораций на концах ребер. Пример в разделе 5.2.3 демонстрирует возможность описывать на DiaDeL конструкции-контейнеры. В DiaDeL введен новый тип конструкции - рамка, использование которой показано в разделе 5.2.4.

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

Заключение

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

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

• Позволяет описать отображение вложенных друг в друга сущностей.

• Позволяет описать отображение обрамления вокруг одной или нескольких конструкций.

• Позволяет описывать произвольные декорации для вершин и ребер.

Описание нотации диаграммы на 01а0еЬ представляет собой определение типов графических конструкций, которые могут быть представлены на диаграмме, и связи их с элементами семантической модели. Описание связи позволяет гибко управлять отображением в зависимости от состояния отображаемых элементов. Язык 01а0еЬ не привязан ни к одной из платформ или графических библиотек, поэтому его использование не ограничено конкретными продуктами или платформами.

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

Для построения диаграмм по Б1аВеЬ описанию была разработана система автоматического построения диаграмм 01аБеЬ, которая позволяет:

• построить графо-подобную диаграмму по переданной системе объектов семантической модели.

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

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

Предложенный язык и система автоматического построения диаграмм были успешно внедрены в коммерческой организации для создания инструмента анализа денежных потоков. Также произведена успешная апробация языка В1аЕ)еЬ для визуализации ряда современных визуальных языков, таких как ЕМ), диаграммы классов и состояний 1ЖЬ, ГОЕЕО.

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

В работе получены следующие основные результаты.

1. Язык описания графо-подобных диаграмм «В1аОеЬ», позволяющий описывать конкретный синтаксис и его связь с внешней семантикой заданной в виде программных объектов.

2. Система автоматического построения диаграмм «Б1аВеЬ», которая позволяет автоматически визуализировать диаграммы различных типов.

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

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

1. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т. 1,2. М.: Мир, 1979

2. Жоголев Е. А. Графические редакторы и графические грамматики // Программирование № 3. 2001. С. 30-42.

3. Карпов Ю. Г. Теория автоматов. СПб.: Питер, 2002. 224 с.

4. Котов В.Е. Сети Петри М : Наука. 1984. 160 с.

5. Кузнецов С. Обещания и просчеты UML 2.0 //Открытые системы. 2006. № 2, С. 75-79.

6. Леоненков A.B. Самоучитель UML2. СПб.: BHV-Санкт-Петербург. 2007. 576 с.

7. Новиков Ф.А. Дискретная математика для программистов. СПб.: Питер. 2009. 384 с.

8. Новиков Ф.А., Иванов Д.Ю. Моделирование на UML. Теория, практика, видеокурс. СПб.: Профессиональная литература. 2010. 640 с.

9. Новиков Ф.А., Степанян К.Б. Использование порождающего программирования при реализации языка описания диаграмм // Информационно-управляющие системы. 2008. №6. С. 32-35 (список ВАК)

10. Новиков Ф.А., Степанян К.Б. Язык описания диаграмм // Информационно-управляющие системы. 2007. №4. С. 28-36 (список ВАК)

11. Патент 2395118 РФ, МПК G06 F 21/06. Система защиты платежных систем / Кошкарова Е.В., Шишло A.M.; Закрытое акционерное общество "МОБИ.Деньги"; Заяв. 2009130045/12 от 05.08.2009; Опуб.: 20.07.2010

12. Расширенная форма Бекуса Наура, международный стандарт. http://www.cl.cam.ac.uk/%7Emgk25/iso-14977.pdf (23.09.2010)

13. Сайт компании MetaCase и их продукта MetaEdit+. http://www.metacase.com/ (23.09.2010)

14. Степанян К.Б. Использование языка описания диаграмм // Информационно-управляющие системы. 2009. №1. С. 25-32 (список ВАК)

15. Степанян К.Б. Использование языка описания диаграмм при моделировании программного обеспечения // Дистанционное и виртуальное обучение. № 12(30). 2009. С. 42-50 (список ВАК)

16. Степанян К.Б. Язык описания диаграмм // Научно технические ведомости СПбГПУ. № 6-1. 2006. С. 36^1 (список ВАК)

17. Степанян К.Б. Формализация двумерных графо-подобных диаграмм // Компьютерные инструменты в образовании. № 3. 2010. С. 8-18 (список ВАК)

18. Фу К. Структурные методы в распознавании образов. М.: Мир, 1977. 319 с.

19. An MDA Manifesto / Booch G., Brown A., Iyengar S., Rumbaugh J., and others // MDA Journal. May 2004. http://www.bptrends.com/publicationfiles/05-04%20COL%20IBM%20Manifesto%20-%20Frankel%20-3.pdf (23.09.2010)

20. Automatic parser generation for pictorial languages / Costagliola G., Orefice S., Polese G., Tortora G. and others. In IEEE Symposium on Visual Languages. 1993. P. 306-313.

21. Bardohl R. Application of Graph Transformation to Visual Languages : Technical Report 97 10 / Technical University Berlin. 1997.

22. Bardohl R. GenGEd: Visual Definition of Visual Languages based on Algebraic Graph Transformation : PhD thesis / Technical University of Berlin. 1999. 232 p. http://tfs.cs.tu-berlin.de/Dissertationen/RosiBardohl.ps.gz (23.09.2010)

23. Bardohl R. GenGEd A Generic Graphical Editor for Visual Languages based on Algebraic Graph Grammars // Proceedings of the IEEE Symposium on Visual Languages. 1998. P. 48—55.

24. Bardohl R., Ehrig H. Conceptual model of the graphical editor GenGEd for the visual definition of visual languages // Proc. Theory and Application to Graph Transformations. 1998. P. 252—266.

25. Bardohl R., Taentzer G. Defining Visual Languages by Algebraic Specification Techniques and Graph Grammars // In Proc. Workshop on Theory of Visual Languages. 1997. P. 27^12.http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.30.910 (23.09.2010)

26. Bardohl R., Taentzer G., Minas M., Schtirr A. Application of Graph Transformation to Visual Languages / Handbook of graph grammars and computing by graph transformation: vol. 2: applications, languages, and tools. 1999. P. 105— 180.

27. Boshernitsan M., Downes M. Visual programming languages: A survey. : Technical Report CSD-04-1368 / University of California. Berkeley. December 1997. http://citeseerx.ist.psu.edu/viewdoc/summarv?doi=10.1.1.21.7689 (23.09.2010)

28. Chok S., Marriott K. Automatic Generation of Intelligent Diagram Editors // ACM Transactions on Computer-Human Interaction. Vol. 10. No. 3, September 2003. P. 244-276

29. Chok S., Marriott K. Parsing visual languages // In Proceedings of the Eighteenth Australian Computer Science Conference—Australian Computer Science Communication. 1995. Vol. 17. P. 90-98

30. Domain-Specific Modeling Forum, http://www.dsmforum.org/ (23.09.2010)

31. Drewes F., Habel A., Kreowski H.J. Hyperedge replacement graph grammars / In Rozenberg, G., ed.: Handbook of Graph Grammars and Computing by Graph Transformation. Vol. I: Foundations. World Scientific. 1997. p. 95-162

32. Eclipse Graphical Editing Framework home page, http://www.eclipse.org/gef/ (23.09.2010)

33. Eclipse Graphical Modeling Framework home page. http://www.eclipse.org/modeling/gmf/ (23.09.2010)

34. Eclipse home page, http://www.eclipse.org (23.09.2010)

35. Eclipse Modeling Framework home page, http://www.eclipse.org/modeling/emf/ (23.09.2010)

36. EclipseUML. http://www.eclipse.org/modeling/mdt/?project=uml2 (23.09.2010)

37. Ehrig K., Ermel C., Hansgen S. Towards Model Transformation in Generated Eclipse Editor Plug-ins // Electronic Notes in Theoretical Computer Science. 2006. Vol. 152. P. 39-52

38. Ehrig K., Ermel C., Hansgen S., Taentzer G. Generation of visual editors as eclipse plug-ins // ACM Intern. Conf. on Automated Software Engineering: Proc. 20th IEEE. 2005. P. 134-143

39. Ehrig K., Ermel C., Hansgen S., Taentzer G. Towards Graph Transformation based Generation of Visual Editors using Eclipse // Electronic Notes in Theoretical Computer Science. 2005. Vol. 127(4). P. 127-143

40. Entity-relationship diagram (ERD). http://ru.wikipedia.org/wiki/ERD (23.09.2010)

41. Ferrucci F., Tortora G., Tucci M. and Vitiello G. A predictive parser for visual languages specified by relation grammars // In IEEE Symposium on Visual Languages. 1994. P. 245—252

42. Frankel D. Model Driven Architecture: Applying MDA to Enterprise Computing. NJ: Wesley. 2003. 352 p.

43. GMF Tutorial. http://wiki.eclipse.org/index.php/GMF Tutorial (23.09.2010)

44. Haarslev V. Formal semantics of visual languages using spatial reasoning // Proceedings of the 11th International IEEE Symposium on Visual Languages. 1995. P. 156—163

45. Haarslev V. A fully formalized theory for describing visual notations // Visual language theory. 1998. P. 261-292

46. Haarslev V., Wessel M. GenEd An Editor with Generic Semantics for Formal Reasoning about Visual Notations // Proceedings of the 12th IEEE Symposium on Visual Languages. 1996. P. 204-211

47. Integration Definition methods (IDEF). http://www.idef.com (23.09.2010)

48. Integration Definition for Function Modeling (IDEF0). http://www.idef.com/pdf/idefO.pdf (23.09.2010)

49. Integration Definition for Process Description Capture (IDEF3). http://www.idef.com/pdf/Idef3 fn.pdf (23.09.2010)

50. Janneck J. Graph-type definition language (GTDL) specification : Technical report / Computer Engineering and Networks Laboratory. ETH Zurich. 2000.

51. Janneck J., Esser R. A predicate-based approach to defining visual language syntax // Symposia on Human-Centric Computing (HCC '01). September 2001. P. 40—47

52. Jones G. Domain-Specific Development in Visual Studio, http://www.code-rnagazine.com/article.aspx?quickid=0710072&page=l (23.09.2010)

53. Marriott K. Constraint multiset grammars // In IEEE Symposium on Visual Languages. 1994. P. 118—125

54. Marriott K., Meyer B. Formal Classification of Visual Languages // Proc. International Workshop on Theory of Visual Languages. 1996. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.35.2940 (23.09.2010)

55. Marriott K., Meyer B. On the Classification of Visual Languages by Grammar Hierarchies // Journal of Visual Languages and Computing. Vol. 8. No. 4. 1997. P. 375-4-02

56. Mariott K., Meyer B., Wittenburg K. A survey of visual language specification and recognition // Visual language theory. 1998. P. 5—85

57. Message Sequence Chart (MSC) / ITU-T Recommendation Z.100. http://www.itu.int/ITU-T/studygroups/coml7/languages/Z120.pdf (23.09.2010)

58. Microsoft DSL Tools download page.http://www.microsoft.com/downloads/details.aspx?FamilyId=57A14CC6-C084-48DD-B401 -1845013BF834&displaylang=en (23.09.2010)

59. Minas M., Viehstaedt G. DiaGen: A Generator for Diagram Editors Providing Direct Manipulation and Execution of Diagrams // Proceedings of the 11th International IEEE Symposium on Visual Languages. 1995. P. 203—210

60. The Moses Project / Computer Engineering and Communications Laboratory. ETH Zurich, http://www.tik.ee.ethz.ch/~moses (23.09.2010)

61. Najork M., Kaplan S. Specifying Visual Languages with Conditional Set Rewrite Systems // in 1993 IEEE Symposium on Visual Languages. 1993. P. 12—18

62. Nassi I., Shneiderman B. Flowchart Techniques for Structured Programming / SIGPLAN Notices 8, 8. August 1973

63. OMG Model Driven Architecture, http://www.omg.org/mda/ (23.09.2010)

64. OMG Unified Modeling Language (OMG UML), Superstructure. Version 2.2 http://www.0mg.0rg/spec/UML/2.2/Superstructure (23.09.2010)

65. Rath I. Declarative Specification of Domain Specific Visual Languages : Master Thesis / Budapest University of Technology and Economics. 2006.

66. Rekers J. On the use of Graph Grammars for defining the Syntax of Graphical Language // In Proceedings of the colloquium on Graph Transformation, Palma de Mallorca. 1994. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.56.6798 (23.09.2010)

67. Rekers J., Schiirr A. A graph grammar approach to graphical parsing // In IEEE Symposium on Visual Languages. 1995. P. 195-202

68. Rekers J., Schiirr A. Defining and parsing visual languages with layered graph grammars// Journal of Visual Languages and Computing. 1997. Vol. 8. No. 1. P. 2755.

69. Ruskey F., Weston M. A Survey of Venn Diagrams // Electronic Journal of Combinatorics. Dynamical Survey. DS5. June 2005. http://www.combinatorics.Org/Survevs/#DS5 (23.09.2010)

70. Schiirr A. Specification of Graph Translators with Triple Graph Grammars // In Proc. of the 20th Int. Workshop on Graph-Theoretic Concepts in Computer Science. 1994. P. 151—163

71. Specification and description language (SDL) / ITU-T Recommendation Z.100. http://www.itu.int/ITU-T/studygroups/comlO/languages/Z. 100 1199.pdf (23.09.2010)

72. Tiger project homepage http://tfs.cs.tu-berlin.de/tigerprj/ (23.09.2010)

73. Uskiidarli S. Generating visual editors for formally specified languages. // In proceedings of the 1994 IEEE Symposium Visual Languages. October 1994. P. 278285

74. Uskiidarli S. Algebraic Specification of Visual Languages : PhD thesis / University of Amsterdam. 1997

75. Uskiidarli S., Dinesh T. VAS Formalism in VASE // In proceedings of the 1996 IEEE Symposium Visual Languages. 1996. p. 140-147

76. Wang D., Zeevat H. Minimal Sorts for Interpreting Pictures : Technical Report: CS-R9623 / CWI. Department of Computer Science. ISSN 0169-118X. 1996. http://oai.cwi.nl/oai/asset/4848/4848D.ps (23.09.2010)

77. Wang D., Zeevat H. A syntax directed approach to picture semantics // Visual language theory. 1998. P. 307-324

78. Wittenburg K., Weitzman L. Relational Grammars: Theory and Practice in a Visual Language Interface // In Workshop on Theory of Visual Languages. 1996. P 191-214.

79. Wittenburg K., Weitzmann L. Visual grammars and incremental parsing for interface languages // In IEEE Symposium on Visual Languages. 1990. P. 111—118

80. Zhang D.-Q., Zhang K., Cao J. A Context-sensitive Graph Grammar Formalism for the Specification of Visual Languages // The Computer Journal. Vol. 44. 2001. No. 3. P. 186—200