Главная » Просмотр файлов » Диссертация

Диссертация (1148272), страница 34

Файл №1148272 Диссертация (Методы и средства разработки графических предметно-ориентированных языков) 34 страницаДиссертация (1148272) страница 342019-06-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 34)

Должен быть провязан с диаграммой активностей,реализующей этот метод.1792. Диаграмма структур данных (Ubiq Data Structures), на ней описываетсякласс Message, предназначенный для обмена сообщениями между клиентоми сервером или сервером и другими процессами, а также другие классы,служащие данными.

Такая диаграмма должна быть одна в проекте. Узлы наэтой диаграмме таковы.(a) Comment — комментарий.(b) Custom Class — произвольный класс, содержащий данные. Имеетсвойство «имя» (которое генерируется в имя класса), содержит в себеполя (элементы типа Field).(c) Data Structures Diagram — сама диаграмма, корневой элемент.(d) Enum Element — элемент перечисления. Имеет имя и значение. Можетнаходиться в узлах Message Codes и Error Codes, будет сгенерированакак константа внутри класса Message.(e) Error Codes — описание кодов ошибок, используемых в классеMessage.

Должен быть один на диаграмме. Содержит в себе элементыEnum Element.(f) Field — произвольное поле класса Message или произвольного класса(может лежать в Message Class или Custom Class), генерируется в свойство соответствующего класса. Имеет имя (имя свойства), значение поумолчанию, тип, может быть сериализуемым или несериализуемым.(g) Message Class — описание класса Message, должен быть один надиаграмме. Содержит в себе только поля (элементы Field).(h) Message Codes — описание кодов сообщения, используемых в классеMessage.

Должен быть один на диаграмме. Содержит в себе элементыEnum Element.3. Диаграмма активностей (Ubiq Activity Diagram). На таких диаграммахзадаётся поведение обработчика сообщений, метода, препроцессора и т.д.В модели их может быть несколько (по числу обработчиков). Содержание несколько разнится в зависимости от вида диаграммы — диаграммаактивностей для обработчика, диаграмма активностей для препроцессора,180вспомогательной функции. Диаграмма для обработчика обычно состоитиз нескольких цепочек операторов, начинающихся с узла HandlerStart,препроцессор начинается с Initial Node, функция — с Function Signature.Узлы, используемые на всех видах диаграммы активностей, таковы.(a) Action — действие, имеет свойство «имя», которое должно содержатькод на C#. Он будет без изменений скопирован в результат генерации.(b) Activity Diagram — сама диаграмма.(c) Activity Final Node — завершающий узел, означает конец цепочкиоператоров.

Полезен, например, для рисования пустой ветки else, востальных случаях необязателен.(d) Actual Parameter — фактический параметр, передаваемый в функциюпри вызове. Имеет имя, которое должно быть C#-кодом, подставляемым вместо параметра при вызове функции, может содержаться тольков узле Function Call.(e) Comment — комментарий.(f) Control Flow — направленная связь, означающая передачу управленияот оператора к оператору. Имеет свойство guard, используемое пригенерации узлов Decision Node.(g) Decision Node — оператор ”if”. Должен иметь ровно две исходящиесвязи, ровно у одной из которых свойство guard не пусто. Обе веткидолжны сходиться либо на одном Merge Node, либо на одном ActivityFinal Node.

Свойство guard становится условием оператора if в сгенерированном коде.(h) Formal Parameter — формальный параметр, описываемый в заголовкевспомогательной функции. Может содержаться только в узле FunctionSignature. Имеет имя и тип.(i) Function Call — вызов функции. Имеет имя, которое должно совпадать с именем диаграммы активностей, реализующей вызываемуюфункцию. Содержит набор параметров (узлов Actual Parameter), имаксимум один узел Return Value, показывающий, куда положитьрезультат вызова функции.181(j) Function Signature — описание вспомогательной функции, с негоначинается цепочка операторов диаграммы активностей для вспомогательной функции.

Имеет имя (должно совпадать с именем диаграммы)и тип возвращаемого значения. Может содержать в себе формальныепараметры (типа Formal Parameter).(k) Handler Start — начало обработчика сообщения. С него начинается цепочка операторов на диаграмме активностей обработчика. Имеет имя,которое должно совпадать с именем константы — типа сообщения,описанного на диаграмме структур данных.(l) Initial Node — начальный узел, с него начинается цепочка операторовдиаграммы активностей препроцессора.(m) Merge Node — точка слияния двух веток выполнения оператора if.(n) Package — вспомогательный узел, предназначенный для организациидиаграмм активностей в связанные блоки в логической модели. Семантической нагрузки не несёт.(o) Return — возврат значения из вспомогательной функции, генерируетсяв оператор return C#. Равносилен узлу Action с оператором return<возвращаемое значение>;(p) Return Value — указывает, куда положить возвращаемое функциейзначение.

