2016-05-31 3 views
1

Должен ли я иметь предохранитель if и else в диаграмме последовательности при использовании альтернативного потока? Например, если у меня есть веб-сайт, и лицо решает купить товар, он зарезервирован, если он не заплатит, то продукт будет удален, и это будет платеж. Так будет ли даже иметь смысл [если оплата будет принята], когда вы уже укажете ее во взаимодействии между Клиентом и интерфейсом: Интерфейс?UML - Альтернативные потоки в диаграмме последовательностей нуждаются в защите if и else?

+1

Ответ Джима L - это хорошо. Я бы добавил, что с охранниками принято указывать только условие и оставить «if». Таким образом, ваша охрана будет [принята плата за оплату]. – Uffe

+0

Спасибо, оба ваши замечания были полезными и завершили мой ответ. Это имеет больше смысла. Я совершенно не обращал внимания на разделы UML, которые были прокомментированы. – Anonymous

ответ

2

Если вы не укажете условие охраны, обе альтернативы пропущены. В разделе 17.6.3.7 (Альтернативы) UML 2.5 говорится: «Если ни один из операндов не имеет защитника, который оценивает значение true, ни один из операндов не выполняется, а остальная часть вмещающего InteractionFragment выполняется».

+0

Спасибо, это было полезно с ответом Уффа, который сделал его полным. – Anonymous

0

Каждый из потоков alt имеет либо явный или неявный охранник (см. 17.6.3.7 в первом абзаце). Если не указано защитное утверждение, это рассматривается как неявный истинный страж.

Если вы моделируете различные потоки с использованием диаграммы последовательности, даже если вы показываете только один из потоков на конкретной диаграмме, вы должны поместить туда охрану (в противном случае вы будете иметь поток, который всегда выполняется, и обычно это не что вы хотите моделировать с помощью alt).

Как упоминалось в Uffe, защита содержит только логическое выражение, которое оценивается как true, так и false (без ключевого слова «if»).