#uml #sequence-diagram
#uml #последовательность-диаграмма
Вопрос:
Мне было интересно, как можно представить оператор « if
» на диаграмме последовательности?
if (somethingShouldBeDone) {
// Do it
} else {
// Do something else
}
Может ли это быть представлено вообще? Дело в том… в моем коде проверяется достаточное количество условий для определения множества действий. Если я собираюсь показать действия, я хотел бы явно указать, что действия вызваны определенными событиями.
Если возможно, создайте графическое представление решения.
Комментарии:
1. Я знаю, что этот вопрос устарел, и я еще не проводил поиск, но это заставило меня задуматься, является ли отображение ветвления вообще хорошей идеей для диаграмм последовательности. Я всегда думал, что условия для последовательности были явно описаны в сценарии и, следовательно, во время последовательности не происходило ветвления. Альтернативные пути были обработаны путем описания варианта сценария, который имел свою собственную диаграмму последовательности. Это несколько субъективно, поэтому, возможно, мне следует опубликовать это в Meta или, возможно, в Software Engineering?
Ответ №1:
Условие If else, также называемое альтернативами в терминах UML, действительно может быть представлено на диаграммах последовательности. Вот ссылка, по которой вы можете найти несколько полезных ресурсов по этому вопросу http://www.ibm.com/developerworks/rational/library/3101.html
Комментарии:
1. В Visio это
Alt
называется как-то иначе? Кажется, я не могу его найти2. Visio сам по себе не является инструментом моделирования UML. Если вы хотите использовать UML 2.0, то вам нужно найти хороший шаблон Visio, который полностью реализует спецификации 2.0. В Интернете доступно несколько бесплатных шаблонов, возможно, вы захотите попробовать некоторые из них 🙂 Вот тот, который выглядит хорошо (хотя и не пробовал все функции) softwarestencils.com/uml
3. Существуют ли какие-либо другие инструменты UML, кроме Visio. Достаточно ли хорош enterprise architect?
4. @VenkatMadhav Я действительно не могу сказать. Я никогда не использовал его на полную мощность, но, судя по чтению, которое я нашел в Google, это должно быть довольно неплохо
5. @Jam В Visio 2013 есть
Alternative fragment
Ответ №2:
Если вы вставите
A.do() {
if (condition1) {
X.doSomething
} else if (condition2) {
Y.doSomethingElse
} else {
donotDoAnything
}
}
на https://app.zenuml.com . Он сгенерирует для вас диаграмму.
Комментарии:
1. @Gholamali-Irani вы пробовали расширение Chrome?
2. Если это так
A.do(int condition)
— If .. else … иначе не может все произойти в результате одного вызова. Поток зависит от аргумента условия. Было бы замечательно, если бы ZenUML мог это нарисовать. Это были бы три вызова, упорядоченных по времени.3. @ChefGladiator Я не уверен, понимаю ли я, что вы имеете в виду. Не могли бы вы, пожалуйста, добавить сюда какой-нибудь псевдокод? Или вы можете указать мне на сайт.
4. Конечно, вот код: wandbox.org/permlink/PURdGJc8YxJmpUh7 — для выполнения всех условий требуется три повторных вызова. Последовательность UML должна отображать три вызова, а не один.
5. Конечно, диаграммы действий лучше показывать внутренние компоненты алгоритма/
Ответ №3:
Очень просто, используя Alt-фрагмент
Давайте рассмотрим пример диаграммы последовательности для банкомата.Допустим, здесь вы хотите
ЕСЛИ введенная карта действительна, то запрашивайте «Введите PIN-код»….ELSE выдает «Недопустимый PIN-код»
Тогда вот диаграмма последовательности для того же
Надеюсь, это поможет!
Комментарии:
1. Смотрите https://plantuml.com/sequence-diagram ,
Grouping message
раздел.
Ответ №4:
В Visual Studio UML последовательность это также может быть описано как фрагменты, что хорошо задокументировано здесь: https://msdn.microsoft.com/en-us/library/dd465153.aspx
Комментарии:
1. В качестве предупреждения дизайнер UML был удален начиная с версии 2017 и далее. learn.microsoft.com/en-gb/visualstudio/modeling /…
2. Чтобы уточнить, UML все еще находится в Visio — просто не в Visual Studio. support.microsoft.com/en-us/office /…