de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Введение

Модель C4, разработанная Саймоном Брауном, предлагает структурированный подход к созданию диаграмм архитектуры программного обеспечения, состоящий из четырех различных уровней, постепенно приближающихся к архитектуре программной системы. Каждый уровень предоставляет уникальную перспективу и выполняет определенные функции при документировании и передаче информации об архитектуре программного обеспечения. Давайте рассмотрим четыре уровня модели C4:

1. Диаграмма контекста системы

Область применения: Одна программная система.

Основные элементы: Программная система, находящаяся в рамках рассмотрения.

Дополнительные элементы: Люди (например, пользователи, участники, роли, персонажи) и программные системы (внешние зависимости), непосредственно связанные с программной системой, находящейся в рамках рассмотрения.

Целевая аудитория: Все, как технические, так и нетехнические специалисты, как внутри, так и вне команды разработки программного обеспечения.

Цель: Диаграмма контекста системы предоставляет первоначальное, высокий уровень представления архитектуры программной системы. Она служит отправной точкой для документирования архитектуры, обеспечивая целостную перспективу системы в её более широкой среде. На этой диаграмме программная система изображается как центральный блок, окруженный её пользователями и другими внешними системами, с которыми она взаимодействует. Основное внимание уделяется людям и программным системам, а не техническим деталям, таким как технологии или протоколы.

Рекомендуется для большинства команд: Да.

Ключевые характеристики:

  • Предоставляет обзор системы с высоты птичьего полёта.
  • Акцентирует внимание на взаимодействии между системой и её пользователями/внешними системами.
  • Идеально подходит для общения с нетехническими заинтересованными сторонами.
  • Уровень детализации намеренно снижен.

2. Диаграмма контейнеров

Область применения: Одна программная система.

Основные элементы: Контейнеры внутри программной системы, находящейся в рамках рассмотрения (например, веб-приложения на стороне сервера, одностраничные приложения, базы данных и т.д.).

Дополнительные элементы: Люди и программные системы, непосредственно связанные с контейнерами.

Целевая аудитория:Технические специалисты внутри и вне команды разработки программного обеспечения, включая архитекторов программного обеспечения, разработчиков и персонал службы поддержки/эксплуатации.

Цель: Диаграмма контейнеров углубляется в структуру программного обеспечения, фокусируясь на его высоком уровне архитектуры и распределении ответственности между контейнерами. Контейнеры представляют собой отдельно запускаемые или развертываемые единицы, такие как веб-приложения или базы данных. Эта диаграмма также выделяет основные решения по технологиям и демонстрирует, как контейнеры взаимодействуют друг с другом. Это ценное средство как для разработчиков, так и для персонала службы поддержки/эксплуатации.

Рекомендуется для большинства команд: Да.

Ключевые характеристики:

  • Фокусируется на архитектуре программного обеспечения.
  • Иллюстрирует контейнеры и их взаимодействие.
  • Выделяет выбор технологий.
  • Подходит для технических заинтересованных сторон.
  • Не затрагивает специфические детали развертывания, такие как кластеризация или балансировка нагрузки.

3. Диаграмма компонентов

Область применения:Один контейнер.

Основные элементы:Компоненты внутри рассматриваемого контейнера.

Вспомогательные элементы:Контейнеры (внутри рассматриваемой системы программного обеспечения) и люди, а также программные системы, непосредственно связанные с компонентами.

Целевая аудитория:Архитекторы программного обеспечения и разработчики.

Цель: Диаграмма компонентов предоставляет подробный взгляд на внутреннюю структуру контейнера. Она разбивает контейнер на его основные структурные элементы, известные как компоненты. Эти компоненты отвечают за конкретные задачи внутри контейнера и связаны с технологическими и деталями реализации. Эта диаграмма особенно полезна для архитекторов программного обеспечения и разработчиков, которым необходимо понять более детальные аспекты архитектуры контейнера.

Рекомендуется для большинства команд: Нет, создавайте диаграммы компонентов только в том случае, если они добавляют ценность, и рассмотрите возможность автоматизации их создания для долгосрочной документации.

Ключевые характеристики:

  • Фокусируется на внутренней структуре контейнера.
  • Определяет компоненты, их обязанности и детали реализации.
  • Направлена на технических заинтересованных сторон.
  • Не всегда необходима и должна использоваться осмотрительно, когда она добавляет ценность документации.

4. Диаграмма кода

Область применения: Одна компонента.

Основные элементы: Подробный код и технические артефакты внутри конкретной компоненты.

Дополнительные элементы: Компоненты (внутри контейнера в рамках рассматриваемой области), контейнеры (внутри программной системы в рамках рассматриваемой области) и люди и программные системы, непосредственно связанные с компонентами.

Целевая аудитория: Высокотехнические специалисты, как правило, разработчики и те, кто глубоко вовлечен в кодовую базу.

Цель: Последний уровень модели C4, диаграмма кода, позволяет еще больше увеличить фокус, чтобы предоставить глубокий взгляд на кодовую базу конкретной компоненты. Эта диаграмма исследует фактический исходный код, структуру классов и технические детали реализации внутри компоненты. Она особенно полезна для разработчиков, которым необходимо работать с компонентой или понимать ее внутреннюю работу.

Рекомендуется для большинства команд: Редко используется на практике. Обычно не принято создавать диаграммы кода, поскольку уровень детализации, который они предоставляют, обычно покрывается документацией к коду и средами разработки.

Ключевые характеристики:

  • Фокусируется на фактическом исходном коде и технических артефактах.
  • Предоставляет чрезвычайно детальный взгляд на реализацию компоненты.
  • В первую очередь предназначена для разработчиков, работающих с кодом.
  • Редко используется на практике из-за высокого уровня детализации, поскольку эта информация обычно доступна непосредственно в кодовой базе.

Заключение

Четыре уровня модели C4 обеспечивают структурированную иерархию для документирования и общения архитектуры программного обеспечения, начиная с обзора высокого уровня на диаграмме контекста системы и постепенно переходя к фактическому коду на диаграмме кода. Эти диаграммы ориентированы на различные аудитории — от непрофессиональных заинтересованных сторон, которым полезна общая картина, до высокотехнических разработчиков, которым необходимы глубокие сведения на уровне кода. Используя модель C4, архитекторы программного обеспечения и команды разработки могут эффективно передавать сложные архитектурные решения и способствовать лучшему пониманию и сотрудничеству внутри и за пределами своих организаций.