Диаграмма кооперации (collaboration diagram) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Диаграмма кооперации (collaboration diagram)



 

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

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

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

– на уровне спецификации – показывает роли классификаторов и роли ассоциаций в рассматриваемом взаимодействии;

– на уровне примеров (экземпляров) – указывает объекты и связи, образующие отдельные роли в кооперации.

При моделировании информационных систем чаще всего используется второй случай, поэтому в настоящем пособии он и будет рассмотрен. Интересующиеся диаграммами уровня спецификации могут обратиться к [2].

Объект (object) является отдельным экземпляром класса, который создается на этапе реализации модели (выполнения программы). Он может иметь собственное имя и конкретные значения атрибутов. Соответственно, изображается в виде прямоугольника, иногда (при необходимости указания значений атрибутов) состоящего из двух секций (см. рис. 27).

 

 
 

 

 


Рисунок 27 – Изображение объекта

 

Имя объекта в общем случае имеет следующий формат:

 

<собственное имя> / <имя роли классификатора>: <имя классификатора>

 

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

Различные примеры изображения объектов представлены на рис.28.

 
 

 

 


Рисунок 28 – Примеры изображений различных объектов

 

Иногда необходимо отдельно изобразить на диаграмме множество объектов, которые могут быть образованы на основе одного класса. Такое изображение в виде «наложенных» прямоугольников называется мультиобъектом. При этом может быть явно указано отношение агрегации (композиции) между мультиобъектом и отдельным объектом из его множества (рис. 29).

 
 

 

 


Рисунок 29 – Пример изображения мультиобъекта

 

Все объекты делятся на две категории: пассивные и активные. Пассивный объект (passive object) оперирует только данными и не может инициировать деятельность по управлению другими объектами. Активный объект (active object) имеет свой собственный поток управления (процесс) и может инициировать деятельность по управлению другими объектами. Как правило, активные объекты на диаграмме кооперации обозначаются либо утолщением границ прямоугольника, либо явным указанием ключевого слова {active}.

В качестве иллюстрации вышеизложенного на рис. 30 приведен пример диаграммы кооперации для вызова функции печати из текстового редактора [2].

Рисунок 30 – Пример диаграммы кооперации

Составной объект (composite object) представляет экземпляр класса-композита, который связан отношением композиции со своими частями (см. пример на рис. 31).

 
 

 

 


Рисунок 31 – Составной объект «Окно»

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

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

Стрелки сообщений могут быть трех типов:

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

сплошная линия с V-образной стрелкой () обозначает асинхронное сообщение, то есть объект, передающий сообщение, продолжает свою деятельность, не ожидая ответа;

пунктирная линия с V-образной стрелкой () обозначает возврат из вызова процедуры; как правило, предполагаются по умолчанию и на диаграммах изображаются редко.

 

Сообщение имеет следующий формат:

 

<Предшествующие сообщения> <Выражение> <Значение:=имя> <(Список аргументов)>

 

Смысл указания предшествующих сообщений заключается в том, что данное сообщение не может быть передано, пока не будут переданы адресатам перечисленные сообщения:

 

2,4 / 5: передать (данные)

 

Выражение может представлять собой условие, при котором будет осуществляться передача сообщения:

 

6 [(xc > 0) & (xc < 800)]: нарисоватьКруг (xc, 100)

 

Значение предполагает, что ожидается возврат некоторых результатов выполнения операции:

 

7: аПринтер:=выбратьПринтер()

 

На рис. 32 и рис. 33 приведены примеры диаграмм кооперации – для модели системы управления банкоматом (из [2] – прецедент «Снятие наличных») и для модели простейшей информационной системы (прецедент «Работа пользователя: формирование отчета»). Стереотипы связей (<<Local>>, <<Global>> и т. п.) показаны буквами на концах.

 

Рисунок 32 – Диаграмма кооперации для модели системы

управления банкоматом

 

Рисунок 33 – Диаграмма кооперации для модели простейшей

информационной системы

 

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 618; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.254.0 (0.009 с.)