System Design Space
Граф знанийНастройки

Обновлено: 24 марта 2026 г. в 12:33

UML: диаграммы как язык архитектуры

medium

Оригинальная глава о UML: ключевые диаграммы, польза и практическое применение.

UML полезен не тогда, когда команда пытается нарисовать всю систему сразу, а когда нужно быстро и точно сделать сложную мысль понятной. Эта глава как раз про то, как диаграммы превращаются в язык разговора, а не в бюрократический артефакт.

Командной практике особенно помогает выбор нотации под конкретный вопрос: use case для ролей и сценариев, sequence для взаимодействий во времени, deployment для размещения, class и component для структуры. Разбор уровней моделирования M0-M3 дополнительно не дает смешивать реальный мир, модель системы и правила самой нотации.

На design review и в архитектурных обсуждениях по этой главе удобно показывать границы, сценарии, зависимости и узкие места ровно на той глубине, которая нужна собеседнику. Это хорошая защита от длинных объяснений без опорной схемы.

Практическая польза главы

Язык коммуникации

Помогает превращать устные обсуждения в четкие диаграммы, синхронизирующие команду и стейкхолдеров.

Границы системы

Учит явно показывать актеров, сценарии и зависимости между компонентами на нужном уровне детализации.

Документация решений

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

Interview visualization

На интервью улучшает объяснение решения за счет структурной визуализации потоков и ролей.

Источник

Полезные диаграммы из UML

Подборка диаграмм, которые действительно полезны в проектировании.

Открыть пост

UML - это унифицированный язык моделирования, который вырос из трех нотаций Гради Буча, Джеймса Рамбо и Айвара Якобсона. Он остается удобным способом обсуждать архитектуру, дизайн решений и поведение системы. Эта глава сфокусирована на диаграммах и их пользе, а не только на книгах и стандартах. Если хотите быстрое введение в роль нотаций, загляните в главу про архитектуру ПО. А если интересна эволюция архитектуры и взгляд одного из соавторов UML, посмотрите выпуск с Гради Бучем.

Почему UML полезен в System Design

Общий язык архитектуры

UML помогает обсуждать систему без двусмысленностей между инженерами и бизнесом.

Фокус на решениях

Диаграммы фиксируют компромиссы, зависимости и ключевые архитектурные выборы.

Объяснение сложного

Один лист с диаграммой часто заменяет десятки страниц текста.

Основа для эволюции

Модели помогают планировать изменения и не терять контекст системы.

Главные UML диаграммы и их задача

Фильм

Evolution of software architecture

Выпуск с Гради Бучем о UML, абстракции и роли архитектора.

Смотреть обзор

UML уже не доминирует на рынке - часто выбирают C4 Model или другие способы моделирования. Но эти диаграммы до сих пор помогают быстро разложить систему на части, обсудить сценарии и увидеть компромиссы.

Use Case

Сценарии, роли и цели. Суть в текстовых happy path и exceptional flow, а не в человечках.

Driver

Parking System

Book spot
<<include>>
Check availability
Enter parking
<<include>>
Validate plate
Pay session
<<extend>>
Refund
Cancel booking
optional
Operator

Уровни моделирования UML (M0-M3)

UML описывает модели на разных уровнях абстракции. Это помогает не смешивать реальные объекты, модели и правила их построения.

M0

Real World / Instances

Конкретные объекты и их связи в реальной системе. Object diagram - снимок состояния.

M1

Models

Пользовательские модели UML: use case, class, sequence и другие диаграммы.

M2

Metamodel

Спецификация UML: понятия Class, Association, Attribute и правила их использования.

M3

Meta-metamodel (MOF)

MOF описывает метамодели и может быть применен не только к UML.

Подробный разбор уровней - в посте Уровни моделирования в UML и почему их всего 4.

Почему уровней всего четыре

Самоописание MOF

M3 описывает сам себя, поэтому дополнительный уровень не нужен.

Нет бесконечной рекурсии

Если ввести M4, потребуется M5, M6 и так далее.

Практическая достаточность

M0-M3 покрывают все задачи моделирования в инженерной практике.

MOF - Meta-Object Facility: ссылка на описание.

Примеры уровней в разных областях

Пример из HR

  • M0 - сотрудник Иван Петров, родившийся 15.03.1990
  • M1 - класс "Сотрудник" с полями имя, дата_рождения
  • M2 - понятия "Класс", "Атрибут", "Связь" в UML
  • M3 - мета-класс и мета-атрибут как шаблон для M2

Пример из строительства

  • M0 - мебель и люди в комнатах
  • M1 - планы комнат с расположением объектов
  • M2 - архитектура здания и его структура
  • M3 - строительные нормы и правила проектирования

Пример из лингвистики

  • M0 - предложение "Иван читает книгу"
  • M1 - правила русского языка и части речи
  • M2 - термины "фонема", "морфема" и другие
  • M3 - философия языка и мета-уровень описания

Таймлайн развития UML

Короткая хронология, которая показывает, как UML прошёл путь от унификации методов к точечному инструменту архитектурной коммуникации.

1994-1995

Унификация методов Booch, OMT и OOSE

Rational запустила объединение трёх популярных ОО-подходов, чтобы уменьшить разрыв между командами и инструментами.

1997

UML 1.1 принят OMG как стандарт

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

2005

UML 2.0: расширение нотаций и глубины

Появились более выразительные средства для компонентной и поведенческой модели, но вместе с ними выросла сложность стандарта.

2015

UML 2.5: упрощение и стабилизация

Спецификация стала аккуратнее и ближе к практическому использованию как язык архитектурной коммуникации.

Сегодня

UML как часть инженерного набора

В реальных проектах UML применяют точечно вместе с C4, ADR и текстовыми спецификациями, где важна ясность решений.

Примеры успешного использования UML

Типовые кейсы из инженерной практики, где UML помогает снижать неопределённость до реализации и ускоряет согласование решений.

Платежная платформа и критичные транзакции

Диаграммы: Sequence + State + Component

Команда синхронизировала контракты между сервисами авторизации, антифрода и клиринга до реализации, что заметно снизило число интеграционных дефектов на pre-prod.

Омниканальный заказ в ритейле

Диаграммы: Use Case + Activity + Class

UML-модели помогли выровнять бизнес-сценарии между продуктом и разработкой, сократить разночтения по happy/exception flows и ускорить принятие изменений.

Миграция монолита в модульную архитектуру

Диаграммы: Component + Deployment + Sequence

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

Как применять UML на практике

  • Не рисуйте все подряд - выбирайте диаграмму под цель разговора.
  • Начинайте с простого: use case или sequence, затем углубляйтесь.
  • Держите модели актуальными и используйте их в обсуждениях.
  • Комбинируйте UML с C4 и ArchiMate, если нужно показать контекст.

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки