Автор: Пользователь скрыл имя, 08 Мая 2012 в 16:13, дипломная работа
В настоящее время активное развитие программной инженерии усиливает интерес к средствам, позволяющим сделать процесс разработки более простым и комфортным. Широкое распространение получили CASE-средства. Современные CASE-средства охватывают обширную область поддержки многочисленных технологий проектирования информационных систем: от простых средств анализа и документирования до полномасштабных средств, покрывающих весь жизненный цикл ПО. Одними из наиболее трудоемких этапов разработки ИС являются анализ и проектирование.
Введение
Постановка задачи
Обзор подходов и существующих реализаций
Концепция предметно-ориентированного моделирования
Обзор существующих решений
Предлагаемое решение
Создание интерпретируемых метамоделей
Динамическая смена типа элемента.
Апробация подхода
Описание реальной задачи
Решение задачи с помощью метамоделирования «на лету»
Заключение
Список литературы
Так как жест руки, активизирующий работу системы, выглядит как приближение руки к камере на определенное расстояние, элемент «Начальное состояние» должен иметь свойство «Расстояние срабатывания». Это свойство будет обозначать то минимальное расстояние, на которое нужно вынести руку вперед, чтобы система активизировалась. Добавим свойство для элемента. Для этого в контекстном меню палитры элементов выберем пункт «Change property list». Пользователю будет предложено диалоговое окно, в котором отображается текущий список свойств данного элемента (рис. 4). Нажмем кнопку «Add», чтобы добавить новое свойство. Выберем имя «Расстояние срабатывания» и значение по умолчанию «20» для нового свойства. В данном случае значение «20» будет означать, что жест активизации работы системы будет зафиксирован, если от туловища до руки больше 20 сантиметров.
Создадим следующий новый элемент «Состояние ожидания движения». По внешнему виду он будет похож на элемент «Начальное состояние», поэтому воспользуемся возможностью копирования элементов. В контекстном меню в палитре элементов выберем пункт «Create element copy» и внешним видом, аналогичным внешнему виду элемента «Начальное состояние». Список свойств нового элемента также копируется. Изменим внешний вид нового элемента.
Для элемента «Состояние ожидания движения» нет свойства «Расстояние срабатывания», однако должно быть свойство «Допустимая помеха». Эта свойство характеризует максимальное допустимое отклонение от центральной позиции, которое не будет рассматриваться, как переход в другое состояние. Необходимость введения допустимой помехи связана с тем, что система не должна реагировать на непроизвольные дрожания руки.
Добавим новую связь. Для этого в контекстном меню панели элементов выберем пункт «Add new connection». Для связей вместо пункта контекстного меню «Change shape» есть пункт «Change line style», с помощью которого можно выбрать стиль линии будущей связи.
Таким образом, мы получили первый вариант нашего визуального языка. Нарисуем диаграмму state-машины с помощью новых элементов и связей.
На диаграмме присутствует элемент «начальное состояние» и пять элементов «ожидание состояния». Переход между состояниями обозначается с помощью направленной связи.
В процессе решения задачи разработчики поняли, что состояние ожидания движения и состояние ожидания обратного движения – это две разные сущности. Это связано с тем, что команда сменить канал или увеличить/уменьшить громкость передается на пульт дистанционного управления в момент выхода из состояния ожидания обратного движения. То есть, по сути, для завершения команды пользователю необходимо вернуть руку в центральное положение.
Скопируем уже добавленный в палитру элемент «Ожидание действия» и получим новый элемент «Ожидание обратного действия». Изменим его внешний вид. Список свойств нового элемента копируется. Как и в случае с ожиданием действия, для ожидания обратного действия можно задать свойство «Допустимая помеха». Также для нового элемента характерно свойство «Сигнал». Оно задает сигнал, который будет отправлен системе в момент перехода из данного состояния. Впоследствии этот сигнал будет передан пульту дистанционного управления телевизором, который совершит необходимое действие (сменить канал или увеличить/уменьшить громкость). Вызовем диалоговое окно для изменения списка свойств элемента. С помощью кнопки «Delete» удалим свойство «Расстояние срабатывания». Добавим новое свойство «Сигнал», поставив ему значение по умолчанию «do nothing».
Для того, чтобы заменить уже добавленные на диаграмму элементы «ожидание действия» на элемент «ожидание обратного действия» достаточно вызвать контекстное меню, кликнув по элементу, и выбрать пункт «Change element type». Подпунктами данного пункта являются все доступные в текущий момент типы элементов. Сменим тип всех состояний, кроме центрального, на «ожидание обратного действия». В редакторе свойств можно задать значение сигнала.
Еще одно дополнение было связано со следующим соображением: если пользователь продолжает держать руку в состоянии «ожидание обратного движения» дольше определенного времени, должен происходить сброс по таймауту в положение «ожидание движения». Также по определенному таймауту система должна переходить из положения «ожидание движения» в начальное положение. В связи с этим потребовалось создать дополнительный элемент «таймер».
Добавим на палитру инструментов элемент «Таймер» и зададим ему два свойства: «таймаут перехода в ожидание» и «таймаут деактивации». Установим значения по умолчанию 5 и 10 секунд соответственно. Также потребуется добавить тип связи «переход по условию» вместо существующей связи «переход по состоянию». В результате всех изменений наша диаграмма будет выглядеть следующим образом:
Далее по данной модели может быть написан генератор, и, соответственно, сгенерирован код. К сожалению, на данный момент QReal не позволяет задавать правила генерация непосредственно в редакторе, поэтому необходимо описать их с использованием специального текстового языка.
Процесс создания визуального языка для описания машины состояний занял пятнадцать минут. Это время определяется без учета его трат на размышления и поиск решения. То есть можно говорить о том, что затраченное конкретно на создание языка время незначительно по сравнению с общим временем, потраченным на решение задачи. Использование нового подхода в данном случае не создает помех размышлению и делает процесс создания редактора максимально быстрым и легким.
В процессе работы над дипломной работой было реализовано метамоделирование «на лету». Это позволило пользователю добавлять на диаграмму новые элементы, удалять и изменять существующие элементы, изменять список заданных свойств, а также редактировать графическое представление элемента. Для этих целей был создан интуитивно понятный пользовательский интерфейс.
Также пользователю была предоставлена возможность динамически изменять тип добавленного на диаграмму элемента на любой доступный в рамках данного редактора тип. За сохранение целостности и корректности диаграммы отвечает система сообщений пользователю. В случае если изменение не приводит к конфликтам, никаких действий от пользователя не требуется. Если же операция смены типа небезопасна с точки зрения существующих ограничений, пользователю предоставляется информация о конфликте для последующего его разрешения вручную.
Пользователь был избавлен от необходимости мыслить в терминах двух абстракций: модели и метамодели. Теперь уровень метамодели скрыт от пользователя, что позволяет ему полностью сконцентрироваться на задаче, а не на создании инструментария.
Была проведена апробация на реальной задаче, которая показала, что использование нового подхода эффективно в случае, если требования к задаче не сформулированы на момент начала ее решения и постоянно меняются в процессе. В таком случае время, затраченное на создание редактора, было мало по сравнению с общим временем, затраченным на решение задачи.
Дальнейшее направление исследования будет в первую очередь связано с продолжением интеграции редактора модели и метамодели. В первую очередь предполагается облегчить для пользователя процесс задания правил генерации моделей. Также интерес вызывает одна из курсовых работ, выполненная на базе системы QReal. Темой курсовой работы является использование жестов мыши для распознавания элементов. С использованием результатов курсовой работы и данного диплома можно добиться интересных для пользователя результатов, по сути, максимально приблизив принцип работы с системой QReal к принципу использования бумаги и ручки. К примеру, если система не распознала жест мыши, можно объявлять элемент временным новым. При детализации диаграммы временные абстрактные элементы могут быть заменены.
[1]Д. Кознов, Основы визуального моделирования, Бином. Лаборатория Знаний, Интернет-Университет Информационных Технологий, 2008
[2]Д.В. Кознов, Визуальное моделирование: теория и практика, Лекция: Знакомство с DSM-платформой Microsoft DSL TOOLS, [электронный документ] (http://www.intuit.ru/
[3]Д.В. Кознов, Визуальное моделирование: теория и практика, Лекция: Cемейства программных продуктов. DSM-подход, [электронный документ] (http://www.intuit.ru/
[4]Л.Н. Лядова, А.О. Сухов, Языковой инструментарий системы MetaLanguage, Математика программных систем: межвуз. сб. науч. ст. / М34 Перм. гос. ун-т. – Пермь, 2008. С. 40-51
[5]Лядова Л.Н. Многоуровневые модели и языки DSL как основа создания интеллектуальных CASE-систем // Труды международных научно-технических конференций «Интеллектуальные системы» (AIS’08) и «Интеллектуальные САПР» (CAD-2008). Научное издание в 4-х томах. Т. 2. – М.: Физматлит, 2008. С. 37-4
[6]Лядова Л.Н. Применение технологии DSM для создания динамически настраиваемых систем , Труды международных научнотехнических конференций «Интеллектуальные системы» (AIS’08) и «Интеллектуальные САПР» (CAD-2008). Научное издание в 4-х томах. Т. 2. – М.: Физматлит, 2008. С. 215-222.
[7]Лядова Л.Н., Сухов А.О., Визуальные языки и языковые инструментарии: методы и средства реализации, Труды Конгресса по интеллектуальным системам и информационным технологиям «AIS-IT'10». Научное издание в 4-х томах. Т. 1. , Москва: Физматлит, 2010.
[8]А. Павлинов, Д. Кознов, А. Перегудов, Д. Бугайченко, А. Казакова, Р. Чернятчик, Т. Фесенко, А. Иванов. Комплекс средств разработки проблемно-ориентированных визуальных языков. Вестник Санкт-петербургского университета, Серия 10, Информатика, № 2, 2007. C. 86-96.
[9]Alderson A., 1991, Meta-CASE Technology, In: Software Development Environments and CASE Technology, Lecture Notes In Computer Science, 509, Endres A. and Weber H. (Eds.), Springer-Verlag.
[10]Kelly, S., Tolvanen, J.-P. Domain-Specific Modeling: Enabling Full Code Generation // Wiley-IEEE Computer Society Press. 2008. 448 pp.
[11]Mazanek S. Visual Languages. MetaEdit+ : [Электронный документ] (http://visual-languages.
[12]Tolvanen J.-P., Rossi M. MetaEdit+: defining and using domain-specific modeling languages and code generators : [Электронный документ] (http://portal.acm.org/
3
Информация о работе Создание режима быстрого прототипирования в CASE-системе QReal