Перейти к основному содержимому

Основы диаграмм и моделирования

Аналитику Архитектору Руководителю Техническому писателю
статья

Здесь — общая теория и карта нотаций. Практика процессов (as-is/to-be, journey, DFD) — в моделировании бизнес-процессов; справочник элементов BPMN — в 129; инструменты — в 126.

Play ITЗагрузка интерактивного демо…


1. Что такое моделирование и зачем оно нужно

Моделирование — способ описать сложную систему упрощённо, но достаточно точно для конкретной задачи. Вы не копируете реальность один в один — вы отбрасываете лишнее и оставляете то, без чего нельзя принять решение, согласовать требования или спроектировать реализацию.

Академическое определение. Модель — формализованное представление объекта или системы, построенное с целью изучения, объяснения, проектирования или управления его структурой, поведением или состоянием (обобщение по ISO/IEC/IEEE 24765 и практике системной инженерии). Модель всегда частична: она адекватна только в рамках заявленной цели.

По-человечески. Представьте, что вы объясняете коллеге, как устроен интернет-магазин. На словах за пять минут вы опустите детали про цвет кнопок и версию PostgreSQL — но скажете про "корзину", "оплату" и "склад". Вы уже построили ментальную модель. Диаграмма — это та же идея, только зафиксированная на бумаге или в файле, по правилам нотации, чтобы её поняли не только вы.

Зачем моделировать в IT

ЗадачаЧто даёт модель
СогласованиеБизнес, аналитик и разработчик смотрят на одну схему, а не на десять разных "картинок в голове"
Снижение рискаОшибку на диаграмме исправить дешевле, чем в продакшене
Передача знанийНовый сотрудник читает as-is процесс и C4-контекст быстрее, чем триста страниц переписки
АвтоматизацияИсполняемый BPMN (Camunda, Flowable) — модель становится частью runtime
ПроектированиеUML и ERD помогают дойти до кода и схемы БД без "угадывания" на ходу

Моделирование не заменяет разговор с заказчиком и не гарантирует истину. Оно структурирует знания. Хорошая модель уменьшает энтропию — меньше двусмысленности, меньше "а я думал, что…".

Две большие области в IT

  1. Процессы и операционная логика — кто что делает, в каком порядке, при каких условиях. Нотации — BPMN, EPC, блок-схемы, customer journey.
  2. Структура и архитектура ПО — из чего собрана система, как части общаются, где лежат данные. Нотации — UML, C4, ArchiMate, ERD.

Смешивать их на одном листе без пояснения уровня — частая ошибка новичка. Процесс "оформить заказ" и контейнер "Order Service" отвечают на разные вопросы; оба нужны, но не на одной диаграмме без рамки "это процесс" / "это архитектура".

Дальше по проекту: артефакты аналитика → практика процессов Моделирование бизнес-процессовтехнический дизайн → раздел 7.06 Проектирование и архитектура.


2. Терминология

Ниже — словарь из 50 терминов, с которых удобно начинать. Для каждого: коротко "по-человечески" и формулировка ближе к учебнику. Расширенные определения — в глоссарии.

2.1. Базовые понятия визуализации

ТерминПо-человеческиАкадемически / строго
1МодельУпрощённая "копия" реальности под задачуАбстрактное представление системы с явной целью и границами достоверности
2НотацияНабор правил: "круг = событие, прямоугольник = задача"Формальный язык графических символов и связей с заданной семантикой (BPMN 2.0, UML 2.x, C4)
3ДиаграммаРисунок по стандарту, который понимают специалистыГрафическое представление модели в рамках конкретной нотации
4СхемаБыстрый эскиз "на салфетке", правила могут быть свободнымиГрафическое изображение без обязательного соответствия стандарту; часто черновик
5ГрафикЛинии/столбцы по числам во времениВизуализация количественных рядов (временны́е ряды, распределения, сравнения)
6ВиджетОдин блок на экране: KPI, таблица, мини-графикЭлемент пользовательского интерфейса или дашборда с привязкой к источнику данных
7ДашбордЭкран "всё важное сразу" для мониторингаКомпоновка виджетов и графиков для оперативного анализа метрик
8ВизуализацияЛюбой способ показать данные или структуру глазамиПреобразование информации в зрительную форму для познания или принятия решений
9АртефактЛюбой "выход" работы: ТЗ, диаграмма, прототипОсязаемый результат деятельности по ЖЦ ПО (см. Артефакты аналитической деятельности)
10АбстракцияСкрыть детали, оставить сутьВыделение существенных свойств объекта при игнорировании несущественных

2.2. Элементы модели