Может содержаться только в узле Function Call. Имеетимя (код на C#, обычно имя переменной) и тип. Если тип не пуст,генерируется объявление переменной для хранения результата, еслипуст, считается, что переменная уже объявлена.Как видно из описания, язык имеет гибридную структуру, то есть для заданияпрограммы активно используются и визуальные, и текстовые символы.

Приэтом визуальная и текстовая части языка частично взаимозаменяемы — языкпозволяет не рисовать диаграмму обработчика сообщения, а написать весь кодвручную в единственном блоке. В качестве текстовой части используется языкC#, код на котором непосредственно генерируется в выходные файлы. Технологияне имеет синтаксического анализатора языка C#, поэтому не может выполнятьникаких действий над содержимым блоков, даже синтаксические ошибки в коде182будут обнаружены только после генерации. Язык задания логики обработчиков(диаграмма активностей) по сути представляет собой диаграмму активностейUML, модифицированную для того, чтобы отразить особенности Ubiq Mobile.A.2.4.

ОбсуждениеГлавный недостаток получившегося набора языков вытекает из выбранногоспособа анализа предметной области: визуальный язык слишком привязан к целевому коду, так что без достаточно хорошего владения технологией Ubiq Mobileили специальной подготовки создавать программы оказывается довольно сложно.Фактически, надо представлять, в какую часть программы будет сгенерирован тотили иной код, который пишется в узлах Action и различных других узлах, гдедопускается ввод кода на C# вручную. Смысл некоторых свойств практическиневозможно объяснить человеку, не знакомому детально с Ubiq Mobile (поэтомутакие свойства опускались при описании языка). Кроме того, наличие в C#переменных и полей классов делает возможным модификацию локального илидаже глобального состояния из кода в узле Action обработчика, что приводит кнеявным и никак не визуализируемым зависимостям по данным, на диаграммахвизуализируется только поток исполнения.

Фактически оказалось, что оченьсложно писать код на C# в элементах визуального языка, не смотря при этом всгенерированный код. Кроме того, диаграммы активностей более громоздкие, чемкод, который они призваны визуализировать, поэтому в них оказывается сложнееразобраться. Субъективный вывод, сделанный автором данной работы в ходеразработки модельного примера — диаграммы активностей не оправдывают себя,проще и продуктивнее писать код обработчиков вручную.Перечисленные недостатки являются проблемой для всех гибридных (текстографических) языков, в которых текстовая часть является кодом на целевом языкеи не анализируется синтаксически самим DSM-решением. В любом случае, пользователи DSM-решения могут эксплуатировать знания о результатах генерациидля создания эффективных по их мнению, но сложных в сопровождении программ, пример такого: объявление переменной в одном блоке и использование еёв другом.

При изменении потока управления результат генерации может оказатьсянекорректным. Эти проблемы частично можно решить синтаксическим анализомкода внутри элементов, но это может быть технически сложно в реализации.183Кроме того, подобный подход требует наличия качественного интегрированноготекстового редактора внутри DSM-решения, с подсветкой синтаксиса, автодополнением и прочей функциональностью, свойственной современным средамразработки.Основное достоинство получившегося решения состоит в том, что от пользователя скрыта вся объектно-ориентированная составляющая программированияпод Ubiq Mobile, все объявления классов генерируются автоматически, генерируются необходимые отношения наследования, поля и заголовки методов. Фактически всё, что пользователь рисует на диаграммах, укладывается в парадигмуструктурного программирования и в знания, входящие в программу среднейшколы. Как кажется, это весьма важный результат, потому как технология ужесущественно снизила порог вхождения, и дальнейшее развитие в этом направлении могло бы путём последовательного исключения необходимых знаний сделатьпрограммирование под Ubiq Mobile доступным существенно более широкомукругу людей, чем ранее.

А именно это и является одной из основных целейсоздания предметно-ориентированного решения в DSM-подходе.A.2.5. Дальнейшее развитие QReal:UbiqРаботы по второму этапу создания технологии программирования под платформу Ubiq Mobile велись в направлении создания полноценной самодостаточной технологии, включающей в себя в том числе возможность задания пользовательского интерфейса мобильного приложения, и исправления недостатковпервой версии языка, описанных выше.Большинство существующих решений для создания мобильных приложенийлибо не позволяет задавать сложную логику вообще, ограничиваясь правиламиперехода между экранами, либо позволяет задавать её в текстовом виде.

Интересной альтернативой является язык Scratch и ряд специализированных технологийна его основе: программа имеет текстовый вид, но собирается из набора визуальных блоков, каждый из которых соответствует текстовому оператору. Структурапрограммы полностью соответствует программе на текстовом языке, поэтомувыразительная сила такого подхода всё же ниже, чем при использовании «настоящих» визуальных языков, зато требуется меньше знаний (мы не вспоминаем184синтаксис языка, а выбираем готовые блоки из палитры) и меньше вероятностьошибиться (блоки неправильных типов невозможно соединить друг с другом).В результате анализа существующих решений и опыта использования прототипа языка было принято решение полностью отказаться от текстового программирования на диаграммах и реализовать две схемы.1.

Язык с настраиваемыми элементами, реализующими крупный блок функциональности, например, расстановка кораблей на поле в игре «Морской бой».Семантика таких элементов реализуется для каждой конкретной задачи наязыке C#.2. Вынести все элементарные конструкции на уровень визуального языка,существенно сузив при этом класс решаемых задач (иначе в таком случаеполучился бы визуальный язык общего назначения, что не соответствовалонашим целям).Первая схема была реализована только в виде прототипа, поскольку, несмотряна то, что она существенно более гибкая, требует возможностей, которыми QRealтот момент не обладал — чтобы описывать семантику настраиваемого элемента,надо уметь изменять генератор кода прямо во время создания модели, иначеобеспечить интеграцию сгенерированного и рукописного кода очень сложно.Полноценно была реализована вторая схема, в качестве предметной областибыли выбраны игры с доской, такие как «Крестики-нолики», «Морской бой»,«Шашки» и т.д.

Характеристики

Список файлов диссертации

Методы и средства разработки графических предметно-ориентированных языков
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее