Модель 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].

Примечания[править | править код]

  1. 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.
  2. 1 2 The C4 model for visualising software architecture. c4model.com. Дата обращения: 27 августа 2020.
  3. The C4 Model for Software Architecture (англ.). InfoQ. Дата обращения: 27 августа 2020.
  4. The Conflict Between Agile and Architecture: Myth or Reality? (англ.). resources.sei.cmu.edu. Дата обращения: 27 августа 2020.