Діаграми взаємодії, співпраці та послідовності з прикладами

Що таке діаграма взаємодії?

Діаграма взаємодії використовуються в UML для встановлення зв’язку між об’єктами. Він не маніпулює даними, пов’язаними з конкретним шляхом зв’язку. Діаграми взаємодії здебільшого зосереджені на передачі повідомлень і тому, як ці повідомлення складають одну функціональність системи. Діаграми взаємодії призначені для відображення того, як об’єкти реалізовуватимуть конкретні вимоги системи. Критичним компонентом діаграми взаємодії є лінія життя та повідомлення.

Різні елементи UML зазвичай мають діаграми взаємодії. Деталі взаємодії можна показати за допомогою кількох умовних позначень, таких як діаграма послідовності, тимчасова діаграма, діаграма зв’язку/співпраці. Діаграми взаємодії відображають динамічну поведінку будь-якої системи.

Діаграма взаємодії
Позначення діаграми взаємодії

Нижче наведено різні типи діаграм взаємодії, визначені в UML:

  • Схема послідовності
  • Діаграма співпраці
  • Часова діаграма

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

Діаграму співпраці в UML також називають діаграмою зв’язку. Мета діаграми співпраці полягає в тому, щоб підкреслити структурні аспекти системи, тобто те, як з’єднуються різні лінії життя в системі.

Часові діаграми зосереджуються на моменті, коли повідомлення надсилається від одного об’єкта до іншого.

Призначення діаграми взаємодії

Діаграми взаємодії допомагають візуалізувати інтерактивну поведінку системи. Діаграми взаємодії використовуються для представлення того, як один або кілька об’єктів у системі з’єднуються та спілкуються один з одним.

Діаграми взаємодії зосереджені на динамічній поведінці системи. Діаграма взаємодії надає нам контекст взаємодії між однією або кількома лініями життя в системі.

In UML-, діаграми взаємодії використовуються для наступних цілей:

  • Діаграми взаємодії використовуються для спостереження за динамічною поведінкою системи.
  • Діаграма взаємодії візуалізує комунікацію та послідовність проходження повідомлень у системі.
  • Діаграма моделювання взаємодії представляє структурні аспекти різних об'єктів у системі.
  • Діаграма взаємодії представляє впорядковану послідовність взаємодій у системі.
  • Діаграма взаємодії забезпечує засоби візуалізації даних у реальному часі за допомогою UML.
  • Діаграми взаємодії UML можна використовувати для пояснення архітектури об’єктно-орієнтованої або розподіленої системи.

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

Діаграма взаємодії містить лінії життя, повідомлення, оператори, інваріанти стану та обмеження.

Життєвий шлях

Лінія життя представляє одного учасника взаємодії. Він описує, як екземпляр конкретного класифікатора бере участь у взаємодії.

Лінія життя представляє роль, яку екземпляр класифікатора може відігравати у взаємодії. Нижче наведено різні атрибути рятувальної лінії,

  1. ІМ'Я
    1. Він використовується для посилання на лінію життя в рамках конкретної взаємодії.
    2. Назва рятувальної лінії необов’язкова.
  2. тип
    1. Це ім’я класифікатора, екземпляром якого є лінія життя.
  3. Селектор
    1. Це логічна умова, яка використовується для вибору конкретного екземпляра, який задовольняє вимозі.
    2. Атрибут селектора також необов'язковий.

Позначення лінії життя пояснюється в розділі позначення.

повідомлення

Повідомлення — це певний тип зв’язку між двома лініями життя у взаємодії. Повідомлення передбачає такі дії,

  1. Повідомлення виклику, яке використовується для виклику операції.
  2. Повідомлення про створення екземпляра.
  3. Повідомлення про знищення екземпляра.
  4. Для подачі сигналу.

Коли лінія життя отримує повідомлення про виклик, воно діє як запит на виклик операції, яка має подібний підпис, як зазначено в повідомленні. Коли лінія життя виконує повідомлення, вона має фокус контролю. У міру розвитку взаємодії з часом фокус контролю переміщується між різними лініями життя. Цей рух називається потоком контролю.

Нижче наведено повідомлення, які використовуються на діаграмі взаємодії системи:

