Открыть сервис

Унифицированный язык моделирования

Унифицированный язык моделирования (UML, Unified Modeling Language) — это графический язык специфицирования, визуализации, конструирования и документирования артефактов программных систем, а также бизнес-процессов и других нетехнических систем. UML не является языком программирования, а представляет собой стандарт нотации (систему обозначений), используемый для создания моделей, описывающих структуру и поведение разрабатываемой системы на различных этапах её жизненного цикла. Язык разработан консорциумом OMG (Object Management Group) и стандартизирован Международной организацией по стандартизации (ISO).

История

Предшественниками UML были методы объектно-ориентированного анализа и проектирования, появившиеся в конце 1980-х — начале 1990-х годов. Наибольшую популярность среди них приобрели метод Гради Буча (Booch), метод Джеймса Рамбо (OMT, Object Modeling Technique) и метод Ивара Якобсона (OOSE, Object-Oriented Software Engineering). Каждый из этих подходов имел собственную нотацию, что затрудняло обмен моделями между командами разработчиков.

В 1994 году Буч и Рамбо объединили усилия в компании Rational Software, а в 1995 году к ним присоединился Якобсон. Результатом их совместной работы стала версия UML 0.9, выпущенная в 1996 году. Консорциум OMG принял предложение Rational Software, и в 1997 году была опубликована первая официальная версия — UML 1.1. В дальнейшем язык развивался: выходили версии 1.3, 1.4, 1.5, а в 2005 году была принята существенно переработанная версия UML 2.0, которая затем уточнялась (версии 2.1, 2.2, 2.3, 2.4, 2.5). Текущая версия UML 2.5.1 была принята OMG в 2017 году.

Назначение и применение

Основное назначение UML — служить средством коммуникации между участниками процесса разработки: аналитиками, архитекторами, программистами, тестировщиками и заказчиками. Модели на UML позволяют:

  • описать требования к системе на концептуальном уровне;
  • спроектировать архитектуру и детальную структуру программного кода;
  • документировать существующие системы;
  • генерировать программный код на основе моделей (в рамках подхода Model-Driven Architecture);
  • обратное проектирование (reverse engineering) — восстановление модели из исходного кода.

Язык применяется не только в разработке программного обеспечения, но и в моделировании бизнес-процессов, организационных структур, аппаратных систем и логистических схем.

Основные элементы языка

UML определяет три категории элементов моделирования: сущности, отношения и диаграммы.

Сущности

  • Структурные сущности — классы, интерфейсы, компоненты, узлы, артефакты. Они описывают статическую часть системы.
  • Поведенческие сущности — взаимодействия, конечные автоматы, виды деятельности. Они описывают динамику системы.
  • Группирующие сущности — пакеты, используемые для организации модели.
  • Аннотационные сущности — примечания и комментарии.

Отношения

UML поддерживает четыре основных типа отношений:

  • Зависимость — семантическая связь, при которой изменение одного элемента влияет на другой.
  • Ассоциация — структурная связь между классами (например, «студент учится в группе»). Частный случай ассоциации — агрегация и её усиленная форма, композиция.
  • Обобщение — отношение наследования, связывающее общий элемент с его специализациями.
  • Реализация — связь между интерфейсом и классом или компонентом, который его реализует.

Диаграммы

В UML 2.x выделяют 14 типов диаграмм, разделённых на две группы: структурные и поведенческие.

Структурные диаграммы

  • Диаграмма классов — центральная диаграмма языка, показывает классы системы, их атрибуты, методы и отношения.
  • Диаграмма объектов — показывает экземпляры классов в конкретный момент времени.
  • Диаграмма компонентов — описывает компоненты программного обеспечения и их зависимости.
  • Диаграмма развёртывания — показывает физическое размещение компонентов на аппаратных узлах.
  • Диаграмма пакетов — отображает организацию модели в виде пакетов и их зависимостей.
  • Диаграмма составной структуры — показывает внутреннюю структуру класса или компонента.
  • Диаграмма профилей — расширяет UML для конкретной предметной области.

Поведенческие диаграммы

  • Диаграмма вариантов использования — описывает функциональность системы с точки зрения действующих лиц (акторов) и их целей.
  • Диаграмма деятельности — моделирует бизнес-процессы и алгоритмы в виде последовательности действий.
  • Диаграмма состояний — описывает конечный автомат, состояния объекта и переходы между ними.
  • Диаграмма последовательности — показывает обмен сообщениями между объектами в хронологическом порядке.
  • Диаграмма коммуникации — акцентирует внимание на связях между объектами, а не на времени.
  • Диаграмма обзора взаимодействия — комбинирует диаграмму деятельности и диаграммы последовательности.
  • Диаграмма синхронизации — показывает изменение состояния объекта во времени.

Критика и ограничения

UML неоднократно подвергался критике. Основные претензии: сложность языка и избыточность нотации, что затрудняет его освоение; семантическая неоднозначность некоторых конструкций; трудность поддержания моделей в актуальном состоянии при быстрой разработке. В ответ на критику появились облегчённые подходы, такие как C4-модель и диаграммы на основе текстовых описаний (Mermaid, PlantUML), однако UML остаётся де-факто стандартом в индустрии и обязательным элементом учебных курсов по программной инженерии.

Инструменты поддержки

Существует множество инструментов для создания UML-диаграмм, как коммерческих (Enterprise Architect, IBM Rational Rose, Visual Paradigm), так и свободно распространяемых (StarUML, ArgoUML, PlantUML). Многие интегрированные среды разработки, такие как IntelliJ IDEA и Eclipse, включают встроенные плагины для моделирования на UML.

Источники

  • OMG Unified Modeling Language (OMG UML), Version 2.5.1 — спецификация консорциума OMG, 2017.
  • Буч Г., Рамбо Д., Якобсон А. Язык UML. Руководство пользователя. — М.: ДМК Пресс, 2006.
  • Фаулер М. UML. Основы. — СПб.: Символ-Плюс, 2011.
  • ISO/IEC 19505-1:2012 Information technology — OMG Unified Modeling Language (OMG UML) — Part 1: Infrastructure.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →