Кооперации существуют со времен UML 1, но я признаю, что вряд ли применял их даже для разработки паттернов. Кооперации предоставляют способ группирования элементов взаимодействия, когда роли исполняются различными классами. Однако на практике я не встречал, чтобы этот тип диаграмм кого-то покорил.
Диаграммы обзора взаимодействия
Диаграммы обзора взаимодействия - это комбинация диаграмм деятельности и диаграмм последовательности. Можно считать диаграммы обзора взаимодействия диаграммами деятельности, в которых деятельности заменены небольшими диаграммами последовательности, или диаграммами последовательности, разбитыми с помощью нотации диаграмм деятельности для отображения потока управления. В любом случае они представляют довольно необычную смесь.
На рис. 16.1 показан пример простой диаграммы такого типа; нотация нам уже знакома по главам, посвященным диаграммам деятельности и диаграммам последовательности, В этой диаграмме мы хотим составить и отформатировать отчетный доклад о заказах. Если клиент внешний, то информацию поставляет XML, а если внутренний, то информация берется из базы данных. Небольшие диаграммы последовательности показывают две альтернативы. После получения данных мы форматируем отчет; в этом случае мы не представляем диаграмму последовательности, а просто ссылаемся на нее.