...

Аналитик и архитектура: UML-диаграммы для модели C4

UML диаграммы, архитектура информационных систем, модель С4, c4 model, модель 4+1 и UML, UML основы для бизнес-аналитика, UML для описания архитектуры информационных систем, краткий ликбез по C4 и 4+1 архитектура, обучение системных и бизнес-аналитиков, курсы системного и бизнес-анализа, Школа прикладного бизнес-анализа Учебный Центр Коммерсант

Хотя профессиональные задачи системного и бизнес-аналитика отличаются от тех, которые решает ИТ-архитектор, знакомство с основными принципами описания архитектуры программной системы будет полезно всем этим специалистам. Разбираемся, зачем придумана модель C4, чем она отличается от модели 4+1 и можно ли все это описать в виде UML-диаграмм.

Что такое модель 4+1 и при чем здесь UML

С одной стороны, набором UML-диаграмм можно описать практически все аспекты программной системы, что мы рассматривали здесь и здесь. С другой стороны, UML предполагает только объектно-ориентированную парадигму, имеет строгие правила записи и ограниченный алфавит нотаций. Кроме того, некоторые аспекты, связанные с проектированием, разработкой, внедрением и эксплуатацией ПО остаются за рамками этого универсального языка моделирования. Чтобы обойти эти ограничения UML в 2006-2011 гг. архитектор ПО Саймон Брауном предложил модель описания архитектуры C4, основанную на некоторых идеях UML и ранее существовавшей модели архитектурного представления 4+1.

Название C4 обусловлено сочетанием 4-х уровней (Context, Container, Component, Code) для моделирования архитектуры, начиная с контекста программной системы до кода через контейнеры и входящие в них компоненты. В отличие от UML, модель C4 не имеет строгих правил записи для графического изображения различных аспектов моделирования программной архитектуры. Главной идей метода является принцип структурной декомпозиции системы на контейнеры и компоненты с конечным моделированием набора сущностей и связей между ними в виде диаграммы классов UML или ERD.

Разработка ТЗ на информационную систему по ГОСТ и SRS

Код курса
TTIS
Ближайшая дата курса
2 декабря, 2024
Продолжительность
16 ак.часов
Стоимость обучения
36 000 руб.

Как уже было отмечено выше, C4 основана на модели 4+1, где комбинируются разные представления системы, важные для различных стейкхолдеров: конечные пользователи, разработчики, системные инженеры (администраторы и DevOps), а также руководители проектов. А +1 означает, что вместе все эти 4 представления (логическое, реализации, физическое и процессное) образуют еще одно – сценарное. Эта модель была предложена Филиппом Кручтеном из компании Rational еще 1995 году и, в отличие от C4, предполагает только объектно-ориентированную парадигму. Поэтому неудивительно, что в качестве иллюстраций для каждого представления программной системы автор предложил использовать именно UML.

Представление Смысл представления UML-диаграмма
Логическое для описания системы в рамках объектно-ориентированного подхода в виде набора взаимодействующих классов и их методов
  • классов (class)
  • состояний (state)
Реализации Представляет систему с точки зрения разработчика, включая управление ПО
  • пакетов (package)
  • компонентов (component)
Процессное для описания различных аспектов динамического поведения процессов и объектов в системе, в т.ч. параллельного исполнения и синхронизации
  • последовательности (sequence)
  • деятельности (activity)
Физическое для описания особенностей развертывания, включая размещение программных компонентов на узлах физической инфраструктуры и соединения между ними Развертывания (deployment)
Вариантов использования Возможности взаимодействий между субъектами, объектами и процессами, исходная точка для идентификации архитектурных элементов Вариантов использования (use case)

Таким образом, представления модели 4+1 отражают практическую последовательность проектирования ПО в UML, которую можно представить в следующей таблице:

Задача UML-диаграмма
Описать, зачем система нужна каждой категории пользователей, т.е. ЧТО они могут в ней делать Диаграмма вариантов использования (use case)
Описать, какие сущности есть в системе и каковы взаимосвязи между ними Диаграмма классов (class)
Описать ЖЦ объекта конкретного класса Диаграмма состояний (state)
Описать, как выполняется процесс в системе в рамках конкретного варианта использования Диаграмма деятельности (activity)
Описать, как объекты взаимодействуют друг с другом (какими сигналами обмениваются) в рамках конкретного варианта использования Диаграмма последовательности (sequence)
Описать программную архитектуру системы
  • Диаграмма пакетов (package)
  • Диаграмма компонентов (component)
  • Диаграмма развертывания (deployment)

Однако, несмотря на детальное описание многих аспектов, инструментарий UML и представления модели 4+1 не охватывают некоторые важные нюансы, например, положение проектируемой системы в корпоративном ИТ-ландшафте. Дополнительным ограничением модели 4+1 является фокус на ООП и использование строгих правил UML-нотаций, что накладывает определенные требования к разработчикам и читателям диаграмм, повышая порог практического использования этого инструментария. Как С4 предлагает обойти эти ограничения, рассмотрим далее.

DDD, ООП и UML для аналитика

Код курса
BUML
Ближайшая дата курса
9 декабря, 2024
Продолжительность
16 ак.часов
Стоимость обучения
36 000 руб.

Что такое С4 и как ее использовать

