Как мне представить цикл в диаграмме активности?

Я хотел бы представить цикл в диаграмме активности UML. Вот моя ситуация:

  • Для каждой папки я проверяю каждый документ в этой папке
  • Для каждого документа я проверяю его содержание:
    • Если он недействителен (на основе поиска по ключевым словам), выполните действие X и перейдите к следующему документу.
  • После проверки всех документов перейдите к следующей папке.

Кто-нибудь может показать мне, как это должно выглядеть?

Ответ 1

Существует 3 разных обозначения, которые вы можете использовать.

Поскольку ваш цикл основан на некоторых элементах (папках, документах), наиболее удобным способом является использование области расширения (итеративного типа). Expansion Region example

Второй вариант, который является предпочтительным выбором, когда у вас есть петля, основанная на защите, представляет собой Loop Node. Loop Node example

Последняя возможность состоит в том, чтобы просто построить правильно структурированную структуру решения/слияния. Decision/Merge example

Преимущества первых двух - это то, что они компактны и понятны. Также легко иметь вложенные циклы. Ни один из этих вариантов не соответствует последнему варианту. Однако, если вы представляете свою диаграмму тому, кто не знаком с UML (особенно если у вас нет возможности объяснить смысл конкретной структуры), последний подход обычно наиболее широко признается и понимается.