Диссертация (Платформа для создания специализированных визуальных сред разработки программного обеспечения), страница 10
Описание файла
Файл "Диссертация" внутри архива находится в папке "Платформа для создания специализированных визуальных сред разработки программного обеспечения". PDF-файл из архива "Платформа для создания специализированных визуальных сред разработки программного обеспечения", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве СПбГУ. Не смотря на прямую связь этого архива с СПбГУ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 10 страницы из PDF
При успешном сравнении (один из идеальных жестов “похож” навведенныйсзаданнойточностью)надиаграммесоздаетсяэлемент,ассоциированный с найденным идеальным жестов. Для ассоциаций языкаспециальных жестов не создается, создание ассоциации происходит, еслипользовательосуществитжестпроизвольнойформы,начинающийсяизаканчивающийся на уже существующих на диаграмме элементах. В таком случаеспециальная компонента QReal проверит, какого типа связи возможны между этимидвумя элементами, и предложит выбрать одну из списка (если возможна толькосвязь одного типа, она будет создана автоматически).В настоящее время в QReal реализована поддержка как одноштриховых, так имногоштриховыхжестов.Болеераспознавания см. в [32] и [132].подробноореализованныхалгоритмах553.3. Особенности графических редакторов3.3.1.
Линкеры элементовПомимо распознавания жестов в QReal существует еще одна возможностьбыстрого создания связей между элементами — использование так называемыхлинкеров элементов. Линкеры — небольшие элементы графического интерфейса,отображаемые рядом с элементами на сцене при выделении их мышью (см. рис. 6).Рисунок 6. Элемент «Начало» графического языка QReal:Robots с отображаемымлинкеромПри нажатии на линкер левой кнопкой мыши (и не отпуская ее при движении)из элемента начинает «вытягиваться» связь, следующая за курсором мыши.
Приотпускании левой кнопки мыши возможны два варианта. Если курсор находился надуже существующим элементом на диаграмме, будет создана связь между элементом,которому принадлежит линкер, и элементом, на котором остановился курсор мыши.Если же левая кнопка мыши была отпущена при нахождении курсора на пустомпространстве диаграммы, будет показано служебное окно (см. рис. 7), с помощьюкоторого пользователь может либо удалить данную связь, либо убрать данное меню(и оставить связь не присоединенной ни к какому элементу), либо выбрать из спискаэлемент, который может быть соединен с данным текущим видом связи (с учетом еёнаправленности).
В последнем случае элемент выбранного типа будет создан иприсоединен к другому концу новой связи. Подобный список элементов в менюлинкера создается для каждого элемента автоматически во время выполнения кодаDSM-решения на основе возможных связей между элементами, заданных вметамодели языка.56Рисунок 7. Меню линкера элемента «Начало» языка QReal:RobotsВ случае, когда из одного элемента может исходить несколько типов связей,рядом с элементом будет находиться несколько линкеров, представляемыхкружками разных цветов.
Возможен также режим редактора, когда рядом с каждымлинкером отображается также и имя связи, этому линкеру соответствующее (поумолчанию данные режим в QReal выключен во избежание загромождениядиаграмм большим количеством служебной информации).3.3.2. Элементы управления, встроенные в объекты на сценеЛюбые нетривиальные элементы языка имеют набор атрибутов (свойств)определённых типов. Значения этих атрибутов в средствах моделирования обычноизменяются либо в специальном окне, появляющемся при нажатии на элемент, либов традиционном для сред разработки редакторе свойств. Однако, частое обращение к57редактору свойств или использование дополнительных окон вносит в работупроектировщика много дополнительных действий, которые, на наш взгляд, такжеимеет смысл сокращать.
Другая проблема состоит в том, что часто единственнымспособом увидеть значение того или иного свойства элемента является выделение (вслучае редактора свойств) или двойное нажатие на этот элемент на диаграмме (вслучае специального окна свойств). Обе этих проблемы, на наш взгляд, решила бывозможность отображения ряда свойств прямо на диаграмме рядом с элементом (поаналогии с тем, как многие среды моделирования включают имя элемента в егографическое представление на диаграмме), а также изменения их значений спомощью этих же средств.С помощью редактора конкретного синтаксиса QReal возможно включать вграфические представления элементов на диаграммах стандартные элементыуправления — выпадающие списки, поля для ввода текста, флажки и ряд других.Автор языка решает сам, какие свойства будут отображаться на диаграмме всегда,отображение каких может отключаться в настройках QReal, а какие не будутпоказаны.
Это позволяет добиться наибольшей наглядности и удобства работы сосвойствами элементов.На рис. 8 представлен внешний вид элемента “Ждать сонар” языка,используемого в DSM-решении QReal:Robots. Как видно из рисунка, три свойства(порт, к которому присоединен датчик сонар, расстояние, на котором датчик будетотслеживать предметы, и факт наличия или отсутствия предметов в заданнойобласти) отображены на диаграмме вместе с пиктограммой элемента, причём пряможе на диаграмме можно изменить значение свойства перечислимого типа с помощьювыпадающего списка.58Рисунок 8. Элемент языка QReal:Robots со встроенными элементами работы сосвойствами3.3.3. Эвристики языка ДРАКОНВопросы эргономики визуальных языков были исследованы авторами языкаДРАКОН [34-36], который основывается на языке блок-схем, дополняя его наборомэвристик, по мнению автора языка, способствующих повышению читаемости ипонимаемости создаваемых с помощью данного языка диаграмм.
К сожалению,автор не проводил количественных замеров на тему того, насколько прощеописывать алгоритмы на языке ДРАКОН по сравнению с традиционными блоксхемами, и ограничивается лишь общими рассуждениями о базовых особенностяхвосприятия информации человеком (например, восприятие информации справаналево и сверху-вниз представителями европейской культуры).Несмотря на то, что понятие удобства использования является крайнесубъективным и, вследствие этого, слабо формализованным, можно выделитьопределенныеобъективныеметрики,которыебудутописыватьданнуюхарактеристику языка и процесса его использования. Как было описано выше, врамках данной работы ставилась цель минимизировать число механическихдействий, производимых пользователем для выполнения определенных операций.На наш взгляд, например, сокращение числа нажатий кнопок мыши в процессемоделированиявнесколькоразможетпозволитьулучшитьотношениепользователей к среде моделирования и снизить дискомфорт от ее использования.Язык ДРАКОН был проанализирован на предмет того, насколько его эвристики59могли бы быть применимы в других визуальных языках, в основе которых лежитпоток управления.
В результате ряд таких эвристик был обобщён и реализован науровне инструментов платформы QReal, что позволило потенциально использоватьих в редакторах всех поведенческих языков, создаваемых на базе платформы.Вкратце рассмотрим некоторые из них и то, как они сокращают число совершаемыхпроектировщиком операций.3.3.3.1. Возможность создания разделяемых ассоциацийПри расширении существующего алгоритма часто бывает необходимо вставитьопределенный элемент между уже существующими элементами, соединеннымиопределенным видом связи (рис.
9, а). Традиционно для этого нужно совершитьследующую последовательность действий:●создать требуемый элемент рядом с тем местом, куда необходимо его вставить(рис. 9, б);●отсоединить связь, которую расширяет данный элемент и присоединить ее кновому элементу (рис. 9, в);●создать новую связь, соединяющую новый элемент с уже существующим(рис. 9, г);●расположить элементы на диаграмме необходимым образом (рис. 9, д);Рисунок 9.
Шаги процесса вставки элемента «внутрь» существующего алгоритма60Для упрощения этого процесса был реализован механизм разделяемыхассоциаций: при перетаскивании элемента из палитры на уже существующую связь,соединяющую два других элемента, все перечисленные выше действия выполняютсяавтоматически, визуально разделяя ассоциацию на две и вставляя новый элементмежду ними (см. рис. 10).
Стоит отметить, что при выполнении подобного действияво избежание наложения элементов друг на друга производится сдвиг всехэлементов ниже и правее вставляемого на размер этого элемента.Рисунок 6. Пример вставки элемента “внутрь” разделяемой ассоциацииТакже возможен и обратный процесс — при удалении элемента, имеющеговходящую и исходящую связь, одна из этих связей будет удалена, а оставшаясябудет соединять элементы, к которым был присоединен удаленный (переход от рис.18, в к рис. 18, а).3.3.3.2. Создание групп элементовЗачастую в визуальных языках присутствуют элементы, которые на диаграммахмогутиспользоватьсявместесдругимиэлементами,формируяболеевысокоуровневые элементы-шаблоны с заданной семантикой.
Например, блок“Цикл” может состоять из нескольких блоков: блок начала цикла и блок конца циклас некоторым числом блоков между ними. Или блок распараллеливания диаграмм61активностей UML 2.x должен начинаться и заканчиваться определенным элементомраспараллеливания и синхронизации потоков выполнения алгоритма. Создание этихэлементов перетаскиванием из палитры по отдельности видится чрезмерноизбыточным, при этом проектировщик вполне может ошибиться при организацииэтих элементов в шаблон, создав семантически некорректную диаграмму.Для решения этой проблемы в метаязык была добавлена возможность описаниягрупп элементов как отдельных блоков в палитре элементов, а также ядроплатформы QReal было соответствующим образом расширено для того, чтобыдавать возможность перетаскивать эти новые блоки на диаграмму и создавать приэтом сразу все элементы, входящие в группу.