Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Краткие теоретические сведения. Диаграммапоследовательности(sequence diagram) – диаграмма, на которой показаны взаи­модействия объектов






Диаграммапоследовательности (sequence diagram) – диаграмма, на которой показаны взаи­модействия объектов, упорядоченные по времени их проявления.

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

На диаграмме последовательности изображаются объекты, которые непо­сред­ственно участвуют во взаимодействии, при этом никакие статические связи с дру­гими объектами не визуа­лизируются. Диаграмма последовательности имеет как бы два измерения: одно - слева направо в виде вертикальных линий, каждая из которых изображает ли­нию жизни отдельного объекта; второе – вер­тикальная временная ось, направленная сверху вниз.

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

Объекты записываются так же, как и в диаграмме кооперации. Анонимный объект – такой объект, для которого отсутствует собственное имя, но указано имя класса. Объект-сирота – такой объект, для которого может отсутствовать имя класса, но указано собственное имя объекта. Роль классов в именах объек­тов на диаграммах последовательности, как правило, не указывается.

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

 


Рис. 35. Графические элементы диаграммы последовательности

 

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

Линия жизни объекта (object lifeline) – вертикальная линия на диа­грамме по­следовательно­сти, которая представляет существование объекта в те­чение опреде­ленного периода времени. Линия жизни объекта изображается пунктирной вертикальной линией, ас­соции­рованной с единственным объектом на диаграмме последовательности. Линия жизни служит для обозначения периода времени, в течение которого объект суще­ствует в системе и может потен­циально участво­вать во всех ее вза­имодействиях. Если объект существует в системе постоянно, то и его линия жизни должна продол­жаться по всей рабочей области диаграммы последовательности от самой верхней ее части до самой нижней («объект 1» и анонимный объект «Класса 2»).

Отдельные объекты, закончив выполнение своих операций, могут быть уничто­жены, чтобы освободить занимаемые ими ресурсы. Для таких объектов линия жизни обрывается в мо­мент его уничтожения. Для обозначения момента уничтожения объ­екта в языке UML применяется специальный символ в форме латинской буквы " X". На рис. 36 этот символ используется для уни­чтожения анонимного объекта, образо­ванного от «Класса 3». Ниже этого символа пунк­тирная линия не изображается, поскольку соответствующего объекта в системе уже нет, и этот объект должен быть исключен из всех последующих взаимодей­ствий.

 

Рис. 36. Графическое изображение линий жизни и фокусов управления объектов

 

От­дельные объ­екты в системе могут создаваться по мере необходимости, суще­ственно экономя ресурсы системы и повышая ее производительность. В этом случае прямо­угольник такого объекта изображается не в верхней части диа­граммы последова­тельности, а в той, которая соответствует моменту создания объекта (анонимный объект, образованный от «Класса 3» на рис. 36). При этом прямоугольник объ­екта вертикально располагается в том месте диаграммы, ко­торое по оси времени совпа­дает с мо­ментом его возникновения в системе. Объ­ект создается со своей линией жизни а, возможно, и с фокусом управления.

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

Фокусуправления (focus of control) - специальный символ на диаграмме по­следовательно­сти, указывающий период времени, в течение которого объект вы­полняет некоторое действие, находясь в активном состоянии.

Фокус управления изображается в форме вытянутого узкого прямоуголь­ника («объект а» на рис. 35), верхняя сторона которого обозначает начало по­лучения фо­куса управления объекта (начало активности), а ее нижняя сторона - окончание фо­куса управления (окончание активности). Этот прямоугольник располагается ниже обозначения соответствующего объекта и может заме­нять его линию жизни («объ­ект a» на рис. 36), если на всем ее протяжении он акти­вен.

Периоды активности объекта могут чередоваться с периодами его пассив­ности или ожида­ния. В этом случае у такого объекта фокусы управления изме­няют свое изображение на линию жизни и наоборот (объект сирота «ob2» на рис. 36). Получить фокус управле­ния может только объ­ект, у которого в этот момент имеется линия жизни. Если же объект был уни­чтожен, то вновь возникнуть в системе он уже не может. Вместо него может быть создан лишь экземпляр этого же класса, который, строго говоря, будет другим объектом.