Назва повідомлення Сенс
Syncхронічне повідомлення Відправник повідомлення продовжує чекати, поки одержувач поверне контроль над виконанням повідомлення.
Асинхронне повідомлення Відправник не чекає повернення від одержувача; замість цього він продовжує виконання наступного повідомлення.
Зворотне повідомлення Одержувач попереднього повідомлення повертає фокус керування відправнику.
Створення об'єкта Відправник створює екземпляр класифікатора.
Руйнування об'єкта Відправник знищує створений екземпляр.
Знайдено повідомлення Відправник повідомлення знаходиться поза сферою взаємодії.
Втрачене повідомлення Повідомлення ніколи не досягає адресата, і воно втрачається під час взаємодії.

Інваріанти та обмеження стану

Коли примірник або лінія життя отримує повідомлення, це може призвести до зміни стану. Стан — це стан або ситуація протягом життя об’єкта, коли він задовольняє певні обмеження, виконує певні операції та очікує певної події.

На діаграмі взаємодії не всі повідомлення викликають зміну стану екземпляра. Деякі повідомлення не мають значень деяких атрибутів. Не має побічного впливу на стан об'єкта.

Operaтор

Оператор визначає операцію щодо того, як виконуватимуться операнди. Оператори в UML підтримують операції з даними у формі розгалуження, а також ітерації. Для забезпечення використання ітерації та розгалуження в моделі UML можна використовувати різні оператори. Оператори opt і alt використовуються для операцій розгалуження. Оператор циклу використовується для забезпечення ітераційних операцій, у яких умова виконується неодноразово, доки не буде отримано задовільний результат. Оператор Break використовується всередині циклу або операцій ітерації. Це забезпечує припинення циклу щоразу, коли зустрічається оператор розриву. Якщо умова розриву не вказана, то цикл виконується нескінченну кількість разів, що призводить до збою програми.

У діаграмі взаємодії використовуються такі оператори:

Operaтор ІМ'Я Сенс
Opt варіант Операнд виконується, якщо умова виконується.
наприклад, якщо інакше
інший Alternative Операнд, умова якого істинна, виконується.
наприклад, перемикач
Петля Петля Він використовується для циклу виконання інструкції протягом заданого періоду.
Перерва Перерва Він розриває цикл, якщо умова є істинною або хибною, і виконується наступна інструкція.
посилання Посилання Він використовується для позначення іншої взаємодії.
по Паралельні Усі операнди виконуються паралельно.

Ітерація

На діаграмі взаємодії ми також можемо показати ітерацію за допомогою ітераційного виразу. Ітераційний вираз складається зі специфікатора ітерації та додаткового пункту ітерації. Немає попередньо визначеного синтаксису для ітерації UML.

У ітерації, щоб показати, що повідомлення надсилаються паралельно, використовується специфікатор паралельної ітерації. Специфікатор паралельної ітерації позначається *//. Ітерація в UML досягається за допомогою оператора циклу.

Розгалуження

На діаграмі взаємодії ми можемо представити розгалуження, додавши захисні умови до повідомлень. Умови захисту використовуються, щоб перевірити, чи можна переслати повідомлення чи ні. Повідомлення пересилається лише тоді, коли його умова захисту є істинною. Повідомлення може мати кілька умов захисту або кілька повідомлень можуть мати однакову умову захисту. Розгалуження в UML досягається за допомогою операторів alt і opt.

Ось деякі з них найважливіший термінологія, яка використовується в діаграмі взаємодії UML.

Типи діаграм взаємодії та позначення

Нижче наведено різні типи діаграм взаємодії, визначені в UML:

  • Схема послідовності
  • Діаграма співпраці
  • Часова діаграма

Основним позначенням взаємодії є прямокутник із п’ятикутником у верхньому лівому куті прямокутної коробки.

Що таке діаграма послідовності?

A Діаграма послідовності просто зображує взаємодію між об’єктами в послідовному порядку. Метою діаграми послідовності в UML є візуалізація послідовності потоку повідомлень у системі. Діаграма послідовності показує взаємодію між двома лініями життя як упорядковану в часі послідовність подій.

  • Діаграма послідовності показує реалізацію сценарію в системі. Лінії життя в системі беруть участь під час виконання системи.
  • На діаграмі послідовності лінія життя представлена ​​вертикальною смугою.
  • Потік повідомлень між двома чи більше об’єктами представлений за допомогою вертикальної пунктирної лінії, яка тягнеться через нижню частину сторінки.
  • У діаграмі послідовності використовуються різні типи повідомлень і операторів, які описані вище.
  • У діаграмі послідовності також використовуються ітерація та розгалуження.
