Учебники

10) Взаимодействие, Сотрудничество, Диаграммы последовательности

Что такое диаграмма взаимодействия?

ДИАГРАММА ВЗАИМОДЕЙСТВИЯ используется в UML для установления связи между объектами. Он не манипулирует данными, связанными с конкретным каналом связи. Диаграммы взаимодействия в основном сосредоточены на передаче сообщений и на том, как эти сообщения составляют одну функциональность системы. Диаграммы взаимодействия предназначены для отображения того, как объекты будут реализовывать определенные требования системы. Критическим компонентом в диаграмме взаимодействия является линия жизни и сообщения.

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

Обозначение диаграммы взаимодействия

Ниже приведены различные типы диаграмм взаимодействия, определенных в UML:

  • Диаграмма последовательности
  • Диаграмма сотрудничества
  • Временная диаграмма

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

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

Временные диаграммы сосредоточены на том моменте, когда сообщение отправляется от одного объекта другому.

Цель диаграммы взаимодействия

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

Диаграммы взаимодействия фокусируются на динамическом поведении системы. Диаграмма взаимодействия предоставляет нам контекст взаимодействия между одной или несколькими линиями жизни в системе.

В UML диаграммы взаимодействия используются для следующих целей:

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

Важная терминология

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

дорога жизни

Линия жизни представляет единственного участника взаимодействия. Он описывает, как экземпляр конкретного классификатора участвует во взаимодействии.

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

  1. имя
    1. Он используется для обозначения линии жизни в рамках конкретного взаимодействия.
    2. Имя спасательного круга необязательно.
  2. Тип
    1. Это имя классификатора, жизненный путь которого представляет собой экземпляр.
  3. селектор
    1. Это логическое условие, которое используется для выбора конкретного экземпляра, который удовлетворяет требованию.
    2. Атрибут селектора также необязателен.

Обозначение линии жизни объясняется в разделе обозначений.

Сообщения

Сообщение — это особый тип связи между двумя линиями жизни во взаимодействии. Сообщение включает в себя следующие действия,

  1. Сообщение вызова, которое используется для вызова операции.
  2. Сообщение для создания экземпляра.
  3. Сообщение, чтобы уничтожить экземпляр.
  4. Для отправки сигнала.

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

Ниже приведены сообщения, используемые на диаграмме взаимодействия:

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

Государственные инварианты и ограничения

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

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

оператор

Оператор определяет операцию о том, как будут выполняться операнды. Операторы в UML поддерживают операции с данными в форме ветвления, а также итерации. Различные операторы могут использоваться для обеспечения использования итерации и ветвления в модели UML. Операторы opt и alt используются для операций ветвления. Оператор цикла используется для обеспечения итерационных операций, в которых условие выполняется многократно, пока не будет получен удовлетворительный результат. Оператор разрыва используется внутри цикла или итерационных операций. Это гарантирует, что цикл завершается всякий раз, когда встречается оператор останова. Если условие останова не указано, то цикл выполняется бесконечное число раз, что приводит к сбою программы.

Ниже приведены операторы, используемые в диаграмме взаимодействия:

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

итерация

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

В итерации, чтобы показать, что сообщения отправляются параллельно, используется спецификатор параллельной итерации. Спецификатор параллельной итерации обозначается * //. Итерация в UML достигается с помощью оператора цикла.

разветвление

На диаграмме взаимодействия мы можем представить ветвление, добавив защитные условия к сообщениям. Защитные условия используются для проверки возможности пересылки сообщения. Сообщение отправляется только тогда, когда его защитное условие истинно. Сообщение может иметь несколько условий защиты или несколько сообщений могут иметь одинаковые условия защиты. Разветвление в UML достигается с помощью операторов alt и opt.

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

Типы взаимодействия диаграмм и обозначений

Ниже приведены различные типы диаграмм взаимодействия, определенных в UML:

  • Диаграмма последовательности
  • Диаграмма сотрудничества
  • Временная диаграмма

Основное обозначение взаимодействия — это прямоугольник с пятиугольником в верхнем левом углу прямоугольника.

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

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

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

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

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

Упорядоченная последовательность событий в данной диаграмме последовательности выглядит следующим образом:

  1. Разместите заказ.
  2. Платите деньги на кассу.
  3. Подтверждение заказа.
  4. Подготовка заказа.
  5. Заказать сервировку.

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

Вы должны быть осторожны при выборе обозначения сообщения для любого конкретного взаимодействия. Обозначения должны соответствовать определенной последовательности внутри диаграммы.

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

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

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

  • Диаграммы последовательности могут стать сложными, когда в системе задействовано слишком много линий жизни.
  • Если порядок последовательности сообщений изменяется, то получаются неверные результаты.
  • Каждая последовательность должна быть представлена ​​с использованием разных обозначений сообщений, которые могут быть немного сложными.
  • Тип сообщения определяет тип последовательности внутри диаграммы.

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

Диаграмма преимуществ сотрудничества

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

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

Недостатки диаграммы сотрудничества

  • Диаграммы сотрудничества могут стать сложными, когда в системе присутствует слишком много объектов.
  • Трудно исследовать каждый объект внутри системы.
  • Диаграммы сотрудничества занимают много времени.
  • Объект уничтожается после завершения программы.
  • Состояние объекта изменяется на мгновение, что затрудняет отслеживание каждого отдельного изменения, которое происходит внутри объекта системы.

Пример диаграммы сотрудничества

Следующая диаграмма представляет последовательность по системе управления студентами:

Схема сотрудничества для системы управления студентами

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

  1. Студент запрашивает логин через систему авторизации.
  2. Механизм аутентификации программного обеспечения проверяет запрос.
  3. Если запись о студенте существует в базе данных, то доступ разрешен; в противном случае возвращается ошибка.

Что такое временная диаграмма?

ВРЕМЕННАЯ ДИАГРАММА — это форма волны или график, который используется для описания состояния линии жизни в любой момент времени. Он используется для обозначения преобразования объекта из одной формы в другую форму. Временная диаграмма не содержит обозначений, требуемых в диаграмме последовательности и сотрудничества. Поток между программой в различные моменты времени представлен с использованием формы волны.

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

Пример временной диаграммы

Приведенная ниже временная диаграмма представляет несколько этапов жизненного цикла разработки программного обеспечения.

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

Преимущества временной диаграммы

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

Недостатки временной диаграммы

  • Временные диаграммы сложны для понимания.
  • Временные диаграммы сложно поддерживать.

Как нарисовать диаграмму взаимодействия?

Интерактивные диаграммы используются для представления интерактивного поведения системы. Диаграммы взаимодействия фокусируются на динамическом поведении системы. Диаграмма взаимодействия предоставляет нам контекст взаимодействия между одной или несколькими линиями жизни в системе.

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

  1. Общее количество спасательных кругов, которые станут частью взаимодействия
  2. последовательность сообщений в различных объектах системы
  3. Различные операторы для облегчения функциональности диаграммы взаимодействия.
  4. Различные типы сообщений для более четкого и точного отображения взаимодействия.
  5. Упорядоченная последовательность сообщений.
  6. Организация и структура объекта.
  7. Различные временные конструкции объекта.

Использование диаграммы взаимодействия

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

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

Резюме

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