Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


 
Компьютерный лабораторный практикум "Моделирование"
дипломная работа
выполнила: студентка Е.С.Бенькович
Санкт-Петербургский Государственный Технический Университет
Кафедра распределенных вычислений и компьютерных сетей
Санкт-Петербург
2001

Вернуться на страницу <Model Vision Studium>
В начало

Технология моделирования UML

Диаграммы взаимодействия (interaction diagrams)

Взаимодействие между объектами в системе представляются диаграммами взаимодействия (interaction diagrams). Диаграммы взаимодействия подразделяются на два основных типа диаграмм: диаграммы последовательности (sequence diagrams) и кооперативные диаграммы (collaboration diagrams).

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

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

1. Диаграммы последовательности (sequence diagrams)

Диаграммы последовательности имеют две размерности: вертикальная представляет время, горизонтальная - различные объекты. Оси могут меняться местами, так что ось времени может располагаться горизонтально, слева направо, а список объектов располагаться вертикально.

Объект на диаграмме изображается в виде прямоугольника на вершине вертикальной пунктирной линии, называемой линией жизни объекта (lifeline) (рис.2.20). Она представляет собой фрагмент жизненного цикла объекта в процессе взаимодействия. Если объект создается или уничтожается на отрезке времени, представленном на диаграмме, то его линия жизни начинается и заканчивается в соответствующих точках, в противном случае линия жизни объекта проводится от начала до конца диаграммы. Символ объекта рисуется в начале его линии жизни; если объект создается не в начале диаграммы, то сообщение о создании объекта рисуется со стрелкой, проведенной к символу объекта. Если объект уничтожается не в конце диаграммы, то момент его уничтожения помечается большим крестиком "Х". При сообщении, вызывающем уничтожение объекта (или самоуничтожение), в конце возвращается сообщение об уничтожении объекта. Линия жизни может разветвляться в две (и более) параллельные линии, показываемые условно. Каждая ответвляющаяся линия соответствует переходу в потоке сообщений. Линии жизни могут объединяться в некоторой последующей отметке.

Рисунок 2.20 "Диаграмма последовательности №1"

Сообщения (message) связывают объекты между собой и передают информацию о выполняемом действии.

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

Сообщения могут быть следующих типов:

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

Обычно стрелка с сообщением рисуется горизонтально. Это символизирует, что сообщение передается мгновенно и ничего не может произойти в момент передачи. Если на передачу сообщения необходимо какое-то время, в течение которого может что-нибудь произойти (например, посылка сообщения в противоположном направлении), то линия со стрелкой может быть ломаной (конец стрелки располагается ниже ее начала).

Объединенный набор сообщений может быть маркирован как итерация (iteration). Маркером итерации служи символ *. Для сценария итерация указывает, что множество сообщений может передаваться многократно. Для процедуры условие продолжения итерации может указываться в конце итерации. Возможны случаи, когда часть сообщений является частью итерации, а остальные сообщения могут быть выполнены только однократно.

Переходы (transition) рисуются как многократные стрелки, проведенные в одну точку, помеченные условием перехода. Переход может быть именован. Имя представляет собой время посылки сообщения (например: А). В случае, когда передача сообщения происходит не мгновенно, время получения отмечается именем со штрихом (например: А’). Имя может быть проставлено слева от стрелки. Имя может быть использовано для выражения, ограничивающего время посылки сообщений. Ограничения помещаются в фигурных.

Диаграммы последовательности полезны для представления параллельных процессов. Для этого в диаграммах последовательности вводятся активации (activation). Активация показывает период времени, в течение которого объект выполняет действия непосредственно или через зависимую процедуру.

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

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

Рисунок 2.21 "Диаграмма последовательности №2"

Кооперативные диаграммы (collaboration diagrams)

Кооперативные диаграммы (collaboration diagrams) предоставляют возможность пространственно располагать объекты. В отличие от диаграмм последовательности, на кооперативных диаграммах экземпляры объектов показываются в виде пиктограмм. На диаграмме отображаются лишь те объекты, что прямо или косвенно участвуют в выполнении данного варианта использования. Так же как на диаграмме последовательности, линии со стрелкой на конце обозначают сообщения, обмен которыми осуществляется в рамках данного варианта использования. Их временная последовательность, однако, указывается путем нумерации сообщений.

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

  • Линия с заполненной стрелкой. Обозначает вызов процедуры. Может использоваться также между параллельно работающими активными объектами для посылки сигналов и ожиданий.
  • Линия с половинкой стрелки. Асинхронный поток управления. Используется для явного указания на асинхронный обмен сообщениями между двумя объектами.
  • Другие разновидности. Могут представлять другие разновидности управления, например, "balking" или "timeout", но они обычно воспринимаются как дополнительные возможности UML.

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

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

Пиктограмма объекта на кооперативной диаграмме помечается строкой имени, имеющей вид:

<ИмяОбъекта : Имя Класса>

где имя объекта, либо имя класса могут отсутствовать. Обратите внимание, что если имя объекта отсутствует, то перед именем класса для ясности сохраняется двоеточие.

Вызов взаимодействия на диаграмме может быть представлен символом действующего лица (рис..2.22).

Рисунок 2.22 "Кооперативная диаграмма"

В начало
Вернуться на страницу <Model Vision Studium>

| На первую страницу | Поиск | Купить Matlab

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


Copyright © 1993-2024. Компания Softline. Все права защищены.

Дата последнего обновления информации на сайте: 04.03.17
Сайт начал работу 01.09.00