Модель C4 (Bk;yl, C4)
Модель C4 (от англ. С4 model, Context Container Component Code model, модель «контекст-контейнер-компонент-код») — простой метод графической записи для моделирования архитектуры программных систем[1]. Он основан на структурной декомпозиции системы на контейнеры и компоненты и опирается на существующие методы моделирования, такие как Unified Modeling Language (UML) или ER-модель (ERD), для более детальной декомпозиции архитектурных блоков.
История
[править | править код]Модель C4 была создана архитектором программного обеспечения Саймоном Брауном в период с 2006 по 2011 год на основе UML и модели архитектурного представления 4+1. Популяризации новой техники моделирования способствовали запуск официального сайта[2] и публикация статьи[3], вышедшей в 2018 году.
Основные сведения
[править | править код]Модель C4 описывает архитектуру программных систем, отражая ее с разных точек зрения, объясняющих декомпозицию системы на контейнеры и компоненты, а также связи между этими элементами и, там где это уместно, связи между ее пользователями[2].
Диаграммы организованы в соответствии с их иерархическим уровнем:
- Диаграммы контекста (уровень 1): показывают систему в масштабе ее взаимодействия с пользователями и другими системами;
- Диаграммы контейнеров (уровень 2): разбивают систему на взаимосвязанные контейнеры. Контейнер - это исполняемая и развертываемая подсистема;
- Диаграммы компонентов (уровень 3): разделяют контейнеры на взаимосвязанные компоненты и отражают связи компонент с другими контейнерами или другими системами;
- Диаграммы кода (уровень 4): предоставляют дополнительные сведения о дизайне архитектурных элементов, которые могут быть сопоставлены с программным кодом. Модель C4 на этом уровне опирается на существующие нотации, такие как UML, диаграммы отношений сущностей (ERD) или диаграммы, созданные интегрированными средами разработки (IDE).
Для уровней с 1 по 3 в модели C4 используются 5 основных элементов диаграмм: пользователи, программные системы, контейнеры, компоненты и отношения. Модель не предъявляет требований к расположению, форме, цвету и стилю этих элементов. Однако модель C4 рекомендует использовать простые диаграммы, основанные на вложенных блоках, чтобы облегчить интерактивное совместное редактирование диаграмм.
Модель C4 облегчает совместную работу над созданием архитектуры ПО и доработку архитектуры в контексте команд разработки работающих с применением гибкой методологии разработки, в которой более формальные методы документирования и предварительное архитектурное проектирование нежелательны[4].
Примечания
[править | править код]- ↑ NEAL FORD. FUNDAMENTALS OF SOFTWARE ARCHITECTURE: a comprehensive guide to patterns, ... characteristics, and best practices.. — Place of publication not identified: O'REILLY MEDIA, 2019. — ISBN 978-1-4920-4342-3, 978-1-4920-4340-9.
- ↑ 1 2 The C4 model for visualising software architecture . c4model.com. Дата обращения: 27 августа 2020. Архивировано 25 февраля 2010 года.
- ↑ The C4 Model for Software Architecture (англ.). InfoQ. Дата обращения: 27 августа 2020. Архивировано 12 декабря 2018 года.
- ↑ The Conflict Between Agile and Architecture: Myth or Reality? (англ.). resources.sei.cmu.edu. Дата обращения: 27 августа 2020. Архивировано 19 апреля 2021 года.