ТерминПо-человеческиАкадемически / строго
11Сущность"Объект мира": заказ, пользователь, серверИдентифицируемый объект предметной области со состоянием и/или поведением
12Связь"A связан с B"Отношение между сущностями: ассоциация, зависимость, агрегация, FK
13АтрибутПоле сущности: имя, цена, датаИменованное свойство сущности с типом и ограничениями
14АктёрКто взаимодействует с системой снаружиРоль вне системы, инициирующая или получающая поведение (UML, C4 Person)
15Событие"Что-то произошло" — старт, таймер, сообщениеМомент изменения состояния, триггер перехода в процессе или автомате
16Состояние"Сейчас заказ в статусе Оплачен"Дискретное значение жизненного цикла объекта при заданных правилах переходов
17ПереходСтрелка "из А в Б"Условие или действие смены состояния или шага процесса
18Контейнер (C4)Крупная часть системы: приложение, БД, очередьЕдиница развёртывания или исполнения с технологической границей
19КомпонентМодуль внутри приложенияЛогическая часть контейнера с явными зависимостями
20Граница системыЧто "внутри нашего продукта", что снаружиScope модели: что включено в описание, а что — внешняя зависимость

2.3. Уровни и аудитория

ТерминПо-человеческиАкадемически / строго
21Уровень абстракции"Насколько крупно рисуем"Степень детализации модели от контекста до кода
22Аудитория диаграммыДля кого рисуем: директор, разработчик, аудиторЦелевая группа потребителей модели, определяющая допустимую детализацию
23Контекст (C4 L1)Система как чёрный ящик среди людей и APISystem Context: границы продукта и внешние взаимодействия
24ДекомпозицияРазбить сложное на частиИерархическое разбиение модели без потери связности
25РефайнментУточнить грубую схему детальнойСвязь моделей разного уровня (один шаг BPMN → подпроцесс)
26As-isКак работает сейчасМодель текущего состояния (baseline)
27To-beКак должно быть после измененийЦелевая модель будущего состояния
28Gap analysisРазница между as-is и to-beСравнительный анализ разрывов процессов, систем или данных
29ScopeГраницы задачи: что входим, что нетОграничение предметной области и глубины моделирования
30StakeholderЗаинтересованная сторонаСубъект, чьи интересы затрагивает система или процесс

2.4. Процессы и BPMN

ТерминПо-человеческиАкадемически / строго
31Бизнес-процессУстойчивая цепочка работы к результатуНабор связанных действий, преобразующих входы в выходы для потребителя
32Задача (Task)Один шаг работыАтомарное действие в потоке BPMN
33Подпроцесс"Мини-процесс внутри процесса"Иерархическая инкапсуляция фрагмента процесса
34Шлюз (Gateway)Развилка: И/ИЛИ/исключающий выборЭлемент ветвления, слияния или параллелизма потока
35Дорожка (Lane)Кто отвечает: отдел, роль, системаSwimlane: пространственное разделение ответственности
36Пул (Pool)Участник взаимодействия (организация, система)Граница независимого процесса или контрагента
37Поток управленияПорядок выполнения шаговSequence Flow в BPMN
38Поток сообщенийОбмен между пуламиMessage Flow между участниками
39Исполняемая модельДиаграмма, которую крутит движокExecutable BPMN с семантикой, поддерживаемой BPMS
40ХореографияКто кому что шлёт без внутренней логикиChoreography: протокол взаимодействия участников

Подробно: справочник BPMN 2.0, движки Camunda и Flowable.

2.5. UML, архитектура, данные

ТерминПо-человеческиАкадемически / строго
41Класс (UML)Шаблон объекта с полями и методамиКлассификатор экземпляров с атрибутами, операциями и отношениями
42ИнтерфейсКонтракт "что должен уметь", без реализацииСпецификация операций; реализация в классах (Realization)
43Прецедент (Use Case)Сценарий "пользователь хочет…"Спецификация поведения системы относительно актёров
44Диаграмма последовательностиКто кому что вызывает по времениInteraction: обмен сообщениями между lifeline в хронологии
45Диаграмма состоянийЖизненный цикл одного объектаState Machine: состояния, события, guard-условия
46C4 ModelЧетыре zoom-уровня архитектурыContext → Containers → Components → Code (Simon Brown)
47ERDТаблицы и связи в БДEntity-Relationship Diagram: сущности, атрибуты, кардинальность
48КардинальностьСколько с каждой стороны: 1, 0.., 1..Ограничение кратности связи в ERD или UML
49НормализацияУбрать дубли и аномалии в таблицахДекомпозиция схемы БД по нормальным формам (1НФ–BCNF)
50МетрикаИзмеримый показатель продуктаКоличественная мера, агрегируемая во времени (DAU, conversion, ARPU)

