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

Практическая работа № 3-4

Профессиональный модуль ПМ 03 «Участие в интеграции программных модулей»

МДК 03.02 «Инструментальные средства разработки программного обеспечения»

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

Цель: владеть нотациями языка визуального моделирования UML..

Средства, оборудование : ПК, инструментарий UML

Литература: .Орлов С. А. Технология разработки программного обеспечения, – СПб: Питер, 2003, глава 10

Выполнение работы

Теоретическое обоснование

ДИАГРАММЫ ВЗАИМОДЕЙСТВИЯ

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

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

• Окно Ввода Заказа посылает Заказу сообщение "приготовиться".

• Заказ посылает данное сообщение каждой Строке заказа в дан­ном Заказе.

• Каждая Строка заказа проверяет состояние определенного Запаса товара:

Если данная проверка удовлетворяется (результат — true), то Стро­ка заказа удаляет соответствующее количество товара из Запаса. В противном случае количество Запаса снижается до уровня по­вторного заказа, и Запас запрашивает новую поставку то­вара.

Существуют два вида диаграмм взаимодействия: диаграммы пос­ледовательности и кооперативные диаграммы.

ДИАГРАММЫ ПОСЛЕДОВАТЕЛЬНОСТИ

На диаграмме последовательности объект изображается в виде пря­моугольника на вершине пунктирной вертикальной линии (рис 11).

Эта вертикальная линия называется линией жизни объек­та. Она представляет собой фрагмент жизненного цикла объекта в процессе взаимодействия. Такую форму представления впервые ввел Ивар Якобсон.

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

Из всей возможной управляющей информации два ее вида име­ют существенное значение. Во-первых, это условие, показываю­щее, когда посылается сообщение (например, [нуженПовторныйЗа-каз = "true"]). Сообщение посылается только при выполнении дан­ного условия. Другой полезный управляющий маркер — это мар­кер итерации, показывающий, что сообщение посылается много раз для множества объектов-адресатов (например,* пригото­виться).

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

Диаграмма (см. рис. 1) содержит возврат, означающий не но­вое сообщение, а возврат из сообщения. На диаграмме возврат отли­чается от обычных сообщений тем, что его стрелка не сплошная, а имеет вид пары линий.

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

диаграммы последовательности - student2.ru

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

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

• создавать новую ветвь процесса (в этом случае оно связано с самой верхней частью активизации);

• создавать новый объект;

• устанавливать связь с уже выполняющейся ветвью процесса.

Удаление объекта показано с помощью большого знака "X". Объекты могут выполнить самоуничтожение или могут быть унич­тожены посредством еще одного сообщения.

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

КООПЕРАТИВНЫЕ ДИАГРАММЫ

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

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

Для кооперативных диаграмм можно использовать один из не­скольких вариантов нумерации. В УМЬ применяется десятичная схема нумерации (рис. 13), поскольку в этом случае понятно, ка­кая операция вызывает какую операцию, хотя может быть труднее разглядеть их общую последовательность. Независимо от используемой схемы нумерации на диаграмме можно разместить такого же рода управляющую информацию, как и на диаграмме последовательности.

На рис. 13 можно увидеть различные формы схемы именова­ния объектов, принятые в UML. Общая форма имеет вид <ИмяОбъ-екта: ИмяКласса>, где либо имя объекта, либо имя класса может отсутствовать. При отсутствии имени объекта остается двоеточие, чтобы было понятно, что это имя класса, а не объекта

диаграммы последовательности - student2.ru

Рис. 13.Кооперативная диаграмма с десятичной нумерацией

диаграммы последовательности - student2.ru

Рис. 12.Параллельные процессы и активизации

Наши рекомендации