Методика моделирования архитектуры программного обеспечения
Модель C4 представляет собой простую графическую нотацию для моделирования архитектуры программных систем. [1] [2] Она основана на структурной декомпозиции (иерархической древовидной структуре) системы на контейнеры и компоненты и опирается на существующие методы моделирования, такие как унифицированный язык моделирования (UML) или диаграммы «сущность-связь» (ERD) для более детальной декомпозиции архитектурных строительных блоков.
Модель C4 документирует архитектуру программной системы , показывая несколько точек зрения [5] , которые объясняют разложение системы на контейнеры и компоненты , взаимосвязь между этими элементами и, где это уместно, взаимосвязь с ее пользователями. [3]
Точки зрения организованы в соответствии с их иерархическим уровнем: [2] [3]
Контекстные диаграммы (уровень 1): показывают систему в ее масштабе и ее взаимосвязь с пользователями и другими системами;
Диаграммы контейнеров (уровень 2): разложить систему на взаимосвязанные контейнеры. Контейнер представляет собой приложение или хранилище данных;
Диаграммы компонентов (уровень 3): разложение контейнеров на взаимосвязанные компоненты и связывание компонентов с другими контейнерами или другими системами;
Для уровней 1–3 модель C4 использует 5 основных элементов диаграмм: персоны, программные системы, контейнеры, компоненты и отношения. Методика не предписывает компоновку, форму, цвет и стиль этих элементов. Вместо этого модель C4 рекомендует использовать простые диаграммы на основе вложенных блоков для облегчения интерактивного совместного рисования. Методика также способствует хорошим практикам моделирования, таким как предоставление заголовка и легенды на каждой диаграмме, а также четкой недвусмысленной маркировки для облегчения понимания целевой аудиторией.
Модель C4 облегчает совместную визуальную разработку архитектуры и эволюционную архитектуру в контексте гибких команд, где не желательны более формальные методы документирования и предварительное архитектурное проектирование. [6]
^ ab Ричардс, Марк; Форд, Нил (2019). Основы архитектуры программного обеспечения: инженерный подход. O'REILLY MEDIA. стр. 293. ISBN 978-1-4920-4342-3OCLC 1138515057. Появляются некоторые стандарты для построения диаграмм архитектуры программного обеспечения (например, модель C4 архитектора программного обеспечения Саймона Брауна или стандарт Open Group Archimate )
^ ab Enríquez, René (2018). Архитектура программного обеспечения с Spring 5. 0: проектирование и разработка масштабируемых, надежных и высокопроизводительных приложений Java. Salazar, Alberto. Packt Publishing Ltd. стр. 41–44. ISBN978-1-78899-673-0. OCLC 1053798657.
^ abc Brown, Simon. "Модель C4 для визуализации архитектуры программного обеспечения". c4model.com (Официальный сайт метода моделирования). Архивировано из оригинала 2010-02-25 . Получено 2020-08-22 .
^ Браун, Саймон (2018-06-25). "Модель C4 для архитектуры программного обеспечения". InfoQ . Архивировано из оригинала 2018-12-12 . Получено 2020-08-22 .
^ Килинг, Майкл. Design it!: от программиста до архитектора программного обеспечения. Роли, Северная Каролина. ISBN978-1-68050-345-6. OCLC 1024312521.
^ "Конфликт между Agile и архитектурой: миф или реальность?". resources.sei.cmu.edu . Конференция SATURN 2013. Институт программной инженерии Университета Карнеги-Меллона . Архивировано из оригинала 2021-04-19 . Получено 2020-08-22 .