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

Примеры / Диаграмма классов библиотеки

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

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

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

Что показано

  • Книга связана с авторами отношением «многие ко многим».
  • Экземпляр — часть фонда конкретной книги (композиция).
  • Выдача связывает читателя и экземпляр и хранит даты.
  • Читатель и библиотекарь наследуют общий класс «Пользователь».

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

Код UML-диаграммы (PlantUML)

@startuml
skinparam classAttributeIconSize 0
abstract class "Пользователь" as User {
  - id : int
  - fullName : String
  - phone : String
}
class "Читатель" as Reader {
  - cardNumber : String
  + canBorrow() : bool
}
class "Библиотекарь" as Librarian {
  + issue(c : Copy, r : Reader) : Loan
  + accept(l : Loan) : void
}
class "Книга" as Book {
  - isbn : String
  - title : String
  - year : int
}
class "Автор" as Author {
  - name : String
}
class "Экземпляр" as Copy {
  - inventoryNo : String
  - available : bool
}
class "Выдача" as Loan {
  - issuedAt : Date
  - dueAt : Date
  - returnedAt : Date
  + isOverdue() : bool
}

User <|-- Reader
User <|-- Librarian
Book "0..*" -- "1..*" Author : написана >
Book "1" *-- "1..*" Copy
Reader "1" --> "0..*" Loan
Loan "0..*" --> "1" Copy
Librarian "1" --> "0..*" Loan : оформляет >
@enduml

Как устроен синтаксис, описано в справочнике: Диаграмма классов UML.

Другие примеры