When the user selects Add from the
Customer menu, the banking system performs
the following steps:
This informal description can be made more precise by specifying
a sequence of steps in an object interaction graph as shown in
Figure 5.4.

Figure 5.4 Object interaction graph for adding a customer
without showing the subsequent updates to the screen
Table 5.5 provides a trace of this sequence of messages.
| Message | Explanation |
| 1 select Customer/Add | The user selects the Add command in the Customer menu. |
| 2 addCustomer | The framework sends the addCustomer message to BankInterface. |
| 3 request customer data | The bank interface prompts the user for the customer's name and address. |
| 4 enter customer name and
address | The user enters the name and address of the customer. |
| 5 at: name putAddr: address | The bank interface asks the bank to insert the customer's name and address into its database of customers. |
| 6 display duplicate error | If customer already exists with this name, display error message. |
| 7 new | The bank creates a new customer object. |
| 8 init | The customer object is initialized with a default name and address. |
| 9 name: name | The customer is told his name. |
| 10 address: address | The customer is told his address. |
Table 5.5 Trace of messages for adding a customer