Дополнительно в глоссарии — UML, C4 Model, бизнес-процесс.


3. Какой вид визуализации выбирать?

Главная шпаргалка: сначала вопрос, потом нотация. Не "нам нужен BPMN", а "нужно показать, кто и в каком порядке согласует заявку".

Таксономия: вопрос → визуализация

Вопрос, который нужно закрытьЧто рисоватьНотация / форматКуда углубиться
Как сейчас / как будет работать операция?Поток работ, роли, ветвленияBPMN 2.0, блок-схемаМоделирование бизнес-процессов, Справочник по нотации BPMN 2.0
Кто взаимодействует с продуктом снаружи?Контекст системыC4 Context, Use Case§6, 7.06
Из чего состоит система технически?Сервисы, БД, очереди, UIC4 Container, диаграмма компонентов UML§6, Инструменты аналитика
Как устроены классы и связи в коде?Объектная модельUML Class Diagram124#uml-class-diagram
Как объекты обмениваются вызовами во времени?Сценарий API, интеграцияUML Sequence, BPMN messageТехнический дизайн на основе требований, 7.06 design
Какие статусы у заказа, тикета, платежа?Автомат состоянийUML State Machine, таблица переходовМоделирование бизнес-процессов
Как хранятся данные?Таблицы, ключи, связиERD, логическая модель§7
Что видит пользователь и в каком порядке?Экраны, кликиWireframe, user flow, FigmaПрототипирование интерфейсов и сценариев, 1.25 Интерфейс
Сколько пользователей дошло до оплаты?Воронка, когортыГрафик, Sankey, BI§8, Основы продуктовой аналитики
Как меняется выручка по месяцам?Динамика KPIЛинейный/столбчатый графикОсновы продуктовой аналитики, 3.11 Анализ данных
Нужен ли быстрый эскиз на встрече?Схема на доскеСвободная схема → потом BPMN/C4Моделирование бизнес-процессов
Как ИТ стыкуется с бизнес-целями в корпорации?Слои бизнес / приложение / инфраArchiMateИнструменты аналитика
Где физически крутятся сервисы?Узлы, сетиUML Deployment, схема инфра8.06
Как данные текут между системами?Потоки без детализации шаговDFDМоделирование бизнес-процессов
Какой путь клиента через каналы?Этапы, боли, точки контактаCustomer Journey MapМоделирование бизнес-процессов
Правило одного листа

Одна диаграмма — один уровень абстракции и одна аудитория. Для совета директоров — C4 Context и KPI. Для разработчиков — Sequence и Class Diagram. Смешивать на одном слайде "процесс согласования" и "микросервис Payment" — признак, что пора разнести на два артефакта.

Диаграмма проектирования ≠ график аналитики

Диаграмма (BPMN, UML, C4, ERD)График / дашборд
ИсточникМодель в голове команды, требованияСобытия, логи, транзакции в БД
ЦельСпроектировать или согласовать будущее/структуруПонять фактическое поведение пользователей
МеняетсяПри смене требований или архитектурыПри каждом новом дне данных
Типичная ошибкаРисуют "красивый BPMN" без интервьюСтроят дашборд без определения метрики

4. Процессы и поведение → BPMN

BPMN (Business Process Model and Notation) — стандарт OMG для описания последовательности работ, событий, ветвлений и участников. Это язык бизнес-аналитика и инженера процессов, а не схема классов.

По-человечески. BPMN отвечает на вопрос: "Что происходит шаг за шагом, кто за это отвечает и где ветвление?" Заказ создан → проверка склада → если нет — уведомление → иначе сборка → отгрузка.

Академически. BPMN 2.0 задаёт метамодель Flow Objects (Events, Activities, Gateways), Connecting Objects, Swimlanes и Artifacts с исполняемой семантикой для подмножества элементов.

Три уровня в BPMN

УровеньСодержаниеКогда использовать
ОрганизационныйПулы, дорожки, взаимодействие подразделенийСогласование с бизнесом, регламенты
ПроцессныйЗадачи, шлюзы, события, потокиAs-is / to-be, ТЗ, автоматизация
ИсполняемыйДетали для Camunda/Flowable: типы задач, сообщения, таймерыCI/CD процессов, low-code

Минимальный набор элементов

События

  • Стартовое событиеСтарт
  • Timer CatchПромежуточное
  • Конечное событиеКонец
  • Message StartСообщение
  • Timer StartТаймер
  • Error EndОшибка

