classDiagram
Animal <|-- Duck
Animal <|-- Fish
Animal <|-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}

UML - язык графического описания для моделирования бизнес-процессов и организационных структур.

Vehicle <|-- Car. Это характеризует два класса Vehicle и Car с их отношениями.
Имя класса должно состоять из буквенно-цифровых символов (допускается использование юникода) и символов подчеркивания.
() или нет. Те записи, которые имеют круглые скобки (), рассматриваются как функции/методы, а другие - как атрибуты.:, за которым следует имя участника. Используется для определения одного участника. Например:{}, где участники группируются в фигурных скобках. Подходит для определения нескольких элементов одновременно. Например:


List<int>. Выполнить можно, заключив тип в ~ (тильда).List<List<int>>) в настоящее время не поддерживаются.
+ - общедоступный;
- - частный;
# - защищенный;
~ - комплекс/внутренний.
Примечание: Можно включить дополнительные классификаторы в определение метода, добавив следующие обозначения в конце метода, т.е. после круглых скобок ():
* - абстрактный, например, someAbstractMethod()*
$ - статичный, например, someStaticMethod()$
Примечание: Вы также можете включить дополнительные классификаторы в определение поля, добавив следующие обозначения в конец имени поля.
$ - статичный, например, String someField$
[classA][Arrow][ClassB]
| Тип | Описание |
|---|---|
| <|-- | Наследование |
| *-- | Композиция (состав) |
| o-- | Объединение (агрегация) |
| --> | Взаимосвязь (ассоциация) |
| -- | Линия (сплошная) |
| ..> | Пунктирная стрелка (зависимость) |
| ..|> | Пунктирная стрелка с большим наконечником |
| .. | Пунктирная линия |
classDiagram
classA <|-- classB
classC *-- classD
classE o-- classF
classG <-- classH
classI -- classJ
classK <.. classL
classM <|.. classN
classO .. classP

classDiagram
classA --|> classB : Inheritance
classC --* classD : Composition
classE --o classF : Aggregation
classG --> classH : Association
classI -- classJ : Link(Solid)
classK ..> classL : Dependency
classM ..|> classN : Realization
classO .. classP : Link(Dashed)

[classA][Arrow][ClassB]:LabelText
classDiagram
classA <|-- classB : implements
classC *-- classD : composition
classE o-- classF : aggregation

classDiagram
Animal <|--|> Zebra
[Relation Type][Link][Relation Type]
Где тип взаимосвязи может быть одним из представленных ниже:
| Тип | Описание |
|---|---|
| <| | Наследование |
| * | Композиция |
| o | Объединение (агрегация) |
| > | Взаимосвязь (ассоциация) |
| < | Взаимосвязь (ассоциация) |
| |> | Реализация |
Также связь может быть одной из:
| Тип | Описание |
|---|---|
| -- | Сплошная (непрерывная) связь |
| .. | Пунктирная связь |
1 - только 1
0..1 - 0 или 1
1..* - 1 или несколько
* - много
n - определенное количество (где n>1)
0..n - от нуля до n (где n>1)
1..n - от 1 до n (где n>1)
[classA] "cardinality1" [Arrow] "cardinality2" [ClassB]:LabelText

classDiagram
%% This whole line is a comment classDiagram class Shape <<interface>>
class Shape{
<<interface>>
noOfVertices
draw()
}
direction, чтобы задать направление, в котором будет отображаться диаграмма, как в примере ниже:
Ориентация диаграммы
Вы можете выбрать необходимую ориентацию диаграммы. Вот возможные варианты настройки:
TD/TB - сверху-вниз;
BT - снизу-вверх;
RL - справа-налево;
LR - слева-направо.
Примечание: Эта функция отключена при использовании securityLevel='strict' и включена при использовании securityLevel='loose'.
action className "reference" "tooltip"
click className call callback() "tooltip"
click className href "url" "tooltip"
classDiagram
class Shape
link Shape "https://www.github.com" "This is a tooltip for a link"
class Shape2
click Shape2 href "https://www.github.com" "This is a tooltip for a link"
classDiagram
class Shape
callback Shape "callbackFunction" "This is a tooltip for a callback"
class Shape2
click Shape2 call callbackFunction() "This is a tooltip for a callback"
Примечание: функциональность всплывающих подсказок и возможность ссылки на URL-адреса доступны с версии 0.5.2.
<style>
.cssClass > rect{
fill:#FF0000;
stroke:#FFFF00;
stroke-width:4px;
}
</style>
cssClass "nodeId1" cssClass;
cssClass "nodeId1,nodeId2" cssClass;
:::, как показано ниже:classDiagram
class Animal:::cssClass
или
classDiagram
class Animal:::cssClass {
-int sizeInFeet
-canEat()
}
Примечание: css-стили не могут быть добавлены с помощью этого сокращенного метода одновременно с инструкцией relation
Примечание: Из-за ограничений, связанных с синтаксисом для диаграммы, в настоящее время невозможно определить классы css внутри самой диаграммы