Архитектура систем для аналитиков: ТОП-5 нотаций моделирования архитектуры


С каждым годом архитектура программных систем становится сложнее. И, чтобы успешно ориентироваться в этом мире, нужны карты — схемы и модели систем.

Вы когда-нибудь задумывались, как бы выглядела схема архитектуры такой гигантской системы, как Amazon или Google Cloud? Представьте все их системы, сервисы, микросервисы, базы данных, мобильные приложения, виджеты, сайты. Как показать это все в одной схеме? Или может быть вы сейчас стоите перед задачей создать схему для своего стартапа или корпоративного приложения, и не знаете, какую нотацию моделирования выбрать?

Это краткое руководство по основным нотациям моделирования архитектуры, среди которых вы сможете выбрать именно ту, которая подойдет для вашего проекта.


1. Нотация C4 

Нотация моделирования C4 - это подход к визуализации архитектуры программного обеспечения, созданный Саймоном Брауном. Появился он в результате чтения лекций по архитектуре на курсе.

C4 состоит из четырех уровней представления:

1. Context: высокоуровневый взгляд на систему. Показывает приложения и пользователей, без технических деталей.

2. Container: углубляет представление системы, описывая основные части, или "контейнеры" (backend-приложение, веб-приложение, мобильного приложение, базы данных, файловая система), которые входят в состав системы. На этом уровне определены функции каждого контейнера, технологические решения по языкам программирования, протоколы взаимодействия.

3. Component: детализирует каждый контейнер, описывая его компоненты и их взаимодействие.

4. Code: наиболее детальный уровень, описывающий внутреннюю структуру каждого компонента. Не обязателен.

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

Инструменты для создания диаграмм C4:

  • Draw.io имеет встроенный набор компонентов для C4 (Кнопка "+ More Shapes" слева, внизу экрана; затем раздел Software Architecture).

Это наиболее распространненый сегодня корпоративный стандарт проектирования архитектуры за счет своей наглядности и структуры.

C4 Context:

C4 Container: 

C4 Component: 


2. Archimate

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

В нотации выделяют следующие слои моделирования архитектуры предприятия:

Стратегия:

  • Основа для определения и артикуляции бизнес-целей и направлений.
  • Основные элементы: цели, принципы, требования, стейкхолдеры.

Бизнес:

  • Описывает организационную структуру, ключевые бизнес-процессы, продукты и услуги.
  • Основные элементы: актеры, роли, процессы, продукты, услуги.

Приложения:

  • Представляет функциональные возможности системы в форме приложений и их компонентов.
  • Основные элементы: приложения, модули, интерфейсы, сервисы.

Технологии:

  • Охватывает программное и аппаратное обеспечение, а также среды и инфраструктуру.
  • Основные элементы: программное обеспечение, аппаратные компоненты, коммуникационные каналы, серверы.

Производство:

  • Основывается на реализации решений на предыдущих уровнях.
  • Основные элементы: производственные единицы, ресурсы, мощности, материалы.

Реализация и переход:

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

Archimate предоставляет многоуровневую, гибкую и глубокую систему для описания архитектуры систем. Поддержка от стратегии до реализации делает его неоценимым инструментом для Enterprise-архитекторов, стремящихся к целостности и эффективности проработки решений.

Инструменты для создания диаграмм Archimate:

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

Используется во многих компаниях как стандарт.


3. 4+1 Architectural View Model

4+1 - это архитектурная модель, предложенная Филиппом Крукшенком (Philippe Kruchten) для "представления" архитектуры системы с помощью пяти различных видов или проекций. Эти виды адресуют различные интересы стейкхолдеров и помогают им понять ключевые аспекты системы.

Пять видов модели 4+1:

  1. Логическое представление (Logical View): Этот вид концентрируется на функциональности, предоставляемой системой пользователям. Он представляет собой набор классов, интерфейсов и их взаимодействий.

  2. Процессное представление (Process View): Здесь рассматривается поведение системы во время выполнения, а также параллелизм и синхронизация компонентов.

  3. Процессное представление (Development View): Он представляет собой организацию реального кода в системе. Основное внимание уделяется модульности и масштабируемости.

  4. Физическое представление (Physical View): Этот вид рассматривает систему с точки зрения инфраструктуры, на которой она будет работать. Он рассматривает размещение, коммуникацию и развертывание компонентов.

  5. Представление сценариев (Scenarios or Use Case View): Этот "плюс один" вид служит для валидации и иллюстрации других четырех видов. Сценарии представляют собой реальные примеры использования системы и позволяют убедиться, что все интересы стейкхолдеров учтены.

Почему это важно для разработчиков и архитекторов?

Модель 4+1 предоставляет системный и структурированный способ представления архитектуры системы. Она помогает системным аналитикам, разработчикам, архитекторам и менеджерам проектов обеспечить согласованное и полное понимание системы. Благодаря разделению на различные виды, можно глубже погрузиться в каждую специфическую область без необходимости рассматривать систему в целом, что делает процесс проектирования и разработки более управляемым и эффективным.

Пример диаграммы: Логический вид (Logical View)

Элементы нотации можно найти в Draw.io.



4. SysML (Systems Modeling Language)

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

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

На официальном сайте можно найти документацию по последней актуальной версии 1.6 (от 2019 г.) описания нотации на английском языке.

Инструменты, которые поддерживают UML, подойдут для создания диаграмм SysML.



5. AADL (Architecture Analysis & Design Language)

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

Основные характеристики AADL:

  1. Моделирование программного и аппаратного обеспечения: AADL позволяет проектировать как отдельные компоненты программного обеспечения, так и физическую архитектуру, в которой они работают.

  2. Анализ производительности и времени отклика: С помощью AADL можно проводить анализ, чтобы удостовериться, что система будет отвечать на запросы в установленные временные рамки.

  3. Поддержка безопасности: AADL предоставляет инструменты для анализа и управления рисками, связанными с ошибками или отказами в системе.

  4. Графические и текстовые представления: AADL поддерживает как текстовые, так и графические представления, что позволяет разработчикам выбирать наиболее подходящий формат для их нужд.

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



Заключение

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

Также хорошим решением является Archimate, особенно, когда важно установить связь логики системы и архитектуры, и это сразу не очевидно, чтобы представить в нотации C4.

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


Екатерина Ананьева,
Основатель IT-школы системного анализа 

и проектирования GetAnalyst

21 августа 2023

Контакты

+7 (499) 686-15-46

Лицензия №Л035-01255-50/01366872 от 28.08.2024

*Instagram — запрещенная на территории РФ организация

Практический опыт здесь, 2021-2024

Мы используем файлы cookie, для персонализации сервисов и повышения удобства пользования сайтом. Если вы не согласны на их использование, поменяйте настройки браузера.