Кооперация.

ТЕМА: UML. Элементы графической нотации диаграммы кооперации.

 

Литература: 1. Леоненков А. В. Самоучитель UML. - 2-е изд.

2. Бабич А. Введение в UML. //курс НОУ «ИНТУИТ».

 

Диаграмма кооперации предназначена для описания поведения системы на уровне отдельных объектов, которые обмениваются между собой сообщениями, чтобы достичь нужной цели или реализовать некоторый вариант использования. С точки зрения аналитика или архитектора системы в проекте важно представить структурные связи отдельных объектов между собой. Такое представление структуры модели как совокупности взаимодействующих объектов и обеспечивает диаграмма кооперации.

Другими словами, диаграмма кооперации (взаимодействия) отображает один из процессов обработки информации в варианте использования: показывает, какие объекты нужны, какими сообщениями обмениваются объекты, какие действующие лица инициируют поток и в какой последовательности отправляются сообщения. Она показывает взаимодействие объектов во времени, т. е. в динамике и описывает поток данных между объектами.

В диаграмме кооперации основной акцент сделан на структурной организации объектов, посылающих и получающих сообщения, а также на ролях, которые объекты играют во взаимодействии.

Для одного варианта использования может быть построено несколько диаграмм взаимодействия.

Обычно диаграммы кооперации применяются для того, чтобы:

·показать набор взаимодействующих объектов в реальном окружении "с высоты птичьего полета";

·распределить функциональность между классами, основываясь на результатах изучения динамических аспектов системы;

·описать логику выполнения сложных операций, особенно в тех случаях, когда один объект взаимодействует еще с несколькими объектами;

·изучить роли, выполняемые объектами внутри системы, а также отношения между объектами, в которые они вовлекаются, выполняя эти роли.

Говоря о диаграммах кооперации, часто упоминают два "уровня" таких диаграмм - уровень экземпляров(примеров, Instance-Level) и уровень спецификации (Specification-Level). Уровень экземпляров отображает взаимодействия между объектами (экземплярами классов); такая диаграмма обычно создается, чтобы исследовать внутреннее устройствообъектно-ориентированной системы. Уровень же спецификации используется для изучения ролей, исполняемых в системе основными классами.

Определение 1. Кооперация (collaboration) - спецификация множества объектов отдельных классов, совместно взаимодействующих с целью реализации отдельных вариантов использования в общем контексте моделируемой системы.

Кооперация определяет набор взаимодействующих ролей, используемых вместе, чтобы показать некую функциональность.

Понятие кооперации – одно из фундаментальных в языке UML. Цель самой кооперации состоит в том, чтобы специфицировать особенности реализации отдельных вариантов использования или наиболее значимых операций в системе. Кооперация определяет структуру поведения системы в терминах взаимодействия участников этой кооперации и часто реализует некоторый паттерн(шаблон проектирования).

Кооперация изображается в виде эллипса с пунктирной границей, причем символ этот может использоваться двумя способами. Первый способ представлен на рисунке 1. Эта диаграмма буквально иллюстрирует слова о кооперации как наборе ролей, используемых вместе, чтобы показать некую функциональность, в данном случае - выполнение ежемесячного резервного копирования.

Рис. 1. Первый способ изображения кооперации.

Второй способ показывает прикрепленные к объектам (классам) роли в рамках данной кооперации. Назначение роли изображается пунктирной линией со стрелкой на конце, направленной в сторону объекта. Имя роли указывается на конце линии, рядом с объектом (рис. 2).

Рис. 2. Второй способ изображения кооперации.

На диаграмме, изображенной на рисунке 2, также показана генерализация и кооперации, и самих исполнителей.

На диаграмме кооперации также размещаются объекты, представляющие собой экземпляры классов, связи между ними, которые в свою очередь являются экземплярами ассоциаций и сообщения. Связи дополняются стрелками сообщений, при этом показываются только те объекты, которые участвуют в реализации моделируемой кооперации. Далее, как и на диаграмме классов, показываются структурные отношения между объектами в виде различных соединительных линий. Связи могут дополняться именами ролей, которые играют объекты в данной взаимосвязи. И, наконец, изображаются динамические взаимосвязи - потоки сообщений в форме стрелок с указанием направления рядом с соединительными линиями между объектами, при этом задаются имена сообщений и их порядковые номера в общей последовательности сообщений.

Одна и та же совокупность объектов может участвовать в реализации различных коопераций. В зависимости от рассматриваемой кооперации, могут изменяться как связи между отдельными объектами, так и поток сообщений между ними. Именно это отличает диаграмму кооперации от диаграммы классов, на которой должны быть указаны все без исключения классы, их атрибуты и операции, а также все ассоциации и другие структурные отношения между элементами модели.