Документация / PlantUML
C4, ArchiMate и сети
Архитектурные нотации подключаются из стандартной библиотеки PlantUML — строкой !include <…>.
Подключать собственные файлы и адреса в интернете нельзя, стандартная библиотека доступна полностью.
Модель C4
C4 описывает архитектуру на четырёх уровнях: контекст системы, контейнеры, компоненты и код. Для каждого уровня есть свой файл библиотеки:
| Уровень | Подключение |
|---|---|
| Контекст | !include <C4/C4_Context> |
| Контейнеры | !include <C4/C4_Container> |
| Компоненты | !include <C4/C4_Component> |
| Динамическая диаграмма | !include <C4/C4_Dynamic> |
| Развёртывание | !include <C4/C4_Deployment> |
Контекст системы
@startuml
!include <C4/C4_Context>
title Контекст системы «Интернет-магазин»
Person(buyer, "Покупатель", "Выбирает и оплачивает товары")
System(shop, "Интернет-магазин", "Каталог, корзина, заказы")
System_Ext(bank, "Платёжный шлюз", "Приём платежей")
System_Ext(mail, "Почтовый сервис", "Письма клиентам")
Rel(buyer, shop, "Оформляет заказы", "HTTPS")
Rel(shop, bank, "Проводит платежи", "REST")
Rel(shop, mail, "Отправляет письма", "SMTP")
@enduml
Контейнеры
@startuml
!include <C4/C4_Container>
Person(buyer, "Покупатель")
System_Boundary(shop, "Интернет-магазин") {
Container(spa, "Веб-приложение", "React", "Интерфейс магазина")
Container(api, "API", "Java, Spring Boot", "Бизнес-логика")
ContainerDb(db, "База данных", "PostgreSQL", "Заказы и каталог")
ContainerQueue(bus, "Шина событий", "Kafka")
}
Rel(buyer, spa, "Использует", "HTTPS")
Rel(spa, api, "Вызывает", "JSON/HTTPS")
Rel(api, db, "Читает и пишет", "JDBC")
Rel(api, bus, "Публикует события")
SHOW_LEGEND()
@enduml
Основные элементы: Person, Person_Ext, System, System_Ext, SystemDb, Container, ContainerDb,
ContainerQueue, Component, Boundary, System_Boundary, Container_Boundary; связи — Rel, Rel_U,
Rel_D, Rel_L, Rel_R (с направлением), BiRel. SHOW_LEGEND() добавляет легенду, LAYOUT_LEFT_RIGHT()
меняет направление раскладки.
ArchiMate
Элементы ArchiMate задаются словом archimate с цветом слоя и стереотипом типа элемента.
@startuml
archimate #Business "Клиент" as client <<business-actor>>
archimate #Business "Оформление заказа" as process <<business-process>>
archimate #Application "Сервис заказов" as app <<application-component>>
archimate #Technology "Сервер БД" as node <<technology-node>>
client -right-> process
process -down-> app : использует
app -down-> node : развёрнут на
@enduml
Слои: #Business, #Application, #Technology, #Motivation, #Strategy, #Implementation, #Physical.
Для полного набора значков и макросов связей подключите !include <archimate/Archimate>.
Сетевые диаграммы
Диаграмма сети описывается между @startnwdiag и @endnwdiag: сети, узлы и их адреса.
@startnwdiag
nwdiag {
network dmz {
address = "10.0.1.0/24"
web01 [address = "10.0.1.10"];
web02 [address = "10.0.1.11"];
}
network internal {
address = "10.0.2.0/24"
web01 [address = "10.0.2.10"];
app01 [address = "10.0.2.20"];
db01 [address = "10.0.2.30", description = "PostgreSQL"];
}
}
@endnwdiag
Значки стандартной библиотеки
В библиотеке есть наборы значков облачных провайдеров и технологий (например, <awslib/…>, <azure/…>,
<tupadr3/…>, <kubernetes/…>). Полный список — в разделе Standard Library на plantuml.com.
Похожие инструменты
Обновлено: 30 сентября 2026 г.
