Примеры / Диаграмма классов интернет-магазина
Диаграмма классов интернет-магазина
Диаграмма классов показывает, из каких сущностей состоит система и как они связаны. Для интернет-магазина основа — покупатель, каталог товаров, корзина и заказ, а оплата и доставка подключаются через интерфейсы, чтобы их можно было заменить.
Что показано
- Покупатель оформляет заказы — ассоциация «1 ко многим».
- Заказ состоит из позиций (композиция): без заказа позиция не существует.
- Корзина агрегирует позиции, а товар относится к категории.
- Способы оплаты реализуют общий интерфейс «Оплата» — пунктирная стрелка с треугольником.
- Статус заказа вынесен в перечисление.
Код UML-диаграммы (PlantUML)
@startuml
skinparam classAttributeIconSize 0
class "Покупатель" as Customer {
- id : int
- name : String
- email : String
+ register() : void
}
class "Корзина" as Cart {
+ addItem(p : Product, qty : int) : void
+ total() : float
}
class "Заказ" as Order {
- number : int
- createdAt : Date
- status : OrderStatus
+ total() : float
+ cancel() : void
}
class "Позиция заказа" as OrderLine {
- quantity : int
- price : float
}
class "Товар" as Product {
- title : String
- price : float
- stock : int
}
class "Категория" as Category {
- name : String
}
enum "Статус заказа" as OrderStatus {
NEW
PAID
SHIPPED
DELIVERED
CANCELLED
}
interface "Оплата" as Payment {
+ pay(amount : float) : bool
}
class "Оплата картой" as CardPayment
class "СБП" as SbpPayment
class "Доставка" as Delivery {
- address : String
- cost : float
}
Customer "1" -- "1" Cart
Customer "1" --> "0..*" Order : оформляет >
Order "1" *-- "1..*" OrderLine
Cart "1" o-- "0..*" OrderLine
OrderLine "0..*" --> "1" Product
Product "0..*" --> "1" Category
Order --> OrderStatus
Order ..> Payment : <<use>>
Payment <|.. CardPayment
Payment <|.. SbpPayment
Order "1" -- "0..1" Delivery
@enduml
Как устроен синтаксис, описано в справочнике: Диаграмма классов UML.
Другие примеры
- Диаграмма классов библиотекиUML-диаграмма классов для информационной системы библиотеки
- Диаграмма прецедентов библиотекиПример диаграммы прецедентов (вариантов использования) для библиотеки
- Диаграмма прецедентов интернет-магазинаДиаграмма вариантов использования интернет-магазина
- Диаграмма прецедентов банкоматаКлассический пример диаграммы прецедентов UML
- Диаграмма последовательности авторизацииUML-диаграмма последовательности входа пользователя
- Диаграмма последовательности оформления заказаПример диаграммы последовательности для интернет-магазина
- Диаграмма деятельности снятия наличных в банкоматеUML-диаграмма деятельности (activity) для снятия денег в банкомате
- Диаграмма деятельности обработки заказаПример диаграммы деятельности для обработки заказа в интернет-магазине
- Диаграмма состояний заказаUML-диаграмма состояний (state machine) для заказа в интернет-магазине
- ER-диаграмма базы данных библиотекиER-диаграмма (сущность–связь) для базы данных библиотеки
- Диаграмма развёртывания веб-приложенияUML-диаграмма развёртывания типичного веб-приложения
- Блок-схема линейного алгоритмаПример блок-схемы линейного алгоритма по ГОСТ 19
- Блок-схема с ветвлением: квадратное уравнениеПример блок-схемы разветвляющегося алгоритма по ГОСТ
- Блок-схема цикла: факториал числаПример блок-схемы циклического алгоритма по ГОСТ 19
- Интеллект-карта курсовой работыПример интеллект-карты (mind map) плана курсовой работы
- Интеллект-карта проекта сайтаПример интеллект-карты проекта разработки сайта интернет-магазина
- Интеллект-карта изучения PythonПример интеллект-карты плана изучения Python
- Диаграмма Ганта разработки сайтаПример диаграммы Ганта проекта разработки сайта
- Диаграмма Ганта курсовой работыПример диаграммы Ганта для курсовой работы
- Диаграмма Ганта организации мероприятияПример диаграммы Ганта для организации мероприятия или конференции