Как показать условие «если» на диаграмме последовательности?

196

Мне было интересно, как можно представить " if" утверждение на диаграмме последовательности?

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

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

Если возможно, создайте графическое представление решения.

Джеймс Райцев
источник
1
Я знаю, что этот вопрос старый, и я еще не выполнил поиск, но это заставило меня задуматься, является ли показ ветвления даже хорошей идеей для диаграмм последовательности. Я всегда думал, что условия для последовательности были явно описаны в сценарии, и поэтому во время последовательности не было разветвлений. Альтернативные пути были обработаны путем описания варианта сценария, который имел собственную диаграмму последовательности. Это несколько субъективно, так что, возможно, я должен опубликовать это на Meta или, возможно, Software Engineering?
Келли С. Френч

Ответы:

288

Если еще условие, также называемые альтернативы в терминах UML действительно могут быть представлены в диаграммах последовательности. Вот ссылка, где вы можете найти несколько хороших ресурсов по этой теме http://www.ibm.com/developerworks/rational/library/3101.html

ветвление с помощью alt

Гета
источник
В 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 . Это сгенерирует диаграмму для вас.Диаграмма последовательности If / else

Сяо Пэн - ZenUML.com
источник
@ Gholamali-Irani вы пробовали расширение Chrome?
Сяо Пэн - ZenUML.com
Если это A.do(int condition)- если .. еще ... еще, не все может произойти в результате одного вызова. Поток зависит от условия аргумента. Было бы прекрасно, если бы ZenUML смог это нарисовать. Было бы заказано три звонка вовремя.
Шеф-повар Гладиатор
@ChefGladiator Я не уверен, понимаю ли я, что вы имеете в виду. Не могли бы вы добавить здесь псевдокод? Или вы можете указать мне на сайте.
Сяо Пэн - ZenUML.com
Конечно, вот код: wandbox.org/permlink/PURdGJc8YxJmpUh7 - необходимо выполнить три вызова для выполнения всех условий. Последовательность UML должна показывать три вызова, а не один.
Шеф-повар Гладиатор
Конечно, диаграммы активности лучше всего показывают алгоритм внутренних
Шеф-повар Гладиатор
2

Очень просто, используя Alt фрагмент

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

Если вставлена карта действительна , то запрос «Введите PIN» .... ELSE подсказка «Неверный PIN - код»

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

Схема последовательности банкомата

Надеюсь это поможет!

vishwampandya
источник