Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КИС_2013_02_18.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

Диаграмма сотрудничества cod

Диаграмма сотрудничества (collaboration diagram) предназначена для отображения структуры взаимодействующих объектов, их взаимосвязей и потока сообщений, которыми они обмениваются. Подобно диаграмме последовательностей она служит для моделирования взаимодействия объектов. Но, в отличие от последней на диаграмме сотрудничества явно показывается контекст взаимодействия, который определяется статической структурой модели.

COD диаграмма может быть использована для моделирования реализации операций класса, описания сценариев взаимодействия пользователей с системой или определения статической структуры класса.

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

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

Рисунок 37. Обозначение анонимного объекта

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

Рисунок 38. Обозначение нового объекта

Объекты, созданные во время выполнения программы, помечаются ключевым словом {new}, уничтоженные объекты – {destroyed}, а временные объекты (созданные и затем разрушенные) – {transient}.

Связи между объектами показываются при помощи дуг

Рисунок 39. Обозначение связей между объектами

Рисунок 40. Обозначение агрегатных связей

Допускается использование агрегирования и квалификации. Например, ассоциация между строками документа и его заголовком изображается так

Роль объекта в ассоциации указывается рядом с концом ассоциации.

Рисунок 41. Изображение роли

Для дополнительной характеристики роли используются следующие стереотипы:

Наименование

Сокращение

Назначение

assosiation

asc

ассоциация (по умолчанию)

parameter

par

параметр процедуры

local

loc

локальная переменная

global

glob

глобальная переменная

self

self

ссылка на себя

Имя стереотипа берется в кавычки и располагается перед именем роли. Причем, имя роли можно не указывать.

Рисунок 42. Использование стереотипов

Рисунок 43. Использование актеров

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

Взаимодействие

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

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

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

Рисунок 44. Обозначение сообщений

Возможны следующие типы сообщений:

Обозначение

Назначение

Обычный поток управления. Каждая стрелка показывает следующий шаг последовательности

Вызов процедуры или вложенный поток управления. Вся вложенная последовательность должна завершиться, прежде чем внешний поток управления сможет продолжиться далее.

Асинхронный поток управления.

Р

Предшественники Номер Условие : Переменные := Имя Аргументы

ядом со стрелкой указывается метка сообщения, которая имеет следующий формат:

Метка содержит следующие составные части :

1) Предшественники – список номеров сообщений, которые должны завершиться, прежде чем данное сообщение может быть послано. Список указывается через запятую и заканчивается слешем. Например, 1, 3, 7 /

2) Номер – номер текущего сообщения. Номер сообщения отражает его уровень вложенности. Например, сообщение 3.1.1 вложено в сообщение 3.1, а то, в свою очередь, вложено в сообщение 3. Для изображения параллельных (конкурентных) сообщений можно использовать символы. Например, сообщения 3.1а и 3.1б являются параллельными и вложены в сообщение 3.1.

3) Условие – задает условие посылки сообщения или итерацию. Указывается в квадратных скобках

4) Формат условия / итерации не регламентируется UML и может быть произвольным.

  1. Условие [x > y]

  2. Итерация * [i:=1..n] - признаком итерации является наличие звездочки

5) Переменные – список возвращаемых переменных. Эти идентификаторы могут быть использованы в качестве аргументов последующих сообщений

6) Имя – имя сообщения. Оно может быть именем операции, определенной на классе – получателе сообщения, или именем события, инициированного в получателе.

7) Аргументы – список аргументов сообщения, заключенный в круглые скобки

Хотя, все элементы сообщения являются необязательными, обычно на диаграммах указывают номер и имя сообщения.

Примеры расшифровки сообщений приведены в следующей таблице.

Сообщение

Предшест-венник

Номер

Условие/

Итерация

Переменные

Имя

Аргументы

2:display(x, y)

2

display

x, y

1.3.1:p:=find (spec)

1.3.1

p

find

spec

1.1*[i:=1..n]: dr(i)

1.1

*[i:=1..n]

dr

i

2.2/3.1a:r0:= pos()

2.2

3.1a

r0

pos

4 [x<0]:invert(x)

4

[x<0]

invert

x

Например, диаграмма сотрудничества “Прием гостей” может выглядеть так

Рисунок 45. Пример диаграммы сотрудничества

Диаграмма активностей AD

Диаграмма активностей (Activity Diagram) представляет собой частный случай диаграммы состояния в которой все (или по крайней мере большинство) состояний являются состояниями действия и все (или по крайней мере большинство) переходов вызваны завершениями этих действий.

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

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

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

Рисунок 46. Обозначение состояния

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

Переходы показываются при помощи стрелок, рядом с которыми могут указываться условия перехода

Рисунок 47. Обозначение условий при переходах

Например, AD диаграмма приготовления кофе может выглядеть так

Рисунок 48. Пример диаграммы активностей