Окончательное построение диаграммы кооперации для модели банкомата Для завершения построения диаграммы кооперации рассматриваемого примера следует описанным выше способом добавить оставшиеся объекты, связи и сообщения. С этой целью следует выполнить следующие действия:
1. Добавить объекты классов с именами: Контроллер Банкомата, Транзакция Банкомата, Клавиатура Банкомата, Экран Банкомата, Принтер Банкомата, Устройство выдачи наличных и IИнтерфейс Банка.
2. Добавить связи, соединяющие объекты классов с именами: Контроллер Банкомата с Устройством чтения карточки, Контроллер Банкомата с Транзакцией Банкомата, Контроллер Банкомата с Клавиатурой Банкомата, Контроллер Банкомата с Экраном Банкомата, Контроллер Банкомата с Принтером Банкомата, Контроллер Банкомата с Устройством выдачи наличных и Контроллер Банкомата с IИнтерфейсом Банка.
3. Добавить сообщение: проверить идентификатор карточки (Integer) , направленное от объекта класса Контроллер Банкомата к объекту класса IИнтерфейс Банка.
4. Добавить сообщение: ввести ПИН-код(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.
5. Добавить сообщение: прочитать ПИН-код(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство чтения карточки.
6. Добавить сообщение: создать новую транзакцию(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.
7. Добавить сообщение: проверить правильность ПИН-кода(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.
8. Добавить сообщение: показать меню опций(), направленное от объекта класса Контроллер Банкомата к объекту класса Экран Банкомата.
9. Добавить сообщение: ввести тип транзакции(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.
10. Добавить сообщение: показать меню снятия суммы(), направленное от объекта класса Контроллер Банкомата к объекту класса Экран Банкомата.
11. Добавить сообщение: ввести сумму снятия наличных(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.
12. Последовательно добавить 3 сообщения: открыть счет клиента (Integer) , проверить баланс клиента (Integer, Currency) и уменьшить счет клиента(Integer, Currency), направленные от объекта класса Контроллер Банкомата к объекту класса IИнтерфейс Банка.
13. Добавить сообщение: распечатать чек(), направленное от объекта класса Контроллер Банкомата к объекту класса Принтер Банкомата.
14. Добавить сообщение: вернуть кредитную карточку(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство чтения карточки.
15. Добавить сообщение: выдать наличные(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство выдачи наличных.
16. Добавить сообщение: завершить транзакцию(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.
Диаграмма кооперации, описывающая реализацию типичного хода событий варианта использования Снятие наличных по кредитной карточке для проекта системы управления банкоматом, показана на рис. 7.8.