Как повторно использовать подпроцесс в диаграмме активности UML - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь смоделировать конвейер в UML как диаграмму действий, и я не уверен, как описать процесс, состоящий из нескольких шагов, где пользователь может решить, какие части выполнить:

- вариант 1: только A
случай 2: А и В
- случай 3: A, B и C (Примечание: B не может быть пропущен для обработки C)

Но если я помещу это в диаграмму активности, мне придется рисовать каждый под-рабочий процесс несколько раз: enter image description here

Так что я не думаю, что делаю это правильно. Может быть, кто-то может помочь мне с этим?

Ответы [ 3 ]

0 голосов
/ 24 января 2019

Есть некоторые проблемы с вашей диаграммой:

  1. Вам не хватает квадратных скобок вокруг охранника. Так должно быть [Yes], [No] и т. Д.
  2. Средняя часть решения не имеет защиты, поэтому процесс в любом случае будет таким.
  3. Нижняя активность имеет 3 входящих ребра, но только у одного будет токен. Так что это никогда не будет продолжаться. Перед этим вам нужно объединить потоки сверху.

По сути, вы можете оставить действия таким образом. Я бы, вероятно, вытащил A (о, я вижу, что Бруно предложил то же самое), так как это выполняется во всех случаях. Таким образом, ваше решение останется с двумя выходами. Хотя с «физического взгляда» ваше решение будет принято первым (пользователь должен взаимодействовать) после того, как A уже выполнено, результат / последствия будут такими же. Так что это своего рода деловое решение.

0 голосов
/ 01 марта 2019

В конце концов, я искал вложенную активность, как показано в https://softwareengineering.stackexchange.com/questions/331641/how-do-i-represent-nested-actions-in-a-uml-activity-diagram

0 голосов
/ 23 января 2019

все в порядке, за исключением того, что да / нет недостаточно для разделения трех случаев: -)

Вы также можете переместить тест после выполнения A во всех случаях

...