Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Часть 6.doc
Скачиваний:
34
Добавлен:
02.05.2014
Размер:
5.45 Mб
Скачать

6.5. Диаграммы взаимодействия

В UML есть два вида диаграмм взаимодействия: диаграммы кооперации (col­laboration diagram) и диаграммы последовательности (sequence diagram). Семан­тически они эквивалентны.

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

Помеченные стрелки рядом с дугами обозначают имя сообщения и направление его передачи между объектами. От­дельные сообщения в последовательности сообщений, отправляемых от одного объекта к другому, нумеруются. Нотация диаграмм кооперации представлена на рис.6.5. Необязательное повторение обозначается символом *, свидетельствую­щим, что информация посылается более одного раза. Необязательное условие означает, что сообщение посылается только тогда, когда условие истинно.

Рис. 6.5. Диаграмма кооперации в нотации UML

6.5.2. Диаграммы последовательности. Другой способ показать взаимодействие объектов – воспользоваться диаграм­мой последовательности (рис. 6.6). На ней обмен объектов сообщениями пред­ставлен во времени более точно и наглядно. Диаграмма последовательности дву­мерна: участвующие объекты изображаются вдоль горизонтальной оси, а время откладывается вдоль вертикальной. От прямоугольника каждого объекта идет вниз вертикальная пунктирная линия, называемая линией жизни. Период, в тече­ние которого объект выполняет операцию, именуется активизацией. На протяже­нии этого периода линия жизни изображается двойной сплошной линией.

Актер обычно изображается в левом верхнем углу диаграммы. Помеченные горизонтальные линии представляют пересылку сообщений. Существенны толь­ко отправитель и получатель сообщения. Сообщение посылается объектом-отпра­вителем объекту-получателю. Время возрастает в направлении сверху вниз. Расстояние по вертикали между сообщениями не имеет значения.

6.6. Диаграммы состояний

В нотации UML диаграмма перехода состояний называется диаграммой со­стояний. На ней состояния представляются прямоугольниками со скругленными углами, а переходы – соединяющими их дугами (рис. 6.7). Начальное состояние обозначается дугой, исходящей из маленького закрашенного кружка. Может также присутствовать необязательное конечное состояние, изображаемое закрашенным кружком внутри незакрашенного (иногда его называют «бычий глаз»). Диаграмму состояний разрешается подвергнуть иерархической декомпозиции, так что надсостояние разлагается на подсостояния.

Рядом с дугой, представляющей переход, находится условие перехода в виде: Событие [условие]/Действие. Событие вызывает переход в новое состояние. Если задано необязательное булевское условие, то переход осуществится, когда оно истинно. В результате перехода может быть выполнено необязательное действие. Дополнительно с состоянием иногда ассоциируются:

– действие при входе в состояние;

– деятельность, выполняемая во время нахождения внутри состояния;

– действие при выходе из состояния.

Рис.6.6. Диаграмма последовательности в нотации UML

Рис. 6.7. Диаграмма состояний в нотацииUML

надсостояние с последовательными подсостояниями

На рис. 6.7 показано надсостояние А, разложенное на два последовательных подсостояния – А1 и А2. В этом случае диаграмма в каждый момент времени мо­жет находиться только в одном состоянии, то есть сначала будет вход в подсостояние А1, а затем – в подсостояние А2. На рис.6.8 изображено надсостояние В, разложенное на два параллельных подсостояния – ВС и BD. Здесь объект, описы­ваемый диаграммой, одновременно находится в каждом из подсостояний ВС и BD. Далее каждое параллельное подсостояние раскладывается на последова­тельные. Таким образом, вход в надсостояние В сопровождается одновременным входом в подсостояния В1 и В3.

Рис. 6.8. Нотация U ML для диаграммы состояний:

надсостояние с параллельными подсостояниями