UML EditorСправочникПримерыОткрыть редактор

Справочник / Диаграмма классов UML

Диаграмма классов UML: синтаксис и примеры

Классы, атрибуты, операции и связи между ними. Диаграмма находится между @startuml и @enduml. Класс объявляется словом class, имя в кавычках можно писать по-русски, а через as задаётся короткий псевдоним для связей.

Пример

Диаграмма классов UML — пример
@startuml
class "Пользователь" as User {
  - id : UUID
  - email : String
  + login(password : String) : bool
}
class "Заказ" as Order {
  - number : int
  - createdAt : Date
  + total() : float
}
class "Позиция заказа" as Item {
  - quantity : int
  - price : float
}
interface "Оплата" as Payment {
  + pay(amount : float) : bool
}
abstract class "Скидка" as Discount {
  {abstract} + apply(sum : float) : float
}
class "Процентная скидка" as Percent {
  - percent : int
}

User "1" --> "0..*" Order : оформляет >
Order "1" *-- "1..*" Item : содержит
Order ..> Payment : <<use>>
Order o-- "0..1" Discount
Discount <|-- Percent
@enduml

Открыть пример в редакторе

Готовые примеры

Конструкции

Класс с атрибутами и операциями

Атрибут: видимость, имя, двоеточие, тип. Операция: имя, параметры в скобках, тип результата.

class "Пользователь" as User {
  - id : UUID
  + login(pwd : String) : bool
}

Абстрактный класс и операция

Абстрактные элементы выводятся курсивом.

abstract class "Фигура" as Shape {
  {abstract} + area() : float
}

Статический член

Статические элементы подчёркиваются.

class Counter {
  {static} - count : int
}

Интерфейс

interface "Оплата" as Payment {
  + pay(sum : float) : bool
}

Перечисление

enum Status {
  NEW
  PAID
  DONE
}

Стереотип

class Repo <<repository>>

Кратность и подпись

Кратности в кавычках у концов связи; > или < после подписи показывает направление чтения.

User "1" --> "0..*" Order : оформляет >

Пакет

package "Модели" {
  class A
  class B
}

Связи UML

A <|-- Bобобщение: B наследует A
A <|.. Bреализация: B реализует интерфейс A
A *-- Bкомпозиция: B — неотъемлемая часть A
A o-- Bагрегация
A --> Bнаправленная ассоциация
A -- Bассоциация
A ..> Bзависимость

Видимость

+public
-private
#protected
~package

Общее

@startuml / @endumlначало и конец диаграммы
' тексткомментарий
/' … '/многострочный комментарий
title Заголовокзаголовок над диаграммой
left to right directionраскладка слева направо

Другие виды диаграмм