Banking example - Customer transfers funds

The customer wants to transfer money from his checking account to his savings account. He does this via an internet banking session, where he needs to login using his password/pin. The password is valid so he enters the main menu. From the main menu he goes to the account menu. In this case he has chosen the transfer checking to saving option. The system validates the balance, in this case there was enough balance. Then updates both accounts and return with a transferred message. And the customer logs out (without doing another action). 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. ATM, Merchant or Web-Shop).

The generated MSG-Flow

Customer Web-Intf Acc-Srv Acc-DB
| | | |
+-click-login-button
Info for click-login-button
action click-login-buttonCustomer clicks on the login button.
section IB-ActionsActions related to IB.
component CustomerRepresents a customer.
| | |
|------get-login
Info for get-login
message get-loginCustomer click on login on the HomePage.
section get-requestsThe http get requests
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
------>| | |
|<--rsp-display-login
Info for rsp-display-login
message rsp-display-loginDisplays the login page
section responsesThe http responses
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
--| | |
|---post-key-usr-pwd
Info for post-key-usr-pwd
message post-key-usr-pwdReceive Key, Username and Password
section post-requestsThe http post requests
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
-->| | |
| |--verify-login
Info for verify-login
message verify-loginVerifies the login
protocol Acc-SrvThe Internal Account Server Protocol
-->| |
| | |---get-login-details
Info for get-login-details
message get-login-detailsRequest to retrieve login details
protocol Acc-DBThe Internal Account Database Protocol
-->|
| | |<-----login-details
Info for login-details
message login-detailsThe retrieved login details
protocol Acc-DBThe Internal Account Database Protocol
----|
| |<-login-response
Info for login-response
message login-responseThe reponse for the verify login request
protocol Acc-SrvThe Internal Account Server Protocol
resultvalid
-| |
|<--rsp-valid-customer
Info for rsp-valid-customer
message rsp-valid-customerThe customer is valid
section responsesThe http responses
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
resultvalid
-| | |
+-in-main-menu
Info for in-main-menu
action in-main-menuCustomer is in the main menu.
section IB-ActionsActions related to IB.
component CustomerRepresents a customer.
| | |
+-in-account-menu
Info for in-account-menu
action in-account-menuCustomer is in the sub menu account.
section IB-ActionsActions related to IB.
component CustomerRepresents a customer.
| | |
+-transfer-checking
Info for transfer-checking
action transfer-checkingCustomer wants to transfer money to checking account (from saving).
section IB-ActionsActions related to IB.
component CustomerRepresents a customer.
| | |
|----post-transfer
Info for post-transfer
message post-transferCustomer request to transfer money from one accoun to another, see action
section post-requestsThe http post requests
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
resultvalid
actiontransfer
dst_accsaving
src_accchecking
---->| | |
| |----transfer
Info for transfer
message transferCustomer transfers money from an account to another
protocol Acc-SrvThe Internal Account Server Protocol
resultvalid
actiontransfer
dst_accsaving
src_accchecking
---->| |
| | |------get-balance
Info for get-balance
message get-balanceRequest to get the balance of an account
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
actiontransfer
dst_accsaving
src_accchecking
----->|
| | |<-----balance-info
Info for balance-info
message balance-infoThe balance information
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
actiontransfer
dst_accsaving
src_accchecking
-----|
| | |-upd-checking-balance
Info for upd-checking-balance
message upd-checking-balanceRequest to update the balance of a checking account
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
actiontransfer
dst_accsaving
src_accchecking
->|
| | |--upd-saving-balance
Info for upd-saving-balance
message upd-saving-balanceRequest to update the balance of a saving account
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
cloudno
actiontransfer
dst_accsaving
src_accchecking
-->|
| | |----commit-changes
Info for commit-changes
message commit-changesInstruction to save all related requests in an atomic action.
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
cloudno
actiontransfer
dst_accsaving
src_accchecking
---->|
| | |<---changes-committed
Info for changes-committed
message changes-committedAll related request have been save in the database.
protocol Acc-DBThe Internal Account Database Protocol
resultvalid
cloudno
actiontransfer
dst_accsaving
src_accchecking
--|
| |<---transferred
Info for transferred
message transferredCustomer transferred money from an account to another
protocol Acc-SrvThe Internal Account Server Protocol
resultvalid
cloudno
actiontransfer
dst_accsaving
src_accchecking
--| |
|<---rsp-transferred
Info for rsp-transferred
message rsp-transferredThe money has been transferred
section responsesThe http responses
protocol HTTP-msgReflect the HTTP messageas used between customer and web=interface.
resultvalid
cloudno
actiontransfer
dst_accsaving
src_accchecking
---| | |
+-transferred
Info for transferred
action transferredThe money has been transferred.
section IB-ActionsActions related to IB.
component CustomerRepresents a customer.
| | |
+-in-main-menu
Info for in-main-menu
action in-main-menuCustomer is in the main menu.
section IB-ActionsActions related to IB.
component CustomerRepresents a customer.
| | |
+-click-logout-button
Info for click-logout-button
action click-logout-buttonCustomer clicks on the logout button.
section IB-ActionsActions related to IB.
component CustomerRepresents a customer.
| | |
+-closes-browser
Info for closes-browser
action closes-browserCustomer decides to stop.
section IB-ActionsActions related to IB.
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.

Customer-flows : The customer starts any action.

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.