Здесь можно ознакомиться с полезными дополнениями, которые можно использовать в любой из поддерживаемых диаграмм:
Рассмотрим несколько примеров:
Заметьте, что Вы можете отключить тени, используя команду skinparam shadowing false .
Прецеденты заключаются в две скобки (потому что две скобки выглядят как овал).
Вы можете использовать usecase для создания прецедента.
Также, Вы можете создать псевдоним, используя ключевое слово as . Этот псевдоним позже можно будет использовать для определения связей между элементами.
🎉 Copied!
|
@startuml
(Один прецедент)
(Другой прецедент) as (UC2)
usecase Прецедент3
usecase (Последний\nпрецедент) as UC4
@enduml
|
Примечание переводчика:
я не нашел одного устоявшегося варианта перевода для этого термина. Встречаются варианты: Актор , Роль или Участник . Далее по тексту буду использовать слово Актор .
Определить актора можно просто указав его название между двумя вертикальными двоеточиями.
Другой вариант определения актора - это использование ключевого слова actor .
Также, при определении актора можно указать для него короткий псевдоним, который затем можно будет использовать при определении связей между элементами. Это делается при помощи ключевого слова as .
Пример ниже показывает разные варианты определения акторов.
🎉 Copied!
|
@startuml
:Первый Actor:
:Второй\nactor: as Участник2
actor Участник3
actor :Последний actor: as Участник4
@enduml
|
Вы можете изменить стиль стиль отображения актора. Доступны следующие варианты:
- Человечек из палочек (по умолчанию);
- В виде бюста, команда
skinparam actorStyle awesome ;
- Контур человечка, команда
skinparam actorStyle hollow .
Человечек из палочек (по умолчанию)
🎉 Copied!
|
@startuml
:Пользователь: --> (Use)
"Главный админ" as Admin
"Использование приложения" as (Use)
Admin --> (Управление приложением)
@enduml
|
В виде бюста
🎉 Copied!
|
@startuml
skinparam actorStyle awesome
:Пользователь: --> (Use)
"Главный админ" as Admin
"Использование приложения" as (Use)
Admin --> (Управление приложением)
@enduml
|
[Ссылка на QA-10493]
Контур человечка
🎉 Copied!
|
@startuml
skinparam actorStyle Hollow
:Пользователь: --> (Use)
"Главный админ" as Admin
"Использование приложения" as (Use)
Admin --> (Управление приложением)
@enduml
|
[ссылка на PR#396]
Если Вам нужно расположить описание в несколько строк, Вы можете использовать кавычки.
Также Вы можете использовать следующие разделители: -- , .. , == и __ . Внутрь этих разделителей можно вставлять заголовки.
🎉 Copied!
|
@startuml
usecase UC1 as "Вы можете использовать
несколько строчек для описания вашего прецедента.
Также, Вы можете использовать разделители:
--
Можно использовть несколько разных разделителей одновременно.
==
И еще Вы можете добавлять в разделители заголовки:
..ЗАКЛЮЧЕНИЕ..
Это позволяет делать очень большие и
развернутые описания."
@enduml
|
Чтобы сгруппировать акторов или прецеденты, можно использовать пакеты.
🎉 Copied!
|
@startuml
actor Гость as g
package Специалисты {
actor "Шеф повар" as c
actor "Ресторанный критик" as fc
}
package Ресторан {
usecase "Есть" as UC1
usecase "Платить" as UC2
usecase "Пить" as UC3
usecase "Составлять отзыв" as UC4
}
fc --> UC1
fc --> UC2
fc --> UC3
fc --> UC4
g --> UC1
g --> UC2
g --> UC3
@enduml
|
Для изменения венешнего вида пакета можно воспользоваться ключевым словом rectangle используя ег овместо ключевого слова package .
🎉 Copied!
|
@startuml
left to right direction
actor "Ресторанный критик" as fc
rectangle Ресторан {
usecase "Есть" as UC1
usecase "Платить" as UC2
usecase "Пить" as UC3
usecase "Составлять отзыв" as UC4
}
fc --> UC1
fc --> UC2
fc --> UC3
fc --> UC4
@enduml
|
Для создания связей между акторами и прецедентами используется стрелка --> .
Чем больше знаков тире - в стрелке, тем она длиннее.
Вы можете добавить заметку на стрелку используя символ : после определения стрелки.
В этом примере можно заметить, что Пользователь не определён заранее и по умолчанию определяется как актор.
🎉 Copied!
|
@startuml
Пользователь -> (Старт)
Пользователь --> (Использование приложения) : Небольшая заметка
:Главный админ: ---> (Использование приложения) : Еще одна\nнебольшая\nзаметка
@enduml
|
Если актор или прецедент являются обобщением других актора или прецедента, Вы можете использовать символ <|-- .
🎉 Copied!
|
@startuml
:Галавный админ: as Admin
(Работа с приложением) as (Use)
Пользователь <|-- Admin
(Работа) <|-- (Use)
@enduml
|
Вы можете использовать ключевые слова note left of , note right of ,
note top of , note bottom of чтобы создать и расположить заметку относительно какого-либо элемента.
Заметка так же может быть создана с помощью ключевого слова note , а затем прикреплена к какому-либо элементу при помощи символа .. .
🎉 Copied!
|
@startuml
:Главный админ: as Admin
(Работа с приложением) as (Use)
Пользователь -> (Работа)
Пользователь --> (Use)
Admin ---> (Use)
note right of Admin : Это пример заметки.
note right of (Use)
Заметки могут занимать
несколько строчек
end note
note "Эта заметка будет указывать\nсразу на несколько элементов." as N2
(Работа) .. N2
N2 .. (Use)
@enduml
|
Вы можете добавить названия шаблонов когда определяете акторов или прецеденты используя символы << и >> .
🎉 Copied!
|
@startuml
Пользователь << Человек >>
:Основная база данных: as MySql << Приложение >>
(Start) << One Shot >>
(Работа с приложением) as (Use) << Основное действие >>
Пользователь -> (Start)
Пользователь --> (Use)
MySql --> (Use)
@enduml
|
По умолчанию, связи между элементами задаются при помощи двух тире -- для сплошных линий или при помощи двух точек .. для пунктирных линий и ориентированны вертикально. Можно указать, что связь необходимо изобразить горизонтально, для этого необходимо использовать одиночное тире - для сплошной линии или одну точку . для штриховой линии.
🎉 Copied!
|
@startuml
:Пользователь: --> (Прецедент 1)
:Пользователь: -> (Прецедент 2)
@enduml
|
Также можно изменить направление связи, переместив символ окончания стрелки на другую сторону:
🎉 Copied!
|
@startuml
(Прецедент 1) <.. :Пользователь:
(Прецедент 2) <. :Пользователь:
@enduml
|
Можно управлять направлением связи добавляя ключевые слова left , right , up
или down внутрь стрелки:
🎉 Copied!
|
@startuml
:Пользователь: -left-> (Лево)
:Пользователь: -right-> (Право)
:Пользователь: -up-> (Верх)
:Пользователь: -down-> (Низ)
@enduml
|
Можно использовать более короткий синтаксис используя только первый символ указанных выше ключевых слов, например -d- или -do- вместо полного слова -down- .
Правда злоупотреблять такой короткой записью не стоит, так как GraphViz обычно дает более хороший результат, когда такая короткая запись НЕ используется.
И наконец, можно поменять все направления местами используя ключевое слово left to right direction . Для этого можно сравнить предыдущую диаграмму с диаграммой, представленной ниже:
🎉 Copied!
|
@startuml
left to right direction
:Пользователь: -left-> (Лево)
:Пользователь: -right-> (Право)
:Пользователь: -up-> (Верх)
:Пользователь: -down-> (Низ)
@enduml
|
Ключевое слово newpage используется для разделения диаграмм на несколько страниц или изображений.
🎉 Copied!
|
@startuml
:Актор1: --> (Прецедент1)
newpage
:Актор2: --> (Прецедент2)
@enduml
|
Общее поведение по умолчанию - построение диаграмм сверху вниз.
🎉 Copied!
|
@startuml
'default
top to bottom direction
Актор1--> (Прецедент 1)
Актор2--> (Прецедент 2)
@enduml
|
Вы можете изменить направление на слева направо используя команду left to right direction . Часто результат с таким направлением выглядит лучше.
🎉 Copied!
|
@startuml
left to right direction
Актор1--> (Прецедент 1)
Актор2--> (Прецедент 2)
@enduml
|
Вы можете использовать команду skinparam для изменения шрифтов и цветов диаграммы.
Вы можете использовать данную команду :
Вы можете задать цвет или шрифт для шаблонов, в которые объединены акторы или прецеденты.
🎉 Copied!
|
@startuml
skinparam handwritten true
skinparam usecase {
BackgroundColor DarkSeaGreen
BorderColor DarkSlateGray
BackgroundColor<< Работа >> YellowGreen
BorderColor<< Работа >> YellowGreen
ArrowColor Olive
ActorBorderColor black
ActorFontName Courier
ActorBackgroundColor<< Человек >> Gold
}
Пользователь << Человек >>
:Основная база данных: as MySql << Приложение >>
(Start) << One Shot >>
(Работа с приложением) as (Use) << Работа >>
Пользователь -> (Start)
Пользователь --> (Use)
MySql --> (Use)
@enduml
|
🎉 Copied!
|
@startuml
left to right direction
skinparam packageStyle rectangle
actor Заказчик
actor Менеджер
rectangle Заказ {
Заказчик -- (заказ)
(заказ) .> (оплата) : включает
(консультация) .> (заказ) : дополняет
(заказ) -- Менеджер
}
@enduml
|
Вы можете добавить символ / для того, чтобы создать Бизнес прецеденты или акторов.
Бизнес прецедент
🎉 Copied!
|
@startuml
(Один прецедент)/
(Другой прецедент)/ as (UC2)
usecase/ Пр3
usecase/ (Последний\nпрецедент) as UC4
@enduml
|
Бизнес актор
🎉 Copied!
|
@startuml
:Один Участник:/
:Другой\nучастник:/ as Man2
actor/ Участник
actor/ :Последний участник: as Person1
@enduml
|
[Ref. QA-12179]
Вы можете изменить цвет или стиль индивидуально для каждой стрелочки используя следующий встраиваемый синтаксис:
#color;line.[bold|dashed|dotted];text:color
где:
# - начало режима конфигурирования,
color - цвет стрелки,
; - разделитель между конфигурационными параметрами,
line.type - тип линии. type может принимать значения: bold - жирная, dashed - штриховая, dotted - пунктирная,
text:color - цвет текста заметки на линии.
🎉 Copied!
|
@startuml
actor foo
foo --> (bar) : обычная
foo --> (bar1) #line:red;line.bold;text:red : красная, жирный
foo --> (bar2) #green;line.dashed;text:green : зеленая, штриховой
foo --> (bar3) #blue;line.dotted;text:blue : синяя, пунктирный
@enduml
|
[Ref. QA-3770 and QA-3816]
[See similar feature on deployment-diagram or class diagram]
Вы можете изменить цвет или стиль индивидуально для каждого элемента используя следующий встраиваемый синтаксис:
#[color|back:color];line:color;line.[bold|dashed|dotted];text:color
где:
# - начало режима конфигурирования,
color или back:color - цвет фона элемента,
; - разделитель между конфигурационными параметрами,
line.color - цвет контура элемента,
line.type - тип линии. type может принимать значения: bold - жирная, dashed - штрихоавя, dotted - пунктирная,
text:color - цвет текста элемента.
🎉 Copied!
|
@startuml
actor a
actor b #pink;line:red;line.bold;text:red
usecase c #palegreen;line:green;line.dashed;text:green
usecase d #aliceblue;line:blue;line.dotted;text:blue
@enduml
|
[Ref. QA-5340 and adapted from QA-6852]
Simple example
🎉 Copied!
|
@startuml
allowmixing
actor Actor
usecase Usecase
json JSON {
"fruit":"Apple",
"size":"Large",
"color": ["Red", "Green"]
}
@enduml
|
[Ref. QA-15481]
For another example, see on JSON page.
|
|