
- •7.1. История uml
- •7.2. Описание uml
- •7.3. Сущности uml
- •7.4. Отношения uml
- •7.5. Диаграммы uml
- •7.6. Расширения языка uml
- •7.7. Диаграммы классов
- •7.8. Диаграммы использования (use-case) (диаграммы прецедентов)
- •7.9. Диаграмма последовательности
- •7.10. Диаграмма кооперации
- •7.11. Диаграмма состояний
- •7.12. Диаграмма деятельности
- •7.13. Диаграмма компонентов
- •7.14. Диаграмма развертывания (диаграммы размещения)
7.10. Диаграмма кооперации
Диаграмма кооперации специфицирует структурные аспекты взаимодействия, а именно структурная организация обменивающихся сообщениями объектов. Диаграмма кооперации предназначена для описания поведения системы на уровне отдельных объектов, которые обмениваются между собой сообщениями, чтобы достичь нужной цели или реализовать некоторый вариант использования. Временная последовательность сообщений отображается их нумерацией.
На диаграмме кооперации размешаются объекты, представляющие собой экземпляры классов, связи между ними, которые, в свою очередь, являются экземплярами ассоциаций и сообщения. Связи дополняются стрелками сообщений, при этом показываются только те объекты, которые участвуют в реализации моделируемой кооперации. Далее, как и на диаграмме классов, показываются структурные отношения между объектами в виде различных соединительных линий. Связи могут дополняться именами ролей, которые играют объекты в данной взаимосвязи. И, наконец, изображаются динамические взаимосвязи потоки сообщений в форме стрелок с указанием направления рядом с соединительными линиями между объектами, при этом задаются имена сообщений и их порядковые номера в общей последовательности сообщений.
Одна и та же совокупность объектов может участвовать в различных кооперациях. В зависимости от рассматриваемой кооперации, могут изменяться как свойства отдельных объектов, так и связи между ними. Именно это отличает диаграмму кооперации от диаграммы классов, на которой должны быть указаны все свойства и ассоциации между элементами диаграммы.
Кроме кооперации и объектов на диаграмме кооперации могут также изображаться мультиобъекты, которые представляют собой множество анонимных объектов, которые могут быть образованы на основе данного класса. Мультиобъект используется для того, чтобы показать операции и сигналы, которые адресованы всему множеству объектов, а не только одному.
Пассивный объект оперирует только данными и не может инициировать деятельность по управлению другими объектами. Пассивные объекты могут посылать сигналы в процессе выполнения запросов, которые они обрабатывают. Активный объект имеет свою собственную нить управления и может инициировать деятельность по управлению другими объектами.
Составной объект или объект-контейнер предназначен для представления объекта, имеющего собственную структуру и внутренние потоки (нити) управления.
Связь – любое семантическое отношение между некоторой совокупностью объектов. Связь может иметь некоторые стереотипы, которые записываются рядом с одним из ее концов и указывают на особенность реализации данной связи ("association" – ассоциация "parameter" - параметр метода"local" - локальная переменная метода"global" - глобальная переменная "self - рефлексивная связь объекта с самим собой, которая допускает передачу объектом сообщения самому себе).
Сообщения на диаграмме кооперации аналогичны диаграмме последовательности, они специфицируют коммуникацию между двумя объектами, один из которых передает другому некоторую информацию. При этом первый объект ожидает, что после получения сообщения вторым объектом последует выполнение некоторого действия. Таким образом, именно сообщение является причиной или стимулом для начала выполнения операций, отправки сигналов, создания и уничтожения отдельных объектов.
Пример. (слайд 10):