Як показати стан "якщо" на діаграмі послідовностей?


195

Мені було цікаво, як можна представити " if" оператор на послідовній діаграмі?

if (somethingShouldBeDone) {
       // Do it
} else {
       // Do something else
}

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

Якщо можливо, створіть зображення для подання рішення.


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

Відповіді:


287

Якщо інша умова, також названа альтернативою в термінах UML, дійсно може бути представлена ​​на діаграмах послідовностей. Ось посилання, де ви можете знайти кілька приємних ресурсів на тему http://www.ibm.com/developerworks/rational/library/3101.html

розгалуження альт


У Visio Altназивають щось інше? Я не можу його знайти
Джеймс Райцев

13
Visio сам по собі не є інструментом моделювання UML. Якщо ви хочете використовувати UML 2.0, то вам потрібно знайти хороший Visio Stencil, який повністю реалізує технічні характеристики 2.0. У Інтернеті є кілька безкоштовних трафаретів, ви можете спробувати деякі з них спробувати :) Ось такий, який виглядає добре (хоч не спробував усі функції) softwarestencils.com/uml
GETah

Чи є інші засоби UML, крім Visio. Чи достатньо хороший архітектор підприємства?
Венкат Мадхав

1
@VenkatMadhav Я не можу сказати. Я ніколи не використовував його на повну потужність, але з читання, яке я знайшов у google, це повинно бути досить добре
GETah

@ Venkat Я особисто фанат візуальної парадигми. ( visual-paradigm.com )
опитування Коді

35

Якщо ви вставляєте

A.do() {
  if (condition1) {
   X.doSomething
  } else if (condition2) {
   Y.doSomethingElse
  } else {
   donotDoAnything
  }
}

на https://www.zenuml.com . Це створить схему для вас.Якщо / else діаграма послідовностей


@ Gholamali-Irani Ви спробували розширення Chrome?
Сяо Пен - ZenUML.com

Якщо це A.do(int condition)- Якщо .. інше ... інше, чи не все може відбутися в результаті одного дзвінка. Потік залежить від аргументу умови. Було б чудово, якби ZenUML міг намалювати це. Це було б три замовлені вчасно дзвінки.
Chef Gladiator

@ChefGladiator Я не впевнений, чи розумію, що ти маєш на увазі. Чи можете ви додайте сюди трохи псевдокоду? Або ви можете вказати мені на сайт.
Сяо Пен - ZenUML.com

Звичайно, ось код: wandbox.org/permlink/PURdGJc8YxJmpUh7 - три повторні дзвінки, щоб виконати всі умови. Послідовність UML повинна показувати три виклики, не один.
Шеф-кухар Гладіатор

Звичайно, на діаграмах активності краще показати внутрішні алгоритми /
Chef Gladiator

2

Дуже просто, використовуючи фрагмент Alt

Давайте візьмемо приклад послідовності діаграм для банкоматів. Скажімо, тут ви хочете

Якщо вставлена ​​картка є дійсною, тоді запит "Enter Pin" .... Запрошення ELSE "Недійсний контакт"

Тоді ось схема послідовності для того ж

Діаграма послідовності банкоматів

Сподіваюся, це допомагає!


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.