Документация / 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 г.