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

Диссертация (1145120), страница 27

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

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

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

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

Необходимо проанализировать ситуацию, поскольку, несмотря наналичие больших моделей, такой потребности может не быть. Во-первых,существует много КИТ-проектов, в которых все ограничивается созданиемстатических описаний архитектуры бизнеса, и потока интенсивных изменений модели не предвидится. Во-вторых, в генерационных решениях соглашения о корректности, сформулированные к модели дополнительно, могутбыть незначительными, а сам генерируемый код — не очень объёмным.Кроме того, большинство ошибок по нарушению этих соглашений можетвыявляться при компиляции кода. В этих и других подобных случаях даннаяметодика не требуется, поскольку разработка валидатора потребует расходов,а потребность в результатах отсутствует (уже указывалось выше, что бюдже153ты DSM-проектов, как правило, невелики. Если же имеется реальная потребность в средствах контроля корректности, то делается следующий шаг — выполняется спецификация ограничений корректности.

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

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

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

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

Схема методики валидации больших моделейПерейдём теперь к описанию второй части метода — автоматическому генератору валидаторов по OCL-ограничениям к расширенной метамоделипредметно-ориентированного языка. Принципиальными здесь являются двамомента — метамодель и ограничения.Начнём с метамодели. Обычно средства моделирования имеют собственную модель — тот язык моделирования, который они реализуют.

Эта метамодель отражена, в частности, в структуре программного интерфейса, с помощью которого сторонние приложения (например, проверочные скрипты)имеют доступ к данным из репозитория. Если, например, в метамодели естькласс «Requirement», отвечающий за хранение экземпляров требований, то винтерфейсе также может присутствовать соответствующий класс, имеющийсоответствующие функции и события для доступа к объектам этого класса(это не единственный способ отображения, тем более, что такой интерфейсможет не быть объектно-ориентированным — например, реализованным наJavaScript). Однако в нашем случае, когда мы используем стандартные инструменты моделирования такие как DSM-платформы, текущая метамодельинструмента не подходит, так как на её основе реализован новый (предметно-ориентированный) язык моделирования. В связи с этим, во-первых, разработчики валидатора, планирующие использовать OCL, должны такую метамодель создать, во-вторых, им следует специфицировать отображение этой155метамодели в программный интерфейс используемого инструмента моделирования.

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

Пример расширенной метамодели требованийКласс «RequirementModel» являетя корневым в данной метамодели ивключает в себя требования (класс «Requirement»), представления (класс«View») и папки (класс «Folder»). Класс «Requirement» задает всетребования, присутствующие в модели требований. Класс включает в себяимя требования (атрибут «nameR») и его тип (атрибут «typeR»). Требованиябывают трех видов: бизнес-требования, функциональные требования инефункциональныетребования.СоответственноклассRequirementнаследуется тремя классами:«BusinessRequirement», «FunctionalRequirement»,«Non-functionalRequirement».

Элемент требования может включать вложенные элементы (агрегирование с пометками «Parent» и «Child»): диаграмма156получаетсяпутемдобавлениялистьевкродительскомуэлементу.Составленная таким образом диаграмма может включать в себя вложенныедиаграммы (класс «Diagram»). Представления задаются классом «View».

Онвключает в себя требования (класс «Requirement»). Элементы представленийбывают двух видов — диаграммы и матрицы, то есть класс «View»наследуется двумя классами — «Diagram» и «Matrix». Класс «Diagram»описывает диаграммы, содержащиеся в модели требований. Он включает всебя название диаграмм (атрибут «nameD»). Также класс включает в себятребования (агрегирование с пометкой «parentD»). Связь между диаграммойи требованием имеет множественность «0..1», а со стороны требований —«*». То есть или диаграмма состоит из требований, или она ещё не создана.Класс «Matrix» описывает матрицы, содержащиеся в модели требований. Онвключает в себя название матриц (атрибут «nameM»).

Матрица состоит изтребований (строки и столбцы матрицы задаются агрегированиями спометками «typeM1» и «typeM2»). Матрицы бывают двух видов — матрицасоответствия требований и матрица окружения требования. Поэтому класс«Matrix» наследуется двумя классами — «ConformityOfRequirements» и«EncirclementOfRequirment». Класс «Folder» задает папки, в которыхнаходятся все элементы модели требований.

Папка имеет название (атрибут«nameF») и может включать в себя вложенные папки (агрегирование спометками «Parent» и «Child»). Она также включает в себя представления(класс «View») и требования (класс «Requirement»).После того как метамодель создана, создаются необходимые OCLограничения, реализующие ограничения корректности, которые были сформулированы в данном DSM-проекте. Приведём ряд примеров из DSMрешения Real-IT [33], [321], предназначенного для модельно-ориентированной разработки приложений баз данных, интенсивно работающих с данными,и в разработке которого автор принимал участие.157Пример 1.

Данное ограничение формулирует запрет использованиянаследования для создания потомков неабстрактных классов, что может бытьсвязано с особенностью генерации схемы базы данных по диаграмме классов.На рис. 3.15 представлен фрагмент UML-метамодели, на которыйраспространяется это ограничение.+generalizationGeneralization**+specialization1+parentGeneralizableElement1+isAbstract : Boolean+childРис. 3.15. Фрагмент метамодели для примера OCL-ограничения (пример 1)Ограничение на языке OCL задаётся следующим образом:context Generalizationinv: parent.isAbstractПример 2.

Данное ограничение запрещает использование связей вида«многие ко многим» для классов, представляющих таблицы базы данных, чтосущественно при генерации кода. На рис. 3.16 представлен соответствующийфрагмент метамодели UML.Multiplicity+range11..*+connectionAssociationMultiplicityRange+lower : Integer+upper : UnsignedIntegerAssociationEnd+multiplicity : Multiplicity12..*Рис.

3.16. Фрагмент метамодели для примера OCL-ограничения (пример 2)158Спецификация соответствующего ограничения на языке OCL приведенаниже:context Associationinv: self.allConnections -> select(multiplicityRange->select( upper > 1 ) -> notEmpty).size < 2Следующие примеры приводятся для метамодели, представленной на рис.3.14.Пример3.Данноеограничениеутверждает,чтотребования,присутствующие в модели, должны обязательно содержаться на некоторойдиаграмме. На языке OCL данное ограничение задаётся следующим образом:context RequirementModel inv:self.Requirement -> for All(r: Requirement | r.parentD ->notEmpty())Пример 4.

Данное ограничение утверждает, что имя каждой диаграммыдолжно составляться по следующему принципу: название бизнес-решения,знак « – », строка «Тип требования». На языке OCL данное ограничение задаётся следующим образом:context Diagram inv:Diagram.allInstances() ->forAll(d: Diagram |d.nameD = «Бизнес-решение» +« - » + typeD(d))Пример 5. Данное ограничение утверждает, что диаграммы, матрицы итребования должны располагаться в одной из следующих папок репозитория: «Проекты и изменения\Бизнес-решения\«Бизнес-решение»\ Завершённые проекты и ЗИ\Требования»; «Проекты и изменения\Бизнес-решения\«Бизнес-решение»\Проекты\Требования».Соответствующее ограничение на OCL выглядит следующим образом:159context View--Записываем в строку папки диаграмм и матрицdef: n: String = View.allInstances() -> collect(self.Folder.nameF)--Все диаграммы, матрицы и требования должны находитьсятолько в одной папкеinv: n -> asSet -> size() = 1 and(n = “Проекты\Бизнес-решения\«Бизнес-решение»\ Завершённые проекты и ЗИ\ Требования»or n = “Проекты\Бизнес-решения\БР\Проекты\Требования»)Все ограничения к метамодели с рис.

3.14 сформулированы в табл. 3.3.Рассмотрим теперь генератор валидаторов. В представленной разработкебыл использован Dresden OCL Toolkit [231] для синтаксического разбораOCL-спецификаций. В качестве целевой среды реализации был выбран JavaScript, поскольку он является одним из самых распространённых средствдля разработки скриптов в средствах моделирования. Кроме того, код наэтом языке сравнительно просто интегрируется с программными интерфейсами на COM, .Net и Java (варианты таких программных интерфейсов такжераспространены). Так ведущие UML-средства — Enterprise Architect,MagicDraw, UModel — явно поддерживают JavaScript, ведущие EAMинструменты ARIS и Mega также явно поддерживают JavaScript, IBMRational System Architect поддерживает COM (следовательно, Visual Basic, C#и VBScript).

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

Тип файла
PDF-файл
Размер
5,8 Mb
Высшее учебное заведение

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

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