Алексей, я использую диаграмму Activity - UML.
UML позволяет описывать подпроцессы на основной диаграмме деятельности, для этого предлагается использовать элемент "Structured Activity Node" (UML Superstructure Specification, v2.1.2, subsection 12).
В зависимости о задачи, возможно использование нескольких типов элементов:
- Structured Activity Node - описывает обычный, исполняемый вид деятельности, операции которого не используются в других видах деятельности;
- Loop Node - циклический вид деятельности, состоящий из нескольких секций: настройки, проверки условий и тела (настройка осуществляется каждый раз при входе в цикл);
- Sequential Node - последовательный вид деятельности, в котором все действия выполняются по порядку;
- Conditional Node - вид деятельности выполнение которого варьируется в зависимости от входных условий (состоит из двух секций: проверки условий и тела);
что позволяет довольно гибко подходить к описанию подпроцесса и встраивать его в различные бизнес-процессы.
Хочу отметить, что при использовании одного и того же подпроцесса в рамках вышеуказанных БП, необходимо помнить о следующем:
- если у подпроцесса есть обязательные входные параметры (данные), то в каждом БП необходимо эти параметры передавать в подпроцесс;
- выходные данные подпроцесса д.б. обязательно востребованы в основном БП;
- управляющие воздействия от владельцев БП, не должны переводить подпроцесс в состояние блокировки.