Аналитик и архитектура: 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
Ближайшая дата курса
14 ноября, 2022
Длительность обучения
12 ак.часов
Стоимость обучения
20 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 предлагает обойти эти ограничения, рассмотрим далее.

UML для бизнес-аналитика: основы ООП и разработка моделей

Код курса
BUML
Ближайшая дата курса
17 ноября, 2022
Длительность обучения
8 ак.часов
Стоимость обучения
15 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
Ближайшая дата курса
6 октября, 2022
Длительность обучения
8 ак.часов
Стоимость обучения
15 000 руб.

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

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

Поиск по сайту

Напишите нам, мы онлайн!