Хотя профессиональные задачи системного и бизнес-аналитика отличаются от тех, которые решает ИТ-архитектор, знакомство с основными принципами описания архитектуры программной системы будет полезно всем этим специалистам. Разбираемся, зачем придумана модель 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-диаграмма |
Логическое | для описания системы в рамках объектно-ориентированного подхода в виде набора взаимодействующих классов и их методов |
|
Реализации | Представляет систему с точки зрения разработчика, включая управление ПО |
|
Процессное | для описания различных аспектов динамического поведения процессов и объектов в системе, в т.ч. параллельного исполнения и синхронизации |
|
Физическое | для описания особенностей развертывания, включая размещение программных компонентов на узлах физической инфраструктуры и соединения между ними | Развертывания (deployment) |
Вариантов использования | Возможности взаимодействий между субъектами, объектами и процессами, исходная точка для идентификации архитектурных элементов | Вариантов использования (use case) |
Таким образом, представления модели 4+1 отражают практическую последовательность проектирования ПО в UML, которую можно представить в следующей таблице:
Задача | UML-диаграмма |
Описать, зачем система нужна каждой категории пользователей, т.е. ЧТО они могут в ней делать | Диаграмма вариантов использования (use case) |
Описать, какие сущности есть в системе и каковы взаимосвязи между ними | Диаграмма классов (class) |
Описать ЖЦ объекта конкретного класса | Диаграмма состояний (state) |
Описать, как выполняется процесс в системе в рамках конкретного варианта использования | Диаграмма деятельности (activity) |
Описать, как объекты взаимодействуют друг с другом (какими сигналами обмениваются) в рамках конкретного варианта использования | Диаграмма последовательности (sequence) |
Описать программную архитектуру системы |
|
Однако, несмотря на детальное описание многих аспектов, инструментарий 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 может выглядеть так:
А DFD-диаграмма контекстного уровня будет выглядеть таким образом:
Наконец, UML-диаграмму вариантов использования (use case) верхнего уровня можно представить так:
- диаграммы контейнеров (Container) разбивают систему на взаимосвязанные контейнеры – приложения и базы/хранилища данных. Также контейнером в С4 считается файловая система, программный скрипт, бессерверная функция и прочие макро-компоненты, нужные для работы описываемой системы. Суть этой диаграммы аналогична совмещенной UML-диаграмме компонентов и развертывания. Для нашей системы диаграмма контейнеров C4 может выглядеть так:
Совмещенная UML-диаграмма развертывания для системы с классической трехзвенной архитектурой может выглядеть так:
- Диаграммы компонентов (Component): разделяют контейнеры на взаимосвязанные компоненты и отражают их связи с другими контейнерами или системами. Поскольку эта схема составляется для разработчиков, в качестве компонентов в C4 могут быть контроллеры, программные модули и пр. макро-элементы кода. В UML этот уровень может быть отображен диаграммой пакетов или компонентов.
- Диаграммы кода (Code) предоставляют дополнительные сведения о дизайне архитектурных элементов, которые могут быть сопоставлены с программным кодом. Здесь могут быть представлены UML-диаграммы классов или ERD-диаграммы, иллюстрирующие структуру базы данных.
Дополнительно к базовым 4-м схемам С4 также добавлены диаграмма системного ландшафта, динамическая и развертывания. Их практический смысл и аналоги в виде UML-диаграмм показаны в следующей таблице.
Схема | Смысл | UML-диаграмма |
Основные схемы модели C4 | ||
Схема системного контекста | Какие возможности система предоставляет акторам (пользователям и внешним системам) | вариантов использования (use case) бизнес-уровня |
Схема контейнеров | показывает высокоуровневую форму архитектуры ПО и распределение обязанностей между узлами, в т.ч. основные технологические решения и взаимодействие контейнеров |
|
Схема компонентов | на уровне отдельно взятого контейнера показывает из каких компонентов он состоит, каковы их обязанности и детали технологии/реализации |
|
Схема кода | на уровне отдельно взятого компонента показывает его классы, их атрибуты, методы и интерфейсы | классов (class) |
Дополнительные схемы модели C4 | ||
Схема системного ландшафта | расширяет статическое представление C4 для одной программной системы, включая контекстное окружение, например, как здесь | вариантов использования (use case) бизнес-уровня |
Динамическая схема | показывает, как элементы статической модели взаимодействуют во время выполнения для реализации истории пользователя, варианта использования, функции | последовательности (sequence) |
Схема развертывания | показывает, как программные системы или контейнеры в статической модели сопоставляются с узлами развертывания физической, контейнерной или виртуальной инфраструктуры или среды выполнения | развертывания (deployment) |
Основы архитектуры и интеграции информационных систем
Код курса
OAIS
Ближайшая дата курса
5 ноября, 2024
Продолжительность
16 ак.часов
Стоимость обучения
36 000 руб.
Таким образом, С4 позволяет описать архитектуру программной системы на разных уровнях абстракции без привязки к строгим формальным правилам, в отличие от UML или других нотаций. Поэтому в качестве инструментального средства можно использовать практически любой редактор схем (MS Visio, Draw.io), а также специализированные среды моделирования (Enterprise Architect, Archi), о которых мы частично писали здесь. также в новой статье я рассказываю про замечательный веб-сервис icepanel.io, который позволяет спроектировать комплексную модель архитектуры ПО в нотации С4. Это пригодится аналитику не только в задачах описания существующих систем, но и при проектировании нового ПО, включая этап разработки требований и их спецификации в виде технического задания (ТЗ). Однако, описать бизнес-архитектуру приложения C4 не поможет. О том, что это такое и каким образом можно решить данную задачу, мы поговорим в следующей статье.
А научиться применять все рассмотренные техники на практике вы сможете на курсах Школы прикладного бизнес-анализа в нашем лицензированном учебном центре обучения и повышения квалификации системных и бизнес-аналитиков в Москве:
- Основы архитектуры и интеграции информационных систем
- UML для бизнес-аналитика: основы ООП и разработка моделей
- Разработка ТЗ на информационную систему по ГОСТ и SRS
Источники