В отдельных случаях объект может посылать сообщения самому себе, иниции­руя так назы­ваемые рефлексивные сообщения. Для этой цели служит специальное изображение (сообщение у «объекта а» на рис. 37). Такие сообще­ния изображаются в форме сообщения, начало и конец кото­рого соприкасаются с линией жизни или фокусом управления одного и того же объекта. Подобные ситуации возникают, например, при обработке нажатий на клавиши клавиатуры при вводе текста в редак­тируемый документ, при наборе цифр номера телефона абонента.

Если в результате рефлексивного сообщения создается новый подпроцесс или нить управ­ления, то говорят о рекурсивном или вложенном фокусе управ­ления. На диаграмме последова­тельности рекурсия обозначается небольшим прямоугольни­ком, присоединенным к правой сто­роне фокуса управления того объекта, для кото­рого изображается данное рекурсивное взаимодей­ствие (ано­нимный объект «Класса 2» на рис. 37).

Рис. 37. Графическое изображение актера, рефлексивного сообщения и рекурсии

 

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

 

Рис. 38. Графическое изображение различных видов сообщений между объектами на диа­грамме последовательности

 

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

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

Третья разновидность сообщения (рис. 38, в) используется для возврата из вы­зова проце­дуры. Примером может служить простое сообщение о заверше­нии вы­числений без предоставле­ния результата расчетов объекту-клиенту. В процедурных потоках управления эта стрелка может быть опущена, поскольку ее наличие неявно предполагается в конце активизации объекта. В то же время считается, что каждый вызов процедуры имеет свою пару - возврат вызова. Для непроце­дурных потоков управления, включая параллельные и асинхронные со­общения, стрелка возврата должна указываться явным образом.

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

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

Одна из особенностей диаграммы последовательности - возможность ви­зуали­зировать про­стое ветвление процесса. Для изображения ветвления исполь­зуются две или более стрелки, выхо­дящие из одной точки фокуса управления объекта (объект «ob1» на рис. 39). При этом рядом с каж­дой из них должно быть явно указано соот­ветствующее условие ветви в форме булевского выра­жения.

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

 


Рис. 6.5. Графическое изображение бинарного ветвления потока управления на диаграмме после­довательности

 

С помощью ветвления можно изобразить и более сложную логику взаи­модей­ствия объек­тов между собой (объект «ob1» на рис.40). Если условий бо­лее двух, то для каждого из них необхо­димо предусмотреть ситуацию един­ственного выполне­ния. Описанный ниже пример относится к моделированию взаимодействия про­граммной системы обслуживания клиентов в банке.

Пример: объект «ob1» вызывает выполнение действий у одного из трех других объектов. Условием ветвления может служить сумма снимаемых клиен­том средств со своего теку­щего счета. Если эта сумма превышает 1500$, то мо­гут потребоваться дополнительные действия, связанные с созданием и после­дующим разрушением объекта «Класса 1». Если же сумма превышает 100$, но не превышает 1500$, то вызывается операция или процедура объекта «ob3». И, наконец, если сумма не пре­вышает 100$, то вызывается операция или процедура объекта «ob2». При этом объ­екты «ob1», «ob2» и «ob3» постоянно существуют в системе. Последний объект со­здается от «Класса 1» только в том случае, если справедливо первое из альтернатив­ных условий. В противном случае он может быть никогда не создан.

Рис. 40. Графическое изображение тернарного ветвления потока управ­ления на диаграмме последовательности

 

Объект «ob1» имеет постоянный фокус управления, а все остальные объ­екты - получают фо­кус управления только для выполнения ими соответствую­щих опера­ций. На диаграммах последовательности при записи сообщений также могут исполь­зоваться стереотипы. Ниже пред­ставлена диаграмма по­следовательности для опи­санного выше случая ветвления, дополненная стерео­типными значениями от­дель­ных сообщений (рис. 41).

 

Рис. 41. Диаграмма последовательности со стереотипными значениями сообщений

 

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

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

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

Пример: Программное средство представляет среду для формирования отчетов по лекционному материалу. Пользователь может вводить свою информацию в от­четы, изменять параметры. После оформления отчетов пользователю предоставлена возможность сохранение отчета. Вывода его на печать и его архивацию.

Рис. 42. Пример диаграммы последовательности






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.