Class diagrams

@startuml
class Order {
  +id: UUID
  -lineItems: List<LineItem>
  +total(): Money
}

class LineItem {
  +sku: String
  +quantity: Int
}

Order "1" *-- "many" LineItem
@enduml

Declarations

class    Foo
abstract Bar
interface Baz
enum     Status { ACTIVE, ARCHIVED }

Members

Bodies use { ... }:

class Account {
  +id: UUID
  -balance: Money
  +deposit(amount: Money)
  +withdraw(amount: Money): Result
}

Visibility prefixes: + public, - private, # protected, ~ package.

Relationships

NotationMeaning
--association
<|--inheritance
<|..realization
*--composition
o--aggregation
..>dependency

Multiplicities are quoted strings on each end:

Order "1" *-- "many" LineItem
Customer "1" o-- "many" Order

Stereotypes

class Foo <<Service>>
class Bar <<(D,#orange) Data>>

Browse

The class examples in the gallery cover inheritance trees, generics, stereotypes, package nesting, and dependency arrows.