Исполняемый UML (xtUML или xUML ) - это одновременно метод разработки программного обеспечения и весьма абстрактный язык программного обеспечения. Впервые он был описан в 2002 году в книге «Исполняемый UML: основа модельно-ориентированной архитектуры». Этот язык «объединяет подмножество графической нотации UML (Unified Modeling Language ) с исполняемой семантикой и правилами синхронизации». Метод Executable UML является преемником метода Шлаера – Меллора.
Исполняемые модели UML «могут быть запущены, протестированы, отлажены и измерены на производительность», и могут быть скомпилирован в менее абстрактный язык программирования для конкретной реализации. Исполняемый UML поддерживает управляемую моделями архитектуру (MDA) посредством спецификации платформенно-независимых моделей и компиляции платформенно-независимых моделей в модели для конкретных платформ.
Исполняемый UML - это более высокий уровень абстракции, чем языки программирования третьего поколения. Это позволяет разработчикам разрабатывать на уровне абстракции приложения. Исполняемый UML нацелен на разделение задач. Предполагается, что это упростит повторное использование и снизит стоимость разработки программного обеспечения. Это также позволяет исполняемым доменам UML быть кроссплатформенным. Это означает, что он не привязан к какому-либо конкретному языку программирования, платформе или технологии.
Исполняемый UML также позволяет переводить платформо-независимые модели (PIM) в платформенно-зависимые модели (PSM). Метод Executable UML позволяет оценить модель как интеллектуальную собственность, поскольку модель является полностью выполнимым решением для проблемного пространства.
Действия указаны на языке действий. Это означает, что автоматическое создание кода реализации из исполняемых моделей UML может выводиться в оптимизированной форме.
Исполняемый UML предназначен для использования в качестве исполняемого кода, а также документации. Модели представляют собой графическую исполняемую спецификацию проблемного пространства, которая скомпилирована в целевую реализацию. Они также предназначены для того, чтобы быть удобочитаемыми.
A Система состоит из нескольких предметов, известных как домены в терминах исполняемого UML. Исполняемый UML используется для моделирования домена на уровне абстракции его предмета независимо от проблем реализации. Результирующая модель предметной области представлена следующими элементами:
Исполняемый UML требует идентификации доменов (также известный как: аспекты или относятся к ) системы. «Каждый домен - это автономный мир, населенный концептуальными объектами». Каждый домен может быть смоделирован независимо от других доменов в системе, что позволяет разделить проблемы. В качестве примера домены для автоматизированной кассовой системы могут включать в себя следующее:
Разделение задач позволяет каждому домен должен разрабатываться и проверяться независимо от других доменов в системе соответствующими экспертами в области.
Соединения между доменами называются мостами. "Мост - это многоуровневая зависимость между домены ". Это означает, что домены могут предъявлять требования к другим доменам. Рекомендуется, чтобы мосты согласовывались с экспертами в разных областях.
Домен может быть отмечен как реализованный, чтобы указать, что домен существует и не нуждается в моделировании. Например, домен доступа к данным, использующий базу данных MySQL, будет отмечен как реализованный.
Концептуальные сущности, такие как материальные вещи, роли, инциденты, взаимодействия и спецификации, характерные для моделируемой области, абстрагируются в классы. Классы могут иметь атрибуты и операции.
Отношения между этими классами будут обозначены ассоциациями и обобщениями. Для ассоциации может потребоваться дальнейшая абстракция в виде класса ассоциации.
Ограничения на диаграмме классов могут быть записаны как на языке действий, так и на языке объектных ограничений (OCL).
Метод Executable UML ограничивает элементы UML, которые могут использоваться на диаграмме классов Executable UML.
Диаграмма классов исполняемого UML предназначена для предоставления информации о домене. Слишком большая сложность диаграмм состояний - хороший индикатор того, что диаграмму классов следует переработать.
У классов есть жизненные циклы, которые моделируются в исполняемом UML с помощью диаграммы состояний. Диаграмма состояний определяет состояния, переходы, события и процедуры, которые определяют поведение класса.
Каждое состояние имеет только одну процедуру, которая выполняется при входе в это состояние. Процедура состоит из действий, которые указаны на языке действий.
Сами по себе модели классов и состояний могут обеспечивать только статическое представление домена. Чтобы иметь исполняемую модель, должен быть способ создания экземпляров класса, установления ассоциаций, выполнения операций с атрибутами, событий состояния вызова и т. Д. В исполняемом UML это делается с использованием языка действий, который соответствует семантике действий UML..
Семантика действий была добавлена в спецификацию UML в 2001 году. RFP по семантике действий был основан на предыдущей работе над языками действий, поддерживающими метод Шлаера – Меллора. Существующие языки действий - это язык объектных действий (OAL), язык действий Шлаера – Меллора (SMALL), язык спецификации действий (ASL), язык спецификации модифицированных действий (MASL), язык этого действия (TALL), краткий язык взаимодействия Старра (SCRALL)., Платформенно-независимый язык действий (PAL) и язык действий PathMATE (PAL). SCRALL - единственный язык графических действий.
После того, как домен смоделирован, его можно протестировать независимо от целевой реализации путем выполнения модели. Каждый домен может быть проверен и подтвержден независимо от любого другого домена. Это позволяет связать обнаруженную ошибку с доменом и независимо от других проблем системы.
Проверка будет включать такие вещи, как человеческий просмотр моделей, выполняемый экспертами в соответствующей области, и автоматическая проверка семантики исполняемого UML. то есть проверка того, что модель исполняемого UML соответствует исполняемой модели UML метамодели.
Проверка, как правило, будет включать использование инструмента исполняемого UML для выполнения модели. Выполнение может происходить до или после компиляции модели.
Чтобы поддерживать выполнение в целевой реализации, модель предметной области должна быть переведена в менее абстрактную форму. Этот процесс перевода называется компиляцией модели. Большинство компиляторов модели нацелены на известный язык программирования, поскольку это позволяет повторно использовать существующие технологии компилятора.
Оптимизация моделей предметной области для целей целевой реализации снизит уровень абстракции, отрицательно повлияет на независимость домена и увеличит стоимость повторного использования. В исполняемом UML оптимизации выполняются компилятором модели либо автоматически, либо посредством маркировки. Маркировка позволяет нацеливать определенные элементы модели на конкретные реализации нижнего уровня и позволяет принимать более широкие архитектурные решения, такие как указание, что коллекции объектов должны быть реализованы как двусвязный список.
В терминах MDA компилятор модели создает PSM. Разделение между PIM и PSM в исполняемом UML отключает возможность инженера и обратно модели и препятствует внесению изменений в PSM.
Исполняемый UML определяет семантику выполнения для подмножества UML. Ключевые аспекты подмножества исполняемого UML включают следующее:
Группа управления объектами стандартизировали Foundation UML (fUML), на который сильно повлиял исполняемый UML.
Язык действий для базового UML (ALF) - это стандартная спецификация языка действий, разработанная группой управления объектами.