Примеры / Диаграмма классов библиотеки
Диаграмма классов библиотеки
В системе библиотеки важно различать книгу как издание и конкретный экземпляр на полке: у одной книги может быть много экземпляров, и выдаётся именно экземпляр.
Что показано
- Книга связана с авторами отношением «многие ко многим».
- Экземпляр — часть фонда конкретной книги (композиция).
- Выдача связывает читателя и экземпляр и хранит даты.
- Читатель и библиотекарь наследуют общий класс «Пользователь».
Код 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.
Другие примеры
- Диаграмма классов интернет-магазинаПример UML-диаграммы классов для интернет-магазина
- Диаграмма прецедентов библиотекиПример диаграммы прецедентов (вариантов использования) для библиотеки
- Диаграмма прецедентов интернет-магазинаДиаграмма вариантов использования интернет-магазина
- Диаграмма прецедентов банкоматаКлассический пример диаграммы прецедентов UML
- Диаграмма последовательности авторизацииUML-диаграмма последовательности входа пользователя
- Диаграмма последовательности оформления заказаПример диаграммы последовательности для интернет-магазина
- Диаграмма деятельности снятия наличных в банкоматеUML-диаграмма деятельности (activity) для снятия денег в банкомате
- Диаграмма деятельности обработки заказаПример диаграммы деятельности для обработки заказа в интернет-магазине
- Диаграмма состояний заказаUML-диаграмма состояний (state machine) для заказа в интернет-магазине
- ER-диаграмма базы данных библиотекиER-диаграмма (сущность–связь) для базы данных библиотеки
- Диаграмма развёртывания веб-приложенияUML-диаграмма развёртывания типичного веб-приложения
- Блок-схема линейного алгоритмаПример блок-схемы линейного алгоритма по ГОСТ 19
- Блок-схема с ветвлением: квадратное уравнениеПример блок-схемы разветвляющегося алгоритма по ГОСТ
- Блок-схема цикла: факториал числаПример блок-схемы циклического алгоритма по ГОСТ 19
- Интеллект-карта курсовой работыПример интеллект-карты (mind map) плана курсовой работы
- Интеллект-карта проекта сайтаПример интеллект-карты проекта разработки сайта интернет-магазина
- Интеллект-карта изучения PythonПример интеллект-карты плана изучения Python
- Диаграмма Ганта разработки сайтаПример диаграммы Ганта проекта разработки сайта
- Диаграмма Ганта курсовой работыПример диаграммы Ганта для курсовой работы
- Диаграмма Ганта организации мероприятияПример диаграммы Ганта для организации мероприятия или конференции