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


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


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

Если это A.do(int condition)- если .. еще ... еще, не все может произойти в результате одного вызова. Поток зависит от условия аргумента. Было бы прекрасно, если бы ZenUML смог это нарисовать. Было бы заказано три звонка вовремя.
— Шеф-повар Гладиатор

@ChefGladiator Я не уверен, понимаю ли я, что вы имеете в виду. Не могли бы вы добавить здесь псевдокод? Или вы можете указать мне на сайте.
— Сяо Пэн - ZenUML.com

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

Конечно, диаграммы активности лучше всего показывают алгоритм внутренних
— Шеф-повар Гладиатор

2

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

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

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

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

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

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.