Диаграмма контекста
Тема дорожной карты · Software Architecture
Диаграмма контекста (C4 Уровень 1) — это визуальное представление системы и её взаимодействия с внешним миром. Она помогает понять, как система взаимодействует с пользователями и другими системами, и является ключевым элементом для понимания архитектуры. Диаграмма контекста важна для всех участников проекта, от бизнес-стейкхолдеров до новых инженеров, так как она обеспечивает общее представление о системе и её окружении.
Как это работает
Диаграмма контекста включает в себя один центральный блок для описываемой системы, вокруг которого располагаются блоки для внешних пользователей (людей, клиентов, администраторов) и внешних систем (например, баз данных, API, партнёров). Каждый блок связан стрелками, обозначающими основные информационные потоки. Эти стрелки должны быть подписаны, чтобы указать тип данных или действие, которое происходит между системами. Диаграмма должна быть простой и легко читаемой, помещаясь на одном слайде и занимая не более 30 секунд для понимания.
Когда применять
Диаграмма контекста всегда должна быть первой диаграммой, которую рисуют при анализе системы. Она служит отправной точкой для понимания архитектуры и помогает новым участникам проекта быстро ориентироваться в структуре системы. Обновляйте диаграмму контекста при изменении внешних интеграций, чтобы она всегда отражала актуальное состояние системы.
Типичные ошибки
- Слишком много деталей — размещение внутренних модулей на диаграмме контекста. Это приводит к путанице и усложняет понимание. Внутренние модули лучше рассматривать на более низком уровне диаграммы, например, на диаграмме контейнеров (Container Diagram).
- Пропущенные актёры — забывание упомянуть важных пользователей системы, таких как администраторы, поддержка и интеграционные партнёры. Это может привести к неполной картине взаимодействия системы.
- Стрелки без подписей — использование стрелок без указания информации, которая через них передаётся. Это делает диаграмму бесполезной, так как она теряет значительную часть информации.