Модель C4 описывает архитектуру программных систем, иерархически декомпозируя ее с уровня контекста до контейнеров, их компоненты и внутреннего устройства компонентов на уровне кода. Хотя C4 не навязывает формальных нотаций со строгими правилами записи для построения диаграмм как это есть в IDEF0 или UML, модель предполагает наглядные иллюстрации архитектуры системы с помощью следующих схем:

  • диаграммы контекста (Context), которые являются схемами 1-го уровня абстракции и показывают контекстное окружение программной системы, т.е. ключевые ее взаимодействия с акторами – активными сущностями вне системы, которые взаимодействуют с ней, но не являются ее часть. На практике акторами являются пользователи и внешние сервисы. Суть диаграммы контекста в C4 аналогична контекстной диаграмме потоков данных DFD, которая рассматривает систему как черный ящик, куда попадают потоки данных от внешних сущностей и что они получают от системы. UML-диаграмма вариантов использования (use case) верхнего уровня тоже частично раскрывает особенности контекста, однако, она рассматривает проектируемую систему скорее как серый ящик, раскрывая основные возможности, доступные тому или иному актору.

Например, в рамках системы управления оплаты договоров на образовательные курсы, что мы рассматривали здесь и здесь, диаграмма системного контекста C4 может выглядеть так:

C4, описание архитектуры ПО
Схема контекста С4

А DFD-диаграмма контекстного уровня будет выглядеть таким образом:

DFD context
Контекстная DFD-диаграмма

Наконец, UML-диаграмму вариантов использования (use case) верхнего уровня можно представить так:

UML use case
UML use case
  • диаграммы контейнеров (Container) разбивают систему на взаимосвязанные контейнеры – приложения и базы/хранилища данных. Также контейнером в С4 считается файловая система, программный скрипт, бессерверная функция и прочие макро-компоненты, нужные для работы описываемой системы. Суть этой диаграммы аналогична совмещенной UML-диаграмме компонентов и развертывания. Для нашей системы диаграмма контейнеров C4 может выглядеть так:
C4 container diagram
Схема контейнера С4

Совмещенная UML-диаграмма развертывания для системы с классической трехзвенной архитектурой может выглядеть так:

UML диаграмма развертывания
UML диаграмма развертывания
  • Диаграммы компонентов (Component): разделяют контейнеры на взаимосвязанные компоненты и отражают их связи с другими контейнерами или системами. Поскольку эта схема составляется для разработчиков, в качестве компонентов в C4 могут быть контроллеры, программные модули и пр. макро-элементы кода. В UML этот уровень может быть отображен диаграммой пакетов или компонентов.
  • Диаграммы кода (Code) предоставляют дополнительные сведения о дизайне архитектурных элементов, которые могут быть сопоставлены с программным кодом. Здесь могут быть представлены UML-диаграммы классов или ERD-диаграммы, иллюстрирующие структуру базы данных.

Дополнительно к базовым 4-м схемам С4 также добавлены диаграмма системного ландшафта, динамическая и развертывания. Их практический смысл и аналоги в виде UML-диаграмм показаны в следующей таблице.

Схема Смысл UML-диаграмма

Основные схемы модели C4

Схема системного контекста Какие возможности система предоставляет акторам (пользователям и внешним системам) вариантов использования (use case) бизнес-уровня
Схема контейнеров показывает высокоуровневую форму архитектуры ПО и распределение обязанностей между узлами, в т.ч. основные технологические решения и взаимодействие контейнеров
  • компонентов (component)
  • развертывания (deployment)
Схема компонентов на уровне отдельно взятого контейнера показывает из каких компонентов он состоит, каковы их обязанности и детали технологии/реализации
  • пакетов (package)
  • компонентов (component)

 

Схема кода на уровне отдельно взятого компонента показывает его классы, их атрибуты, методы и интерфейсы классов (class)

Дополнительные схемы модели C4

Схема системного ландшафта расширяет статическое представление C4 для одной программной системы, включая контекстное окружение, например, как здесь вариантов использования (use case) бизнес-уровня
Динамическая схема показывает, как элементы статической модели взаимодействуют во время выполнения для реализации истории пользователя, варианта использования, функции последовательности (sequence)
Схема развертывания показывает, как программные системы или контейнеры в статической модели сопоставляются с узлами развертывания физической, контейнерной или виртуальной инфраструктуры или среды выполнения развертывания (deployment)

Основы архитектуры и интеграции информационных систем

Код курса
OAIS
Ближайшая дата курса
20 января, 2025
Продолжительность
16 ак.часов
Стоимость обучения
36 000 руб.

Таким образом, С4 позволяет описать архитектуру программной системы на разных уровнях абстракции без привязки к строгим формальным правилам, в отличие от UML или других нотаций. Поэтому в качестве инструментального средства можно использовать практически любой редактор схем (MS Visio, Draw.io), а также специализированные среды моделирования (Enterprise Architect, Archi), о которых мы частично писали здесь. также в новой статье я рассказываю про замечательный веб-сервис icepanel.io, который позволяет спроектировать комплексную модель архитектуры ПО в нотации С4. Это пригодится аналитику не только в задачах описания существующих систем, но и при проектировании нового ПО, включая этап разработки требований и их спецификации в виде технического задания (ТЗ). Однако, описать бизнес-архитектуру приложения C4 не поможет. О том, что это такое и каким образом можно решить данную задачу, мы поговорим в следующей статье.

Открытый тест по UML: основы бизнес-анализа для начинающих

А научиться применять все рассмотренные техники на практике вы сможете на курсах Школы прикладного бизнес-анализа в нашем лицензированном учебном центре обучения и повышения квалификации системных и бизнес-аналитиков в Москве:

 

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://c4model.com/
  2. http://reqcenter.pro/4-1-view/
  3. https://vc.ru/dev/265222-kak-opisat-arhitekturu-produkta-po-notacii-c4
  4. https://infostart.ru/1c/articles/1540208
  5. https://www.cinimex.ru/solutions/model-s4-arkhitektury-programmnogo-obespecheniya/

Добавить комментарий