Skip to content

Use-case specification

The specification is the behaviour source of truth of a use case: a statechart of the conversation between the actor and the system. The card describes the same paths in words; if they diverge, the specification wins and the card is corrected.

Statechart of the createOrder use case: Basket, Checkout, Validating and Placed Statechart of the createOrder use case: Basket, Checkout, Validating and Placed

Source

@startuml
!theme plain
skinparam linetype polyline
hide empty description

state "createOrder" as createOrder {
  state " " as Basket
  state " " as Checkout
  state " " as Validating
  state " " as Placed

  [*] --> Basket
  Basket --> Checkout : Customer checks out
  Checkout --> Validating : Customer confirms
  Validating --> Checkout : System reports a problem
  Validating --> Placed : System creates the order
  Placed --> [*]

  note on link
    Actor: asks to check out
    System: shows lines, totals and the address form
  end note
}

@enduml

Conventions

  • A composite state named after the use case; inner states have no visible label.
  • Transitions are the events of the conversation.
  • Notes on transitions narrate what the actor does and what the system answers.
  • Error and cancel paths are explicit transitions.
  • skinparam linetype polyline.

Checklist

  • The main flow reaches the goal and every step has a system response.
  • Every input and every precondition has a failure path.
  • The paths match the flows in the card.

In Pro

Pro adds the wireframes of the screens of the flow, the analysis collaboration and the design sequence for the same use case, each linked from the card. See the catalogue.