Multilingual Wiki Documentation

You are currently using syntax.
In an attempt to improve PlantUML documentation...
Please do not use this website for your own diagrams.
You can click here and use the online server here for your own documentation.

Wiki Toc    View page history    Add new chapter    Reorder page    Raw


Диаграмма объектов

Object Diagram

Здесь можно ознакомиться с полезными дополнениями, которые можно использовать в любой из поддерживаемых диаграмм:

Определение объектов

Definition of objects

Вы можете определить объекты используя ключевое слово object.

@startuml
object первыйОбъект
object "Второй объект" as o2
@enduml

You define instances of objects using the object keyword.

@startuml
object firstObject
object "My Second Object" as o2
@enduml

Взаимосвязи между объектами

Relations between objects

Взаимосвязи между объектами (согласно нотации UML) задаются с помощью следующих символов:

Тип Символ Отображение
Наследование <|--
Композиция *--
Агрегация o--
Зависимость <..
Ассоциация <--
Реализация (Имплементация) <|..

Если рассматривать более универсально,

  • есть два типа линий:
    • -- - рисует сплошную линию
    • .. - рисует штриховую линию

  • к любой стороне (или сразу к обоим сторонам) линии, соединяющей два элемента, можно добавить разные наконечники:
    • < - рисует заостренный наконечник стрелочки
    • <| или ^ - рисует наконечник стрелочки в виде треугольника
    • * - рисует неконечник стрелочки в виде сплошного ромба
    • o - рисует неконечник стрелочки в виде полого ромба
    • # - рисует неконечник стрелочки в виде полого квадратика
    • x - рисует неконечник стрелочки в виде крестика
    • } - рисует неконечник стрелочки в виде обратного треугольника
    • + - рисует неконечник стрелочки в виде кружочка с крестиком внутри

Чтобы добавить к связи текстовую метку, используйте символ : и за ним разместите текст метки:
  • object1 --> object2 : метка.

Чтобы добавить текстовую метку к началу и/или к концу связи, разместите текст метки в двойных кавычках перед описанием связи и/или после описания связи:
  • object1 "начало" --> "конец" object2

Примеры:

@startuml
object Объект01
object Объект02
object Объект03
object Объект04
object Объект05
object Объект06
object Объект07
object Объект08

Объект01 <|-- Объект02
Объект03 *-- Объект04
Объект05 "к одному" o-- "от многих" Объект06
Объект07 .. Объект08 : некоторая заметка
@enduml

Ещё больше примеров можно посмотреть:

Relations between objects are defined using the following symbols :

Type Symbol Image
Extension <|--
Composition *--
Aggregation o--

It is possible to replace -- by .. to have a dotted line.

Knowing those rules, it is possible to draw the following drawings.

It is possible a add a label on the relation, using : followed by the text of the label.

For cardinality, you can use double-quotes "" on each side of the relation.

@startuml
object Object01
object Object02
object Object03
object Object04
object Object05
object Object06
object Object07
object Object08

Object01 <|-- Object02
Object03 *-- Object04
Object05 o-- "4" Object06
Object07 .. Object08 : some labels
@enduml

Пример ассоциации объектов

Associations objects

@startuml
object o1
object o2
diamond dia
object o3

o1  --> dia
o2  --> dia
dia --> o3
@enduml

@startuml
object o1
object o2
diamond dia
object o3

o1  --> dia
o2  --> dia
dia --> o3
@enduml

Добавление полей

Adding fields

Для добавления полей (свойств) Вы можете использовать символ :. Для этого каждый раз указывайте имя объекта, затем символ : и затем имя поля, который Вы хотите добавить в этот объект.

@startuml

object user

user : name = "Dummy"
user : id = 123

@enduml

Чтобы не указывать каждый раз имя объекта, для которого Вы хотите добавить поле (свойство), можно все такие поля для одного объекта указать сразу перечислив их все внутри фигурных скобок {}.

@startuml

object user {
  name = "Dummy"
  id = 123
}

@enduml

To declare fields, you can use the symbol : followed by the field's name.

@startuml

object user

user : name = "Dummy"
user : id = 123

@enduml

It is also possible to group all fields between brackets {}.

@startuml

object user {
  name = "Dummy"
  id = 123
}

@enduml

Общие с диаграммами классов функции

Common features with class diagrams

Map table or associative array

You can define a map table or associative array, with map keyword and => separator.

@startuml
map CapitalCity {
 UK => London
 USA => Washington
 Germany => Berlin
}
@enduml

@startuml
map "Map **Contry => CapitalCity**" as CC {
 UK => London
 USA => Washington
 Germany => Berlin
}
@enduml

@startuml
map "map: Map<Integer, String>" as users {
 1 => Alice
 2 => Bob
 3 => Charlie
}
@enduml

And add link with object.

@startuml
object London

map CapitalCity {
 UK *-> London
 USA => Washington
 Germany => Berlin
}
@enduml

@startuml
object London
object Washington
object Berlin
object NewYork

map CapitalCity {
 UK *-> London
 USA *--> Washington
 Germany *---> Berlin
}

NewYork --> CapitalCity::USA
@enduml

[Ref. #307]

@startuml
package foo {
    object baz
}

package bar {
    map A {
        b *-> foo.baz
        c =>
    }
}

A::c --> foo
@enduml

[Ref. QA-12934]

@startuml
object Foo
map Bar {
  abc=>
  def=>
}
object Baz

Bar::abc --> Baz : Label one
Foo --> Bar::def : Label two
@enduml

[Ref. #307]

Program (or project) evaluation and review technique (PERT) with map

You can use map table in order to make Program (or project) evaluation and review technique (PERT) diagram.

@startuml PERT
left to right direction
' Horizontal lines: -->, <--, <-->
' Vertical lines: ->, <-, <->
title PERT: Project Name

map Kick.Off {
}
map task.1 {
    Start => End
}
map task.2 {
    Start => End
}
map task.3 {
    Start => End
}
map task.4 {
    Start => End
}
map task.5 {
    Start => End
}
Kick.Off --> task.1 : Label 1
Kick.Off --> task.2 : Label 2
Kick.Off --> task.3 : Label 3
task.1 --> task.4
task.2 --> task.4
task.3 --> task.4
task.4 --> task.5 : Label 4
@enduml

[Ref. QA-12337]


Please report any bugs to plantuml@gmail.com or here.
This website is still in beta testing.