Нотация моделирования -- визуальный язык для описания архитектуры и дизайна систем. Без общего языка каждый рисует диаграммы по-своему, что приводит к недопониманию.
Проблема без нотаций
РАЗРАБОТЧИК рисует: АРХИТЕКТОР рисует:
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Service │───▶│Database │ │ Module │───▶│ Store │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
Это одно и то же? Разные вещи?
Стрелка -- это HTTP? SQL? Зависимость? Поток данных?
С НОТАЦИЕЙ: все понимают одинаково.
ArchiMate -- стандарт для моделирования enterprise-архитектуры на трёх уровнях.
Три слоя ArchiMate
┌─────────────────────────────────────┐
│ Business Layer │ Бизнес-процессы
│ Actor, Role, Process, Service │ и участники
├─────────────────────────────────────┤
│ Application Layer │ Приложения
│ Component, Interface, Function │ и данные
├─────────────────────────────────────┤
│ Technology Layer │ Инфраструктура
│ Node, Device, Network, Artifact │ и технологии
└─────────────────────────────────────┘
Плюсы ArchiMate
Минусы ArchiMate
Enterprise-уровень
Избыточен для одного приложения
Связь бизнеса и IT
Сложный, много элементов
Стандарт Open Group
Требует обучения
Impact analysis
Тяжёлые инструменты
Выбор нотации
Матрица выбора
Задача
Нотация
Аудитория
Общая архитектура
C4 (Level 1-2)
Все: от менеджеров до разработчиков
API-взаимодействие
UML Sequence
Разработчики
Domain Model
UML Class
Разработчики, DDD
Бизнес-процесс
BPMN
Бизнес + разработчики
Enterprise landscape
ArchiMate
Архитекторы, CTO
Компоненты системы
C4 (Level 3)
Техлиды, разработчики
Алгоритм/flow
UML Activity
Разработчики
Diagrams as Code
Инструмент
Язык
Для чего
Structurizr
DSL
C4 Model
PlantUML
Text
UML всех типов
Mermaid
Markdown
Sequence, Class, Flowchart
D2
Text
Общие диаграммы
DBML
Text
ER-диаграммы баз данных
Преимущества Diagrams as Code:
1. Версионирование в Git
2. Code review диаграмм
3. Автоматическая генерация
4. Не устаревают (CI/CD)
5. Текстовый формат -- diff-friendly
Итоги
Нотация
Для чего
Сложность
UML
Детальный дизайн кода
Высокая
C4
Архитектура приложения
Низкая
BPMN
Бизнес-процессы
Средняя
ArchiMate
Enterprise-архитектура
Высокая
Главное правило: Используй минимально достаточную нотацию. C4 для архитектуры + UML Sequence для взаимодействий покрывают 80% потребностей. Не усложняй без причины.
Проверь себя
Для чего используется BPMN?
Сколько типов диаграмм определяет стандарт UML?
Какое преимущество даёт подход Diagrams as Code?
Какие 4 уровня определяет C4 Model?
Какая нотация лучше всего подходит для демонстрации архитектуры приложения нетехнической аудитории?