Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
215
Добавлен:
22.08.2013
Размер:
297.12 Кб
Скачать

7.9. Диаграмма последовательности

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

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

Вторым измерением диаграммы последовательности является вертикальная временная ось, направленная сверху вниз. Начальному моменту времени соответствует самая верхняя часть диаграммы. Взаимодействия объектов реализуются посредством сообщений, которые посылаются одними объектами другим. Сообщения изображаются в виде горизонтальных стрелок с именем сообщения, а их порядок определяется временем возникновения. Масштаб на оси времени не указывается, поскольку диаграмма последовательности моделирует лишь временную упорядоченность взаимодействий типа «раньше-позже».

Не обязательно создавать все объекты в начальный момент времени. Отдельные объекты могут создаваться по мере необходимости. В этом случае прямоугольник объекта изображается не в верхней части диаграммы, а в той, которая соответствует моменту создания объекта. При этом прямоугольник вертикально располагается в том месте диаграммы, которое по оси времени совпадает с моментом его возникновения в системе. Объект создается со своей линией жизни, а возможно, и с фокусом управления (слайд 9).

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

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

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

Фокус управления – специальный символ, указывающий период времени, в течение которого объект выполняет некоторое действие, находясь в активном состоянии. Получить фокус управления может только существующий объект, у которого в этот момент имеется линия жизни. Если же некоторый объект был уничтожен, то вновь возникнуть в системе он уже не может. Вместо него лишь может быть создан другой экземпляр этого же класса, который, строго говоря, будет являться другим объектом.

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

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

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

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

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

При ветвлении потока управления рисуются две или более стрелки, выходящие из одной точки фокуса управления объекта. Количество ветвей может быть произвольным. Предложение-условие должно быть явно указано для каждой ветви и всегда должно возвращать некоторое булевское выражение. Условия должны взаимно исключать одновременную передачу альтернативных сообщений (слайд 8).

Некоторые стандартные действия, выполняемые в ответ на получение соответствующего сообщения могут быть явно указаны на диаграмме последовательности в форме стереотипа рядом с сообщением, к которому они относятся ("call" (вызвать) "return" (возвратить) "create" (создать) "destroy" (уничтожить) ".

Примеры. (слайд 9)

Соседние файлы в папке Lekcii