Исполняемый UML
Исполняемый UML ( xtUML или xUML ) — это одновременно метод разработки программного обеспечения и весьма абстрактный язык программного обеспечения. Впервые он был описан в 2002 году в книге «Исполняемый UML: основа архитектуры, управляемой моделями». [1] Язык «объединяет подмножество графических обозначений UML ( унифицированного языка моделирования ) с исполняемой семантикой и правилами синхронизации». [2] Метод Executable UML является преемником метода Шлера-Меллора . [3]
Исполняемые модели UML «можно запускать, тестировать , отлаживать и измерять производительность». [4] и может быть скомпилирован в менее абстрактный язык программирования для конкретной реализации . [5] Исполняемый UML поддерживает архитектуру, управляемую моделью (MDA), посредством спецификации платформо-независимых моделей и компиляции платформонезависимых моделей в модели, специфичные для платформы . [6] [7]
Обзор
[ редактировать ]Исполняемый UML — это более высокий уровень абстракции , чем языки программирования третьего поколения . Это позволяет разработчикам вести разработку на уровне абстракции приложения. [8] Исполняемый UML предназначен для разделения задач . Предполагается, что это упростит повторное использование и снизит стоимость разработки программного обеспечения . Это также позволяет исполняемым доменам UML быть кроссплатформенными . Это означает, что он не привязан к какому-либо конкретному языку программирования, платформе или технологии.
Исполняемый UML также позволяет переводить модели, независимые от платформы (PIM), в модели, специфичные для платформы (PSM). Метод Executable UML позволяет оценить модель как интеллектуальную собственность , поскольку модель представляет собой полностью исполняемое решение проблемного пространства.
Действия указаны на языке действий . Это означает, что автоматическая генерация кода реализации из исполняемых моделей UML может быть выведена в оптимизированном виде.
Исполняемый UML предназначен для использования в качестве исполняемого кода, а также документации. Модели представляют собой графическую исполняемую спецификацию проблемного пространства, которая компилируется в целевую реализацию . Они также предназначены для чтения человеком .
Исполняемые стандартные блоки UML
[ редактировать ]Система домены состоит из нескольких объектов, известных как в терминах исполняемого UML. Исполняемый UML используется для моделирования предметной области на уровне абстракции ее предмета независимо от проблем реализации. Полученная модель предметной области представлена следующими элементами:
- Диаграмма доменов обеспечивает представление моделируемого домена и его зависимостей от других доменов.
- Диаграмма классов определяет классы и ассоциации классов для предметной области.
- Диаграмма состояний определяет состояния , события и переходы состояний для класса или экземпляра класса.
- Язык действий определяет действия или операции, которые выполняют обработку элементов модели.
Диаграмма доменов
[ редактировать ]Исполняемый UML требует идентификации доменов (также известных как аспекты). [9] или проблемы ) системы. «Каждый домен представляет собой автономный мир, населенный концептуальными сущностями» [10] Каждый домен можно моделировать независимо от других доменов в системе, что позволяет разделить задачи . Например, домены для банкомата могут включать в себя следующее:
- банкомата Модель предметной области приложения бизнес-логики .
- Модель предметной области безопасности для различных вопросов, касающихся безопасности системы (таких как аутентификация и шифрование ).
- Модель предметной области доступа к данным и методы использования внешних данных .
- Модель домена регистрации различных методов, с помощью которых система может или должна регистрировать информацию.
- Модель предметной области пользовательского интерфейса взаимодействия пользователя с системой.
- Модель архитектуры предметной области , реализуемая платформах системы исполняемой моделью UML на аппаратных и программных .
Разделение задач позволяет разрабатывать и проверять каждый домен независимо от других доменов в системе соответствующими экспертами в предметной области.
Соединения между доменами называются мостами . «Мост — это многоуровневая зависимость между доменами». [11] Это означает, что домены могут предъявлять требования к другим доменам. Рекомендуется, чтобы мосты были согласованы экспертами из разных областей.
Домен можно пометить как реализованный, чтобы указать, что он существует и его не нужно моделировать. Например, домен доступа к данным, использующий базу данных MySQL , будет помечен как реализованный.
Диаграмма классов
[ редактировать ]Концептуальные сущности, такие как материальные объекты, роли, инциденты, взаимодействия и спецификации, специфичные для моделируемой области, абстрагируются в классы . Классы могут иметь атрибуты и операции .
Отношения между этими классами будут обозначаться ассоциациями и обобщениями . Ассоциация может потребовать дальнейшей абстракции в виде класса ассоциации .
Ограничения на диаграмме классов могут быть написаны как на языке действий, так и на языке ограничений объектов (OCL).
Метод Executable UML ограничивает элементы UML, которые можно использовать в диаграмме классов Executable UML.
Диаграмма классов исполняемого UML предназначена для предоставления информации о домене. Слишком большая сложность диаграмм состояний является хорошим показателем того, что диаграмму классов следует переработать.
Диаграмма состояний
[ редактировать ]Жизненные циклы классов моделируются в исполняемом UML с помощью диаграммы состояний . Диаграмма состояний определяет состояния , переходы , события и процедуры , которые определяют поведение класса.
Каждое состояние имеет только одну процедуру, которая выполняется при входе в это состояние . Процедура состоит из действий, которые определены на языке действий.
Язык действий
[ редактировать ]Модели классов и состояний сами по себе могут обеспечить только статическое представление предметной области. Чтобы иметь исполняемую модель, должен быть способ создавать экземпляры классов, устанавливать ассоциации, выполнять операции с атрибутами, вызывать события состояния и т. д. В исполняемом UML это делается с использованием языка действий, соответствующего семантике действий UML. .
Семантика действий была добавлена в спецификацию UML в 2001 году. Запрос на семантику действий был основан на предыдущей работе над языками действий, поддерживающими метод Шлера-Меллора . Существующими языками действий являются язык действий объекта (OAL), язык действий Шлаера-Меллора (SMALL), язык спецификации действий (ASL), язык спецификации действий модели (MASL), [12] Этот язык действий (TALL), краткий реляционный язык действий Старра (SCRALL), независимый от платформы язык действий (PAL) и язык действий PathMATE (PAL). SCRALL — единственный язык графических действий.
Тестирование и выполнение модели
[ редактировать ]После того как домен смоделирован, его можно протестировать независимо от целевой реализации , выполнив модель. Каждый домен может быть проверен и проверен независимо от любого другого домена. Это позволяет ошибки связать обнаруженные с доменом и независимо от других системных проблем.
Проверка человеком будет включать такие вещи, как проверка моделей , выполняемая экспертами в соответствующей области, и автоматическая проверка семантики исполняемого файла UML. т. е. проверка того, что модель исполняемого UML соответствует метамодели исполняемого UML .
Проверка обычно включает использование исполняемого инструмента UML для выполнения модели. Выполнение может происходить как до, так и после компиляции модели.
Компиляция модели
[ редактировать ]Чтобы поддержать выполнение в целевой реализации , модель предметной области должна быть переведена в менее абстрактную форму. Этот процесс перевода называется компиляцией модели . моделей Большинство компиляторов ориентированы на известный язык программирования , поскольку это позволяет повторно использовать существующие технологии компилятора .
Оптимизация моделей предметной области по причинам целевой реализации снизит уровень абстракции , отрицательно повлияет на независимость предметной области и увеличит стоимость повторного использования . В исполняемом UML оптимизация выполняется компилятором модели либо автоматически, либо посредством маркировки . Маркировка позволяет нацелить определенные элементы модели на конкретные реализации более низкого уровня и позволяет принимать более широкие архитектурные решения, например, указывать, что коллекции объектов должны быть реализованы в виде двусвязного списка .
В терминах MDA модели компилятор создает PSM . Разделение PIM и PSM в исполняемом UML отключает возможность комплексного проектирования модели и препятствует модификации PSM . [13]
Ключевые аспекты исполняемого UML
[ редактировать ]Исполняемый UML определяет семантику выполнения для подмножества UML. Ключевые аспекты подмножества исполняемых UML включают следующее:
- Нет поддержки конструкций, специфичных для реализации, таких как агрегация и композиция. [14]
- Обобщения всегда обозначаются как {полные, непересекающиеся}.
- Ассоциации между классами всегда имеют имена, имеют глагольные фразы на обоих концах, определяющие роли, и на обоих концах указывается кратность.
- Кратность на концах ассоциации ограничена значениями 0..1 (ноль к одному), * (ноль ко многим), 1 (ровно один) или 1..* (один ко многим).
- Типы данных ограничены следующими основными типами данных: логический, строковый, целочисленный, действительный, дата, временная метка и произвольный_id или одним из следующих типов данных, специфичных для предметной области: числовой, строковый, перечисляемый и составной. Числовые и строковые типы данных, зависящие от предметной области, могут представлять подмножества основных типов данных. Составной тип данных, специфичный для домена, всегда следует рассматривать как единую единицу внутри домена. например, можно объявить составной тип данных MailingAddress , но нельзя извлечь из него информацию о городе.
- Ограничения исполняемых моделей UML могут быть представлены либо как язык ограничений объектов (OCL), либо как язык действий.
фУМЛ и АЛФ
[ редактировать ]Группа управления объектами стандартизировала Foundational UML (fUML) , на который сильно повлиял исполняемый UML.
Язык действий для базового UML (ALF), [15] — это стандартная спецификация языка действий, разработанная Object Management Group .
См. также
[ редактировать ]- Аспект (компьютерное программирование)
- Автоматическое программирование
- Генерация кода (компилятор)
- Модельно-ориентированная архитектура (MDA)
- Модельно-ориентированное проектирование (MDE)
- Метод Шлера – Меллора
- Унифицированный язык моделирования (UML)
Публикации
[ редактировать ]- Джерри Бойд (2003) «Исполняемый UML: диаграммы будущего». опубликовано на devx.com , 5 февраля 2003 г.
- Шейн Флинт и Клайв Боутон (2003) «Исполняемый/переводимый UML и системная инженерия». Практические подходы к сложным системам (SETE 2003) .
- Шейн Флинт, Генри Гарднер и Клайв Боутон (2004). «Исполняемый/переводимый UML в компьютерном образовании». Материалы шестой Австралазийской конференции по компьютерному образованию, том 30 . Австралийское компьютерное общество, Inc.
- Х.С. Лахман (2011). Разработка на основе моделей: приложения . Аддисон-Уэсли Профессионал. ISBN 0-321-77407-8 .
- Стивен Дж. Меллор и Марк Бальсер (2002). Исполняемый UML: основа архитектуры, управляемой моделями . Эддисон Уэсли. ISBN 0-201-74804-5 . Глава 1 онлайн
- Исполняемый и переводимый UML
- Стивен Дж. Меллор (2004), Введение в исполняемый и переводимый UML
- Стивен Дж. Меллор (2004), Структура аспектно-ориентированного моделирования
- Крис Рейстрик; и др. (2004). Архитектура, управляемая моделью, с исполняемым UML . Издательство Кембриджского университета. ISBN 0-521-53771-1 .
- Леон Старр (2002). Исполняемый UML:Как создавать модели классов . Прентис-Холл. ISBN 0-13-067479-6 .
Ссылки
[ редактировать ]- ^ Меллор и Бальсер, 2002 г.
- ^ Старр 2002, с. 3.
- ^ Г. О'Киф (2006) «Семантика динамической логики для согласованности UML» в: Архитектура, управляемая моделями - основы и приложения: Вторая европейская конференция, ECMDA-FA 2006, Бильбао, Испания, 10–13 июля 2006 г., Труды . Ред. Аренд Ренсинк. п. 124
- ^ Старр 2002, с. 3.
- ^ Меллор и Балсер 2002, раздел 1.4.
- ^ Меллор и Балсер 2002, раздел 1.5.
- ^ Рейстрик и др. 2004 г., разделы 2.3.3 и 2.3.4.
- ^ Меллор и Балсер 2002, раздел 1.1.
- ^ Меллор и Балсер 2002, раздел 3.4.
- ^ Меллор и Бальцер 2002, стр. 14.
- ^ Меллор и Бальцер 2002, стр. 35.
- ^ «MASL — это диалектный язык Шлаера-Меллора и язык структурного моделирования.: xtuml/masl» . xtUML. 27 декабря 2018 года . Проверено 26 октября 2019 г.
- ^ Меллор и Балсер 2002, глава 9.
- ^ Меллор и Бальцер 2002, стр. ххх.
- ^ «Язык действий для базового UML™ (ALF™)» . www.omg.org . Проверено 21 декабря 2016 г.
Внешние ссылки
[ редактировать ]- http://executableumlbook.com Официальный веб-сайт «Исполняемый UML: основа архитектуры, управляемой моделями».