Задачи

  • ЗадачаЗадача
  • User TaskПользователь
  • Service TaskСервис
  • Script TaskСкрипт
  • ПодпроцессПодпроцесс
  • Call ActivityВызов

Шлюзы и потоки

  • Exclusive GatewayXOR
  • Parallel GatewayAND
  • Inclusive GatewayOR
  • Sequence FlowПоток
  • Message FlowСообщение
  • ПулПул / дорожка

Артефакты

  • Data ObjectДанные
  • Data StoreХранилище
  • Text AnnotationАннотация
  • GroupГруппа
  • Стартовое событиеСтартовое событие круг с тонкой границей.
  • ЗадачаЗадача прямоугольник со скруглением.
  • Шлюз XORExclusive Gateway ромб с «×» (один путь).
  • Конечное событиеКонечное событие круг с жирной границей.
  • ДорожкаДорожка горизонтальная полоса роли или системы.

Не путайте поток управления (внутри пула) и поток сообщений (между пулами).

Куда читать дальше


5. Структура ПО → UML

UML (Unified Modeling Language) — семейство диаграмм OMG для структуры и поведения программных систем. Это не язык программирования: это согласованная нотация между аналитиком, архитектором и разработчиком.

Две группы диаграмм

Структурные — "из чего состоит":

ДиаграммаНазначение
КлассовТипы, поля, методы, наследование, ассоциации
КомпонентовМодули, библиотеки, API между ними
РазвёртыванияУзлы, артефакты, сеть
ПакетовГруппировка по слоям или доменам
ОбъектовСнимок экземпляров в момент времени

Поведенческие — "как ведёт себя во времени":

ДиаграммаНазначение
ПрецедентовФункции системы для актёров
ПоследовательностиВызовы и сообщения по времени
СостоянийЖизненный цикл объекта
АктивностиПоток действий с ветвлениями (близко к BPMN)
КоммуникацииСвязи объектов с акцентом на структуру, не время

С чего начать новичку

  1. Use Case — на этапе требований (Основы анализа требований).
  2. Диаграмма классов — ядро объектной модели перед кодом.
  3. Sequence — для REST/gRPC и микросервисов (Технический дизайн на основе требований).

Детальная нотация классов (видимость +/-, ассоциация vs композиция, интерфейсы) — в Моделирование бизнес-процессов, раздел UML. Там же интерактивный эскиз.

Связь с кодом — проектирование сущности, ООП, технический дизайн.


6. Архитектура → C4

C4 Model (Simon Brown) — иерархия из четырёх уровней для описания архитектуры ПО без перегруза UML. Идея — как карты — сначала страна, потом город, потом дом.

УровеньВопросПример элементов
1. ContextЧто делает система и с кем говорит?Person, Software System, External System
2. ContainersИз каких крупных частей собрана?Web App, API, Database, Message Broker
3. ComponentsЧто внутри одного контейнера?Controllers, Services, Repositories
4. CodeКакие классы/модули?Опционально; часто достаточно IDE и Class Diagram

Правило практики: держите C4 на Context и Container в общей документации; Components — для онбординга в сервис; Code — точечно или не на диаграмме вовсе (FAQ 7.06).

Пример: "Вселенная IT" (этот репозиторий)

