- •Ииссттееммыы
- •Диаграмма кооперации на уровне примеров. Объекты
- •Примеры записи строки текста в прямоугольнике объекта
- •Примеры связей с различными стереотипами
- •Например:
- •Заключительные рекомендации по построению диаграмм кооперации
- •Диаграмма последовательности Объекты
- •Графическое изображение различных видов сообщений между объектами на
Графическое изображение различных видов сообщений между объектами на
диаграмме
последовательности
Сообщения
· Обычно сообщения изображаются горизонтальными стрелками, соединяющими линии жизни или фокусы управления двух объектов на диаграмме последовательности. При этом неявно предполагается, что время передачи сообщения достаточно мало по сравнению с процессами выполнения действий объектами. Считается также, что за время передачи сообщения с соответствующими объектами не может
ррооииззооййттии ннииккааккиихх ссооббыыттиийй,, тт..ее.. ссооссттоояянниияя ооббъъееккттоовв остаются без изменения. Если же это предположение не может быть признано справедливым, то стрелка сообщения изображается под некоторым наклоном, так чтобы конец стрелки располагался ниже ее начала.
· В отдельных случаях объект может посылать сообщения самому себе, инициируя так называемые рефлексивные сообщения (объект 8). Такие сообщения изображаются прямоугольником со стрелкой, начало и конец которой совпадают. Подобные ситуации возникают, например, при обработке нажатий на клавиши клавиатуры при вводе текста в редактируемый документ, при наборе цифр номера телефона абонента.
Сообщения
· В языке UML могут встречаться несколько разновидностей сообщений, каждое из которых
имеет свое графическое изображение.
· Первая разновидность сообщения (рис. а) используется для вызова процедур,
выполнения операций или обозначения отдельных вложенных потоков управления. Начало
этой стрелки всегда соприкасается с фокусом управления или линией жизни объекта-
клиента. Конец стрелки соприкасается с линией жизни того объекта, который принимает это
сообщение и выполняет в ответ определенные действия. При этом принимающий объект
зачастую получает и фокус управления, становясь активным.
· Вторая разновидность сообщения (рис. б) используется для обозначения простого (не
вложенного) потока управления. Такие сообщения обычно являются асинхронными, т. е.
могут возникать в произвольные моменты времени. Передача такого сообщения обычно
сопровождается получением фокуса управления объектом, его принявшим.
· Третья разновидность (рис. в) явно обозначает асинхронное сообщение между двумя
объектами в некоторой процедурной последовательности. Примером такого сообщения
может служить прерывание операции при возникновении исключительной ситуации. В этом
случае информация о такой ситуации передается вызывающему объекту для продолжения
процесса дальнейшего взаимодействия.
· Четвертая разновидность сообщения (рис. г) используется для возврата из вызова
процедуры.
Ветвление потока управления
· Для изображения ветвления рисуются две или более стрелки,
выходящие из одной точки фокуса управления объекта (фокус
управления объекта 1). При этом соответствующие условия должны быть явно указаны рядом с каждой из стрелок в форме
сторожевого условия.
Графическое
изображение
бинарного
ветвления
потока
управления
на
диаграмме
последовательности
Ветвление потока управления
Графическое
изображение
тернарного
ветвления
потока
управления
на
диаграмме
последовательности.
Моделирование
взаимодействия
программной
системы
обслуживания
клиентов
в
банке.
Условием
ветвления
служит
сумма
снимаемых
клиентом
средств
со
своего
текущего
счета.
Стереотипы сообщений
· В языке UML предусмотрены некоторые стандартные действия, выполняемые в ответ на получение соответствующего сообщения. Они могут быть явно указаны на диаграмме последовательности в форме стереотипа рядом с сообщением, к которому они относятся. В этом случае они записываются в кавычках. Используются следующие обозначения для моделирования действий:
· "call" (вызвать) - сообщение, требующее вызова операции или процедуры принимающего объекта.;
rreettuurrnn"" ((ввооззввррааттииттьь)) -- ссооооббщщееннииее,, ввооззвврраащщааюющщееее ззннааччееннииее ввыыппооллннеенннноойй операции или процедуры вызвавшему ее объекту.
· "create" (создать) - сообщение, требующее создания другого объекта для выполнения определенных действий.
· "destroy" (уничтожить) - сообщение с явным требованием уничтожить соответствующий объект. Посылается в том случае, когда необходимо прекратить нежелательные действия со стороны существующего в системе объекта, либо когда объект больше не нужен и должен освободить задействованные им системные ресурсы;
· "send" (послать) - обозначает посылку другому объекту некоторого сигнала, который асинхронно инициируется одним объектом и принимается другим. Отличие сигнала от сообщения заключается в том, что сигнал должен быть явно описан в том классе, объект которого инициирует его передачу.
Диаграмма
последовательности
со
стереотипными
значениями
сообщений
Временные ограничения на диаграммах последовательности
· В отдельных случаях выполнение тех или иных действий на
диаграмме последовательности может потребовать явной
спецификации временных ограничений, накладываемых на сам интервал выполнения операций или передачу
сообщений, явно специфицируя условия их передачи или
приема.
· В языке UML для записи временных ограничений используются
ииггууррнныыее ссккооббккии.. · Примеры:
· {время_приема_сообщения-время_отправки_сообщения < 1
сек.}
· {время_ожидания_ответа < 5 сек.} · {время_передачи_пакета < 10 сек.}
· {объект_1. время_подачи_сигнала_тревоги > 30 сек.}
Пример построения диаграммы последовательности
· В качестве примера рассмотрим построение диаграммы последовательности для моделирования процесса телефонного разговора с использованием обычной
ееллееффоонннноойй ссееттии..
· Объектами в этом примере являются: два абонента а и b, два телефонных аппарата, коммутатор и сам разговор как объект моделирования. При этом как коммутатор, так и разговор являются анонимными объектами.
Пример построения диаграммы последовательности
· На первом этапе располагаем выбранные объекты на
предполагаемой диаграмме. Абонентов будем рассматривать
как актеров, причем первый из них - а - играет активную роль, а второй - b - пассивную роль. Поэтому первый получает фокус
управления сразу после своего появления в системе, а второй
имеет
только
линию
жизни.
Пример построения диаграммы последовательности
· Процесс
взаимодействия
в
этой
системе
начинается
с
поднятия
трубки
телефонного
аппарата
первым
абонентом.
Тем
самым
он
посылает
сообщение
телефонному
аппарату
с,
которое
переводит
этот
аппарат
в
активное
состояние
и
вызывает
действие
-подачу
тонового
сигнала
в
телефонную
трубку
для
первого
абонента.
Следующее
действие
также
инициируется
первым
ббооннееннттоомм ааббоорр ццииффрр ттееллееффооннннооггоо номера. Это представлено в форме итеративного сообщения со знаком "*" слева от его имени.
· Заметим, что поднятие телефонной трубки и набор цифр номера являются физическими действиями и поэтому изображаются в форме простых асинхронных сообщений. После набора цифр номера телефона аппарат с рекурсивно вызывает процедуру посылки коммутационных импульсов на коммутатор. Последний инициирует создание нового объекта в моделируемой системе -телефонного разговора.
Пример построения диаграммы
последовательности
· После создания анонимный объект "разговор" сразу получает
фокус активности и посылает сообщение телефонному
аппарату d на выполнение действия - звонка вызова. При этом
второй абонент снимает трубку (асинхронное сообщение), тем
самым устанавливается прямое соединение между абонентами
а и b. После того как абоненты опустят трубки, разговор
заканчивается.
Тем
самым
объект
"разговор"
уничтожается.
