Что такое диаграмма ArchiMate?
Диаграмма ArchiMate — это визуализация моделирования архитектуры предприятия на высоком уровне, отслеживающая стратегии, бизнес-процессы, программные приложения и физическую инфраструктуру данных в организации. В отличие от традиционных диаграмм UML, которые глубоко анализируют выполнение программного кода, ArchiMate помогает бизнес-аналитикам, архитекторам решений и CTO визуализировать, как высокие корпоративные цели зависят от лежащих в основе ИТ-систем.
Хотя базовый PlantUML содержит встроенные примитивы, для разработки производственных архитектур предприятия требуется официальное расширение стандартной библиотеки Archimate-PlantUML стандартной библиотеки. Используя декларативные макросы и стандартизированные цветовые полосы, она позволяет поддерживать согласованные модели, соответствующие TOGAF. С помощью VPasCode, вы можете полностью определять свои архитектурные блоки и связующие элементы в текстовом виде, позволяя движку динамически обрабатывать схемы цветов и выравнивание.
Основное руководство по синтаксису: элементы и конструкции
Чтобы безопасно использовать официальное расширение ArchiMate в PlantUML, необходимо включить файл стандартной библиотеки, правильно реализовать макросы категорий, корректно обрабатывать вложенные блоки и применять явные структурные отношения.
1. Инициализация стандартной библиотеки ArchiMate
Чтобы активировать официальные макросы, цветовые палитры и структурные стереотипы, ваш блок скрипта должен импортировать файл стандартной библиотеки непосредственно под тегом запуска. Вы можете дополнительно применить одну из официальных тем для обеспечения высокой контрастности отображения:
@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>
2. Объявление элементов с использованием макросов категорий
Стандартная библиотека упрощает создание элементов, обертывая встроенные формы в макросы с префиксами категорий. Элементы следуют строгому формату Категория_ИмяЭлемента(ИД, "Метка") для именования. Префикс определяет структурный уровень и автоматически вставляет соответствующий цветовой токен:
- Стратегия и мотивация (фиолетовый):
Мотивация_ЗаинтересованнаяСторона(),Стратегия_Способность() - Бизнес-уровень (желтый):
Бизнес_Актор(),Бизнес_Процесс(),Бизнес_Услуга() - Уровень приложений (синий):
Application_Component(),Application_Service() - Слой технологии (зеленый):
Technology_Node(),Technology_SystemSoftware()
!include <archimate/Archimate>
Motivation_Stakeholder(CEO, "Генеральный директор")
Application_Component(CRM, "Система CRM Salesforce") 
3. Определение границ групп и структурной вложенности
Карты предприятия в значительной степени полагаются на визуальное включение для представления владения или изоляции во время выполнения. Вы можете создавать ограничивающие папки с помощью макросовGroup() или Grouping()макросов, или вкладывать элементы друг в друга с помощью фигурных скобок:
!include <archimate/Archimate>
Grouping(AppSubsystem, "Набор инструментов управления клиентами") {
Application_Component(AuthMod, "Модуль токенов OAuth")
Application_Service(UserReg, "API регистрации пользователей")
} 
4. Отображение стандартизированных корпоративных связей
ArchiMate требует строгого словаря для связей. Вместо простых стрелок стандартная библиотека предлагает специализированные макросы отношений, формат которых:Rel_RelationType(От_ID, К_ID, "Метка"). Чтобы принудительно настроить ориентацию, вы можете добавить пространственные направляющие указания (например,_Up, _Down, _Left, или _Право):
!include <archimate/Archimate>
Motivation_Stakeholder(CEO, "Генеральный директор")
Application_Component(CRM, "Система CRM Salesforce")
Grouping(AppSubsystem, "Набор компонентов управления клиентами") {
Application_Component(AuthMod, "Модуль токенов OAuth")
Application_Service(UserReg, "API регистрации пользователей")
}
' Примеры структурных и поведенческих связей
Rel_Realization(UserReg, AuthMod, "Реализует безопасность")
Rel_Serving_Right(CRM, CEO, "Предоставляет панели мониторинга") 
Рекомендации по построению диаграмм многоуровневой архитектуры
- Выделяйте отдельные уровни: Организуйте свои скрипты последовательно сверху вниз (Мотивация > Бизнес > Приложение > Технология), чтобы сделать архитектурные схемы понятными для заинтересованных сторон.
- Используйте короткие идентификаторы компонентов: Держите внутренние строки отслеживания макросов короткими (например, используйте
AP_01илиSrv_Auth), оставляя описательный, ориентированный на клиента текст для параметра метки в двойных кавычках. - Обеспечьте явное направление на межуровневых соединениях: Траектории размещения могут непредсказуемо изменяться при переходе через структурные границы. Использование дирекционных макросов, таких как
Rel_Access_Down()гарантирует, что потоки данных плавно перемещаются вниз при переходе через границы уровней.
Реальные примеры PlantUML с использованием ArchiMate
Пример 1: Классическое отображение стратегических возможностей (уровни мотивации и стратегии)
Этот функциональный чертеж документирует стратегический уровень организации, показывая, как корпоративные заинтересованные стороны согласуются с бизнес-возможностями и достигнутыми техническими результатами.
@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>
title Карта стратегической ориентации предприятия
Motivation_Stakeholder(CFO, "Главный финансовый директор")
Motivation_Driver(CostEfficiency, "Снижение операционных расходов")
Strategy_Capability(AutomatedBilling, "Автоматизация выставления счетов в корпоративной среде")
Business_Process(InvoiceRun, "Сверка бухгалтерских книг в конце месяца")
' Связи стратегических зависимостей
Rel_Association(CFO, CostEfficiency, "Стремится улучшить")
Rel_Influence(AutomatedBilling, CostEfficiency, "Положительно влияет")
Rel_Realization(InvoiceRun, AutomatedBilling, "Реализует возможность")
@enduml 
Разбор синтаксиса: При выполнении фиолетовых стратегических макросов движок четко отображает элементы. Четкие макросы отношений связывают человека-заинтересованного с организационными мотивациями, обеспечивая четкую согласованность корпоративной стратегии с базовыми поведенческими действиями по реализации.
Пример 2: Полнофункциональная трехуровневая корпоративная система (межуровневая сеть)
Этот продвинутый чертеж демонстрирует всеобъемлющую архитектурную топологию с пересечением слоев. Он отображает операционный бизнес-процесс, проходящий через поддерживающие приложения микросервисов до базового хоста облачной инфраструктуры.
@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>
title Выравнивание многоуровневой архитектуры приложения
Grouping(BizLayer, "Бизнес-операции") {
Business_Actor(Agent, "Агент поддержки клиентов")
Business_Process(Ticketing, "Обработка заявки на корпоративную поддержку")
}
Grouping(AppLayer, "Экосистема приложений") {
Application_Service(TicketSvc, "API интеграции с Zendesk")
Application_Component(DataRouter, "Движок обработки событий")
}
Grouping(TechLayer, "Уровень инфраструктуры") {
Technology_SystemSoftware(K8sCluster, "Кластер оркестрации Kubernetes")
Technology_Node(CloudVM, "Вычислительная цель AWS EC2 m6i.xlarge")
}
' Установите плавные межслоевые связи с помощью направляющих указаний
Rel_Assignment(Agent, Ticketing, "Выполняет ежедневно")
Rel_Serving_Down(TicketSvc, Ticketing, "Питает веб-интерфейс рабочего стола")
Rel_Composition(DataRouter, TicketSvc, "Принимает вебхуки от")
Rel_Realization_Down(K8sCluster, DataRouter, "Хостит контейнер приложения")
Rel_Composition_Down(CloudVM, K8sCluster, "Предоставляет основной гипервизор на чистом железе")
@enduml 
Разбор синтаксиса: Этот чертеж подчеркивает силу структурированного Grouping компонентов. Элементы автоматически получают различные цветовые оттенки, специфичные для слоя (желтый, синий, зеленый), в зависимости от их макросемейств. Переопределения направленных отношений, такие как Rel_Serving_Down и Rel_Realization_Down заставляют зависимости плавно распространяться вниз по сетке предприятия.