Диссертация (1145120), страница 21
Текст из файла (страница 21)
Предложенная методология снимаетэто ограничение, предлагая обобщённую формальную обработку визуальных спецификаций, а также рассматривая варианты более простыхрешений.3. Предложенная методология ориентирована на задачу переноса предметно-ориентированных концепций на другие предметные области, чтоотсутствует в других методах, хотя отдельные работы о фактическомиспользовании DSM-подхода в других областях имеются (например, вобласти бизнес-инжиниринга наблюдается рост таких исследований запоследние два-три года — см.
работы [152], [155], [156], [158], [247],[312]). Предложенная методология решает эту задачу, предлагая еди115ную концептуальную основу предметно-ориентированного моделирования (DSM-платформы, DSM-решения, модель разработки DSMрешения, модель рисков, определение «горячих» компонент DSMрешения) для решения этой задачи.4. Несмотря на то, что задачи обеспечения качества [356], синхронизации[323], версионного контроля визуальных спецификаций [242], [335],[336], [368], [387], а также проблемы работы с большими моделями[175], [176] активно исследуются, но это происходит вне контекста создания предметно-ориентированных решений.
Предложенная методология рассматривает эти вопросы в прагматичном ключе, обсуждаяособенности создания готовых целевых решений на основе имеющихсяметодов.116Глава 3. Модели, методы и алгоритмыВ данной главе будет изложен ряд созданных автором моделей, методов иалгоритмов для разработки предметно-ориентированных решений, посвящённых «горячим» функциональных компонентам визуального моделирования: работе с большими моделями, версионному контролю, поддержке качества визуальных спецификаций. При этом каждая из этих областей не решенаисчерпывающим образом, но представлены результаты, облегчающие практическое решение данных задач и обозначающие направление дальнейшихисследований.
Итак, получены следующие результаты. Модель v2v-трансформаций, предназначенная для разработки навигационных сервисов. В работе [56], написанной автором, им была предложена идея модели и выполнена её первичная формализация. В работе[62] автору принадлежит формализация подхода, архитектура программной реализации в рамках технологий GMF/ATL/KIELLER, а также разработка примеров v2v-трансформаций для диаграмм классовUML и создание метрик для измерения эффективности подхода. Соавторы выполнили реализацию предложенной архитектуры, создали спомощью получившегося инструмента пилотный редактор классов снеобходимыми трансформациями, провели необходимые эксперименты, предложили и сформулировали варианты практического примененияпредложенныхрезультатов.Изложениемоделиv2v-трансформаций в диссертационной работе, в основном, следует [56],[62], однако расширено дополнительными материалами и примерами. Алгоритм слияния двух версий и-карт при восстановлении сетевого соединения при коллективной работе с помощью Интернет-средств.
Данный результат изложен в работах[69], [84]. Автором была предложенаформализация задачи, выполнена реализация базового 3DM-алгоритмана языке Haxe [274], спроектированы изменения базового 3DMалгоритма, выполнена спецификация обработки и визуализации кон117фликтов. Соавторы выполнили реализацию алгоритма и его тестирование. Изложение данного результата, в основном, следует этим работам. Метод контроля качества визуальных спецификаций.
Представленныев диссертации результаты частично изложены в работах [70], [86]. Вэтих работах автору принадлежит разработка самого метода, включаяприменение его не только к классическим метамоделям визуальныхязыков, но и к расширенным метамоделям (то есть включающим спецификацию представлений моделей), разработка архитектуры генератора валидатора, а также спецификация ограничений для двух проектов, используемых для апробации метода. Соавтор выполнили детальное проектирование генератора валидаторов, разработку генерационных проекций и реализацию генератора. Предложенное здесь изложение метода в общих чертах следует работам [70], [86], однако их описание здесь было расширено апробацией в проекте из области бизнесинжиниринга.
В данной работе также впервые изложена идея создаватьограничения для расширенных метамоделей.1183.1 Модель v2v-трансформаций36Программные средства, предназначенные для работы с визуальными моделями, должны включать в себя удобные навигационные сервисы, позволяющие просматривать (т. е. отображать/скрывать) на диаграммах различныевыборки из модели, созданные с помощью некоторого визуального языка.Задача таких сервисов — предоставить пользователям специальные «окна»,через которые можно взглянуть на модель, причём то, что можно через этиокна увидеть, должно гибко настраиваться. Например, работая с модельюклассов UML, удобно отобразить/скрыть атрибуты и методы выделенногокласса или всех классов данной диаграммы, показать всю иерархию наследования, в которой участвует этот класс, отобразить все классы модели, которые связаны ассоциациями с данным и пр. Подобные средства становятсяособенно актуальными, когда речь идёт о работе с большими моделями —так, например, метамодель языка UML содержит около 250 классов и, будучипредставлена на одной диаграмме, оказывается совершенно неудобочитаемой.
На рис. 3.1 представлена метамодель UML 2.0 (использовался стандартный редактор диаграмм классов Eclipse). При попытке уместить все элементы модели на одном экране отдельные элементы становятся нечитаемыми, асвязи между ними сливаются. При увеличении масштаба диаграммы (см. рис.3.2) становится возможным различить отдельные элементы, но, во-первых, наодной диаграмме их оказывается совсем не много, во-вторых, мы видимбольшое количество связей, которые пересекают диаграмму, начинаясь и заканчиваясь где-то за её пределами. Все это делает такие диаграммы малосодержательными, так как они представляют незаконченные фрагменты модели. На рис. 3.3 представлен фрагмент модели ИТ-архитектуры крупной корпорации — диаграмма взаимодействия одной из информационных системкорпорации с внешним окружением.
Очевидно, что распечатывать такуюдиаграмму бессмысленно, так как получается слишком мелко — её можно36Материал данного раздела следует статье автора [62].119просматривать только в инструменте моделирования, сильно увеличиваямасштаб и получая ситуацию, сходную с той, которая представлена на рис.3.2. Очевидно, что в таких ситуациях было бы удобно иметь возможность автоматически создавать диаграммы по запросу, содержащие требуемое подмножество модели.Рис. 3.1. Метамодель UML 2.0 на одной диаграммеРис. 3.2. Фрагмент метамодели UML 2.0120Рис.
3.3. Фрагмент модели ИТ-архитектурыНа сегодняшний день в области модельно-ориентированной инженерииактивно развивается трансформационный подход. Трансформация — этодействие, которое преобразует одну или несколько исходных моделей внабор целевых, следуя некоторому набору правил [394]. Различают Model-toModel (M2M) и Model-to-Code (M2C) трансформации (см., например, [311]),отдельно исследуются трансформации в области эволюции схем баз данных[271] и т.д. Для задания трансформаций существуют специальные формальные языки, самые известные из которых — QVT [355] и ATL [165]. Использованию трансформаций посвящена обширная литература — см., например,обзоры [178], [203].Однако до сих пор идея трансформаций не использовалась при разработкенавигационных сервисов. В этом случае в качестве области действия трансформации может выступить динамическое представление модели — та вы121борка, которая отображается на диаграмме, и трансформация, таким образом,будет преобразовывать одну выборку в другую.
Если к результату такойтрансформации применить алгоритм автоматической раскладки (LayoutAlgorithm), то мы имеем готовый навигационный сервис. Простейшим примером такой трансформации является загрузка/выгрузка на диаграмму элемента модели в заданную позицию на экране, выбранную пользователем редактора. Для диаграмм классов UML эта пара операций реализована почти вовсех UML-средствах. Рассмотрим примеры более сложных таких трансформации. На рис. 3.4, а приведена диаграмма, на которой присутствует класс«F». В какой-то момент пользователь захотел увидеть на диаграмме все атрибуты и методы этого класса.
На рис. 3.4, б представлен результат выполнения такого запроса. Отметим, что из-за того, что прямоугольник класса «F»стал больше, изменилась отрисовка связей остальной части диаграммы. Пример трансформации, которая отображает иерархию наследования для классаE, показан на рис. 3.5. Отметим, что класс «D» на результирующей диаграмме изменил своё местоположение, так как он также участвует в иерархиинаследования для класса E. На рис. 3.6 показан фрагмент диаграммы, представленной на рис. 3.3, — из последней убраны все детали, кроме элементоввзаимодействия между тремя системами.абРис. 3.4.
Отображение атрибутов класса122абРис. 3.5. Отображение дерева наследования классаРис. 3.6. Отображение деталей взаимодействия трёх систем123Спецификации подобных трансформаций, вместе с другими верхнеуровневыми моделями, могут служить входными данными для генератора графического редактора, реализующего некоторый предметно-ориентированный визуальный язык.Данный результат (модель v2v-трансформаций) имеет следующую структуру.1. Формальное определение динамического представления, трансформации динамического представления (v2v-трансформациям) и навигационного сервиса.2.