Banking example - Customer withdraws money from ATM

The customer wants to withdraw money using an ATM. In this case it was chosen to skip the authorization (to simplify the diagram), the cash counted and the checking account is debited. Both actions are successful in this diagram. One could have chosen for not enough cash to generate different diagrams. The cash is released and the customer leaves. This is just one of many (millions) permutations. Use the choices on the right to make different diagrams or even different starting points (e.g. Internet Banking, Merchant or Web-Shop).

The generated MSG-Flow

Customer ATM Secure-Intf Acc-Srv Acc-DB
| | | | |
+-skipped-authorize
Info for skipped-authorize
No link information between act and comp for skipped-authorize
| | | |
+-in-atm-menu
Info for in-atm-menu
No link information between act and comp for in-atm-menu
| | | |
|----withdraw-cash
Info for withdraw-cash
No link information between msg and prot for withdraw-cash
---->| | | |
| +-counting-cash
Info for counting-cash
No link information between act and comp for counting-cash
| | |
| |---sec-transfer
Info for sec-transfer
No link information between msg and prot for sec-transfer
actionwithdraw
src_accchecking
dst_acccash
-->| | |
| | |---transfer
Info for transfer
No link information between msg and prot for transfer
actionwithdraw
src_accchecking
dst_acccash
-->| |
| | | |------get-balance
Info for get-balance
No link information between msg and prot for get-balance
actionwithdraw
src_accchecking
dst_acccash
----->|
| | | |<-----balance-info
Info for balance-info
No link information between msg and prot for balance-info
actionwithdraw
src_accchecking
dst_acccash
-----|
| | | |-upd-checking-balance
Info for upd-checking-balance
No link information between msg and prot for upd-checking-balance
actionwithdraw
src_accchecking
dst_acccash
->|
| | | |----commit-changes
Info for commit-changes
No link information between msg and prot for commit-changes
cloudno
actionwithdraw
src_accchecking
dst_acccash
---->|
| | | |<---changes-committed
Info for changes-committed
No link information between msg and prot for changes-committed
cloudno
actionwithdraw
src_accchecking
dst_acccash
--|
| | |<-transferred
Info for transferred
No link information between msg and prot for transferred
cloudno
actionwithdraw
src_accchecking
dst_acccash
-| |
| |<-sec-transferred
Info for sec-transferred
No link information between msg and prot for sec-transferred
cloudno
actionwithdraw
src_accchecking
dst_acccash
-| | |
| +-cash-released
Info for cash-released
No link information between act and comp for cash-released
| | |
|<-withdraw-successful
Info for withdraw-successful
No link information between msg and prot for withdraw-successful
cloudno
actionwithdraw
src_accchecking
dst_acccash
-| | | |
+-take-cash
Info for take-cash
No link information between act and comp for take-cash
| | | |
+-card-returned
Info for card-returned
No link information between act and comp for card-returned
| | | |
+-customer-leaves
Info for customer-leaves
action customer-leavesCustommer leaves, e.g. ready or failed.
section ATM-ActionsActions related to ATM banking.
component CustomerRepresents a customer.
| | | |

You can and paste the above flow representation in a text file or in your favourite text editor using a monospace font. Ofcourse you will loose the context sensitive output and the links towards additional information.

Decission table

The decission table shows which decissions have been made so far and which to make. The header contains the choice number and the entity making the choice. The choices are shown from left (latest) to right (earlier) which make it handier to follow or adapts. All choices you could have choisen on a specific level are displayed. You can click on the description to make a different choice.

ATM-flows : The user starts a session at an atm.

Additional Generated Information

Below is the graphical representaion rendered using PlantUML Try it yourself online

Cannot render UML

You can the following url to refer to the graph. Or copy as to have it embeded in usable HTML code.

Be aware that changes/improvements will not be reflected in the graph.
The plain text, which can be used by some editors, is given below. Use it if you want to make edit in you favorite editor. It does not contain links as they are not supported by some editors. You can copy the text and paste it e.g. into WebSequenceDiagrams, SequenceDiagram or SwimLanes. You can also copy it for and paste it into PlantUML.