Діаграма послідовності
Позначення на діаграмі послідовності

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

Приклад діаграми послідовності

У наведеному нижче прикладі діаграми послідовності представлено систему замовлення McDonald's:

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

Упорядкована послідовність подій на даній діаграмі послідовності така:

  1. Замовлення.
  2. Сплачуйте гроші в касу.
  3. Підтвердження замовлення.
  4. Підготовка замовлення.
  5. Обслуговування замовлення.

Якщо змінити порядок операцій, це може призвести до збою програми. Це також може призвести до генерації неправильних або помилкових результатів. Кожна послідовність у наведеній вище діаграмі послідовності позначається за допомогою іншого типу повідомлення. Не можна використовувати один і той же тип повідомлення для позначення всіх взаємодій на діаграмі, оскільки це створює ускладнення в системі.

Ви повинні бути обережними, вибираючи нотацію повідомлення для будь-якої конкретної взаємодії. Позначення повинні відповідати певній послідовності всередині діаграми.

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

  • Діаграми послідовності використовуються для дослідження будь-якої реальної програми чи системи.
  • Діаграми послідовності використовуються для представлення потоку повідомлень від одного об’єкта до іншого.
  • Діаграми послідовності легше підтримувати.
  • Діаграми послідовностей легше генерувати.
  • Діаграми послідовності можна легко оновлювати відповідно до змін у системі.
  • Діаграма послідовності дозволяє як зворотне, так і пряме проектування.

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

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

Що таке діаграма співпраці?

Діаграма співпраці зображує зв'язки та взаємодію між програмними об'єктами. Вони використовуються для розуміння архітектури об’єкта в системі, а не потоку повідомлень, як у діаграмі послідовності. Вони також відомі як «Діаграми зв’язку».

Згідно з об’єктно-орієнтованим програмуванням (ООП), об’єктна сутність має різні атрибути, пов’язані з нею. Зазвичай всередині об’єктно-орієнтованої системи присутні кілька об’єктів, де кожен об’єкт може бути пов’язаний з будь-яким іншим об’єктом у системі. Діаграми співпраці використовуються для дослідження архітектури об’єктів усередині системи. Потік повідомлень між об'єктами можна представити за допомогою діаграми співпраці.

Переваги діаграми співпраці

  • Її також називають діаграмою зв'язку.
  • Він наголошує на структурних аспектах діаграми взаємодії – як з’єднується лінія життя.
  • Його синтаксис подібний до діаграми послідовності, за винятком того, що лінія життя не має хвостів.
  • Послідовність переданих повідомлень позначається ієрархічною нумерацією кожного повідомлення.
  • У порівнянні з діаграмою послідовності діаграма зв'язку семантично слабка.
  • Діаграми об'єктів є окремим випадком діаграми зв'язку.
  • Це дозволяє зосередитися на елементах, а не на потоці повідомлень, як описано на діаграмі послідовності.
  • Діаграми послідовності можна легко перетворити на діаграму співпраці, оскільки діаграми співпраці не дуже виразні.
  • Під час моделювання діаграм співпраці порівняно з діаграмами послідовності деяка інформація може бути втрачена.

Позначення діаграми співпраці
Позначення діаграми співпраці

Наведена вище нотація діаграми співпраці містить лінії життя разом із з’єднувачами, самоциклами, прямими та зворотними повідомленнями, які використовуються в діаграмі співпраці.

Недоліки діаграми співпраці

  • Діаграми співпраці можуть стати складними, якщо в системі присутні забагато об’єктів.
  • Важко досліджувати кожен об'єкт всередині системи.
  • Діаграми співпраці займають багато часу.
  • Об'єкт знищується після завершення програми.
  • Стан об’єкта змінюється миттєво, що ускладнює відстеження кожної окремої зміни, яка відбувається в об’єкті системи.

Приклад діаграми співпраці

Наступна діаграма представляє послідовність системи управління учнями:

Діаграма співпраці

Діаграма співпраці для системи управління студентами

Наведена вище діаграма співпраці представляє систему управління інформацією про студентів. Потік зв’язку на наведеній вище діаграмі заданий як

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

Що таке часова діаграма?

