В диаграммах последовательности UML можно моделировать необязательные внешние входные данные

В диаграммах последовательности UML у вас есть комбинированный тип фрагмента Alt для ветвления на основе разных значений параметров. Но допустим, что в середине вашей последовательности вы ожидаете одно из двух разных сообщений от двух разных внешних акторов, и вы должны разветвить код в зависимости от того, какое из них прибывает, как лучше всего это смоделировать? И чтобы немного усложнить вопрос, давайте добавим возможность того, что ни одно сообщение не приходит (запуск тайм-аута).

Без лучшего решения я бы разделил диаграмму последовательности на несколько диаграмм последовательности, каждая новая из которых начиналась бы с одного из двух возможных сообщений. Или, возможно, просто перейти к конечным машинам. Но не слишком ли это запутанный способ, который позволил бы мне показать эти разные случаи на одной диаграмме последовательности?


person tombjo    schedule 15.11.2015    source источник
comment
Взгляните сюда, для аналогичного вопроса: programmers.stackexchange.com/questions/153560/   -  person Catweazle    schedule 15.11.2015


Ответы (2)


Я бы просто выбрал два SD, которые вы можете назвать соответственно. Всегда следует помнить, что SD должен выделять определенный аспект сложной цепочки действий в системе. Попытка поместить все больше и больше информации в одну SD-карту испортит ее и больше помешает, чем поможет.

Также можно использовать фрагменты диаграммы, что позволяет осуществлять навигацию за счет увеличения двух фрагментов.

введите здесь описание изображения

Временная диаграмма здесь не особо поможет. Вам все равно понадобится большой alt-фрагмент, чтобы показать последовательности в зависимости от того, какое сообщение пришло первым.

person qwerty_so    schedule 15.11.2015

В дополнение к ответу, который я упомянул в комментарии, я сделал небольшой образец с ограничением продолжительности для тайм-аута.

введите здесь описание изображения

Если у вас есть много условной логики для отображения, диаграммы действий являются альтернативой. У них нет ответственности за объект или временную ось, но благодаря этому они могут свободно использовать два измерения для демонстрации управления потоком.

person Catweazle    schedule 15.11.2015