previous | start | next

## Analyse Use Case: Retrieve messages

1. User types in passcode. `Telephone` notifies `Connection`
2. `Connection` asks `Mailbox` to check passcode.
   (Add responsibility "manage passcode" to `Mailbox`)
3. `Connection` sets current mailbox and asks `Telephone` to speak menu
4. User selects "retrieve messages". `Telephone` passes key to `Connection`
5. `Connection` asks `Telephone` to speak menu
6. User selects "listen to current message". `Telephone` passes key to `Connection`
7. `Connection` gets first message from current mailbox.
   (Add "retrieve messages" to responsibility of `Mailbox`).
   `Connection` asks `Telephone` to speak message
8. `Connection` asks `Telephone` to speak menu
9. User selects "save current message". `Telephone` passes key to `Connection`
10. `Connection` tells `Mailbox` to save message
    (Modify responsibility of `Mailbox` to "retrieve,save,delete messages")
11. `Connection` asks `Telephone` to speak menu

previous | start | next