Часова діаграма — це хвиля або графік, який використовується для опису стану лінії життя в будь-який момент часу. Він використовується для позначення перетворення об’єкта з однієї форми в іншу. Часова діаграма не містить нотацій, як того вимагає діаграма послідовності та взаємодії. Потік між програмою в різні моменти часу представлено за допомогою форми сигналу.

  • Це належне представлення взаємодій, яке зосереджується на конкретних часових проміжках повідомлень, надісланих між різними об’єктами.
  • Тимчасові діаграми використовуються для пояснення детальної обробки часу конкретного об’єкта.
  • Тимчасові діаграми використовуються для пояснення того, як об’єкт змінюється протягом свого життя.
  • Тимчасові діаграми в основному використовуються з розподіленими та вбудованими системами.
  • В UML часові діаграми зчитуються зліва направо відповідно до назви лінії життя, зазначеної з лівого краю.
  • Тимчасові діаграми використовуються для представлення різноманітних змін, які час від часу відбуваються на лінії життя.
  • Тимчасові діаграми використовуються для відображення графічного представлення різних станів лінії життя за одиницю часу.
  • UML надає різні позначення для спрощення стану переходу між двома лініями життя за одиницю часу.

Приклад тимчасової діаграми

Наведена нижче часова діаграма представляє кілька фаз а Життєвий цикл розробки програмного забезпечення.

Часова діаграма

Приклад тимчасової діаграми

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

Переваги часової діаграми

  • Тимчасові діаграми використовуються для представлення стану об’єкта в певний момент часу.
  • Часова діаграма дозволяє як зворотне, так і пряме проектування.
  • Часову діаграму можна використовувати для відстеження кожної зміни всередині системи.

Недоліки часової діаграми

  • Часові діаграми важко зрозуміти.
  • Часові діаграми важко підтримувати.

Як намалювати діаграму взаємодії?

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

Щоб намалювати діаграму взаємодії, ви повинні спочатку визначити сценарій, для якого ви повинні намалювати діаграму взаємодії. Вирішивши ситуацію, визначте різні лінії життя, які будуть задіяні у взаємодії. Класифікуйте всі елементи лінії життя та досліджуйте їх, щоб визначити можливі зв’язки та те, як лінії життя пов’язані одна з одною. Щоб намалювати діаграму взаємодії, потрібні такі речі:

  1. Загальна кількість ліній життя, які будуть частиною взаємодії
  2. це послідовність потоку повідомлень у різних об’єктах системи.
  3. Різні оператори для полегшення функціональності діаграми взаємодії.
  4. Різні типи повідомлень для більш чіткого та точного відображення взаємодії.
  5. Упорядкована послідовність повідомлень.
  6. Організація та структура об'єкта.
  7. Різні часові конструкції об'єкта.

Використання діаграми взаємодії

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

  • Діаграми послідовності використовуються для дослідження будь-якої реальної програми чи системи.
  • Діаграми взаємодії використовуються для вивчення та порівняння використання діаграм послідовності, співпраці та часових діаграм.
  • Діаграми взаємодії використовуються для фіксації поведінки системи. Він відображає динамічну структуру системи.
  • Діаграми послідовності використовуються для представлення потоку повідомлень від одного об’єкта до іншого.
  • Діаграми співпраці використовуються для розуміння об’єктної архітектури системи, а не потоку повідомлень.
  • Діаграми взаємодії використовуються для моделювання системи як упорядкованої в часі послідовності подій.
  • Діаграми взаємодії використовуються як у зворотному, так і в прямому проектуванні.
  • Для організації структури інтерактивних елементів використовуються діаграми взаємодії.

Підсумки

  • Взаємодії є просто одиницями поведінки класифікатора.
  • Критичними елементами на діаграмі взаємодії є лінія життя та повідомлення.
  • Діаграми взаємодії здебільшого зосереджені на передачі повідомлень.
  • Діаграми взаємодії відображають динамічну поведінку будь-якої системи.
  • Діаграма взаємодії містить діаграму послідовності, часову діаграму, діаграму зв’язку/співпраці.
  • Діаграма послідовності UML призначена для візуалізації послідовності потоку повідомлень у системі.
  • Мета діаграми співпраці полягає в тому, щоб підкреслити структурні аспекти.
  • Часові діаграми зосереджуються на моменті, коли повідомлення надсилається від одного об’єкта до іншого.