Консолидация диаграмм кооперации
Результат консолидации диаграмм кооперации, описывающих все четыре прецедента, показан на рис.14. Некоторые объекты принимают участие в нескольких прецедентах. Так, объекты Интерфейс Двери, Интерфейс Мотора и Управление Лифтом участвуют в прецедентах Остановка Лифта на Этаже и Отправить Лифт. Другие объекты – к примеру, Интерфейс Кнопки Этажа и Интерфейс Датчика Прибытия – задействованы только в одном прецеденте. Для объектов, которые принимают участие лишь в одном прецеденте, все взаимодействия изображены на диаграмме кооперации, описывающей этот прецедент. Если же объект занят в нескольких прецедентах, его взаимодействия представлены на разных диаграммах и объединены на консолидированной диаграмме кооперации. Так, сообщения Открыть Дверь и Дверь Открыта, посылаемые объекту Интерфейс Двери и принимаемые от него, появляются в прецеденте Остановка Лифта на Этаже (рис.7). Что же касается сообщений Закрыть Дверь и Дверь Закрыта, то они происходят из прецедента Отправить Лифт (рис.9). На консолидированный диаграмме кооперации должны присутствовать все взаимодействия объектов, в том числе и альтернативы, которые обычно на отдельных диаграммах кооперации не изображаются. Поэтому на рис.14 показаны все сообщения «вниз» и все сообщения «вверх». Кроме того, имена сообщений можно агрегировать. Так, Команда Лампочке Направления - это результат агрегирования четырех сообщений: Включить Лампочку Направления «Вверх», Выключить Лампочку Направления «Вверх», Включить Лампочку Направления «Вниз», Выключить Лампочку Направления «Вниз». В словаре сообщений следует описать, из чего состоят агрегированные имена сообщений.
Рис.13. Иерархическая диаграмма состояний объекта Управление Лифтом
Рис.14. Система управления лифтами: консолидированная диаграмма кооперации
|