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

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

Диаграмма классов интернет-магазина

Диаграмма классов показывает, из каких сущностей состоит система и как они связаны. Для интернет-магазина основа — покупатель, каталог товаров, корзина и заказ, а оплата и доставка подключаются через интерфейсы, чтобы их можно было заменить.

Диаграмма классов интернет-магазина

Что показано

  • Покупатель оформляет заказы — ассоциация «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.

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