Уровень C4"Вселенная IT" (it-knowledge-base)
ContextЧитатель, автор, GitHub, spirzen.ru
ContainersРепозиторий; Docusaurus (docs, src, static); GitHub Actions; GitHub Pages
ComponentsТема, remark-плагины, src/components/*, скрипты scripts/*.mjs
CodeОтдельные React-компоненты и MDX-страницы (по необходимости)

Сводная схема — на странице "О проекте".

Инструменты — Structurizr, Mermaid C4, PlantUML, Draw.io — инструменты аналитика. Углубление: основы проектирования, роль архитектора.


7. Данные → ERD

ERD (Entity-Relationship Diagram) описывает логическую структуру данных — сущности (будущие таблицы), атрибуты (столбцы), связи и кардинальность (один-ко-многим и т.д.).

По-человечески. ERD отвечает: "Какие сущности храним и как они ссылаются друг на друга?" Пользователь — Заказ — Строка заказа — Товар.

Отличие от UML Class Diagram. ERD заточен под реляционную БД (PK, FK, нормализация). Диаграмма классов — под объектную модель в коде (наследование, интерфейсы, методы). На одном проекте часто живут обе: ERD для DBA, классы — для разработки; расхождения нужно явно согласовывать.

Минимальный чеклист ERD

  • У каждой сущности есть идентификатор (PK).
  • Связи подписаны глаголом — "содержит", "принадлежит", "оформляет".
  • Кардинальность с обеих сторон — 1, N, 0..1.
  • Имена согласованы с словарём данных.

Куда читать дальше


8. Аналитика и продукт — графики, воронки, дашборды

Этот блок не про проектирование, а про наблюдение за реальностью — что пользователи уже делают в продукте, сколько денег приносит канал, где отваливаются.

Типы визуализаций в продукте и BI

ТипВопросПример
Линейный графикКак метрика меняется во времени?DAU по неделям
Столбчатая диаграммаСравнить категорииВыручка по регионам
Воронка (funnel)Где теряем пользователей по шагам?Визит → регистрация → оплата
Когортный анализКак ведут себя группы, пришедшие в разные даты?Retention 7/30 дней
KPI-карточкаОдно число "здесь и сейчас"Конверсия 3,2%
Таблица / pivotДетализация с фильтрамиТоп SKU по марже
Карта / heatmapПространственное или плотностное распределениеКлики на макете
SankeyПотоки между состояниямиМиграция статусов заказов

Виджет — один такой блок на дашборде. Дашборд — компоновка виджетов для роли (CEO, поддержка, маркетинг).

Отличие от BPMN/UML

  • График строится из логов и витрин (ClickHouse, BigQuery, PostgreSQL, Amplitude).
  • Диаграмма процесса описывает задуманную логику; воронка показывает, как вышло на самом деле.
  • Если воронка расходится с BPMN to-be — либо продукт ведут иначе, либо модель устарела.

Куда читать дальше


9. Инструменты

Один инструмент редко закрывает всё. Типичный стек аналитика:

ЗадачаИнструментЗачем
Текстовые диаграммы в gitMermaid, PlantUMLВерсионирование рядом с docs, CI-рендер
Универсальные схемыDraw.io (diagrams.net)BPMN, UML, C4, экспорт PNG/SVG
Процессы enterpriseBizagi, Camunda Modeler, ELMAВалидация BPMN, исполнение
Архитектура C4Structurizr, Mermaid C4Уровни Context–Container
UX-прототипFigmaWireframe до ТЗ
BI и дашбордыPower BI, Tableau, DataLensМетрики и виджеты

Подробное сравнение, стек по BABOK и чеклист внедрения — Инструменты аналитика.

Диаграммы в этой энциклопедии: mermaid в markdown, интерактив — play.spirzen.ru. Образец пайплайна — О проекте.


10. Типичные ошибки

1. Смешение уровней абстракции

На одной диаграмме "пользователь нажал кнопку", "Kubernetes pod" и "таблица Orders". Лечение: разнести на C4 Context, BPMN и ERD; связать ссылками в документе.

2. Перегрузка диаграммы

Сорок классов или пятнадцать дорожек BPMN на одном листе. Лечение: декомпозиция — подпроцесс, отдельная диаграмма компонентов, ссылка "см. рис. 2".

3. Игнорирование семантики нотации

Ромб без типа шлюза, пунктир там, где нужна ассоциация. Лечение: Справочник по нотации BPMN 2.0 для BPMN, 124#uml-class-diagram для UML.

4. Устаревшая диаграмма хуже отсутствующей

Код уехал, на схеме — монолит 2019 года. Лечение: C4 только на Context/Container в git; дата и владелец на диаграмме; ADR при смене архитектуры (7.06).

5. Моделирование того, чего нет

Идеальный to-be без интервью с операторами. Лечение: сначала as-is (Моделирование бизнес-процессов), потом gap.

6. Путаница графика и диаграммы проектирования

Строят "BPMN" из цифр продаж. Лечение: см. §3.

7. Диаграмма без аудитории

Sequence с внутренними DTO для CEO. Лечение: подписать "для кого" и "какой вопрос закрывает".

8. Нет легенды и версии

В приложении к ТЗ блок-схема без расшифровки символов. Лечение: техническое письмо — требования к приложениям.


Маршрут после этой статьи

РольСледующие шаги
Бизнес-аналитикМоделирование бизнес-процессовСправочник по нотации BPMN 2.0BPMN-движки Camunda и FlowableФормализация и управление требованиями
Системный аналитик124#uml-class-diagramТехнический дизайн на основе требований7.06
ПродуктОсновы продуктовой аналитикиКак переводить бизнес-задачи на язык данных
АрхитекторC4 на проектеОсновы проектирования и архитектуры программного обеспеченияРоль и практика архитектора программного обеспечения

Закрепление: Аналитика — итоги, чек-лист.

Содержание