To identify operations, we examine the verb phrases listed for each class in Fig. 22.16. The “executes financial transactions” phrase associated with class ATM
implies that class ATM
instructs transactions to execute. Therefore, classes BalanceInquiry
, Withdrawal
and Deposit
each need an operation to provide this service to the ATM. We place this operation (which we’ve named execute
) in the third compartment of the three transaction classes in the updated class diagram of Fig. 22.17. During an ATM session, the ATM
object will invoke the execute
operation of each transaction object to tell it to execute.
The UML represents operations (which are implemented as member functions in C++) by listing the operation name, followed by a comma-separated list of parameters in parentheses, a colon and the return type:
operationName( parameter1, parameter2, ..., parameterN ) : return type
Each parameter in the comma-separated parameter list consists of a parameter name, followed by a colon and the parameter type:
parameterName : parameterType
For the moment, we do not list the operations’ parameters—we’ll identify and model the parameters of some of the operations shortly. For some, we do not yet know the return types, so we also omit them from the diagram. These omissions are perfectly normal at this point. As our design and implementation proceed, we’ll add the remaining return types.