본문 바로가기
IT/pm4py (파이썬 프로세스마이닝)

bpmn, process tree 해석, 파이썬(python) 프로세스 마이닝 (process mining) with pm4py 2.7.0

by 자바라머신러닝 2023. 3. 28.

pm4py 공식 홈페이지에서 제공한 튜토리얼에서 소개한 4개 프로세스 마이닝에 대해서 간단히 정리해 봅니다. IT 시스템에 적용된 프로세스가 그동안 적재된 데이터로 어떻게 흘러가고 있는지 파악하게 되면서 향후 개선점을 도출하게 됩니다. bpmn, process tree에 대해 간단히 알아보겠습니다.

 

bpmn 모델

데이터 흐름을 전후 관계 기반으로 프로세스를 정적으로 재현하는 알고리즘입니다. 프로세스 즉, 업무 절차라는 것은 한 방향으로 흘러가 도록 설계를 하지만 예외적으로 반복하거나 예외 상황을 허용합니다. 이런 허용인 업무 누락, 오류, 병목, 지연 등을 유발하게 되는 주요 악영향 요인입니다.

 

실습 예제인 "running-example.csv" 내용은 제품수리 절차에 대한 내용입니다.  데이터는 영어로 되어 있지만 단계 및 도식화는 한글로 변경하였습니다.

영문 국문
register request 요청접수
examine thoroughly 전수수리
examine casually 단순수리
check ticket 수리요청
decide 결정
reject request 수리반려
reinitiate request 재요청
pay compensation 요금책정

 

아래 그림의 각 일에 대해 절차 및 시간 순으로 정리하면 다음과 같습니다. 

 

1번째 일의 절차 : 요청접수 - 전수수리 - 수리요청 - 결정 - 수리반려

2번째 일의 절차 : 요청접수 - 수리요청 - 단순수리 - 결정 - 요금책정

3번째 일의 절차 : 요청점수 - 단순수리 - 수리요청 - 결정 - 재요청 - 전수수리 - 수리요청 - 결정 - 요금책정

 

위 3가지 절차를 bpmn으로 정리하면 아래와 같이 도식화됩니다.

3가지 수리 절차 흐름 데이터 및 bpmn 도식화
3가지 수리 절차 흐름 데이터 및 bpmn 도식화

즉 bpmn 은 데이터 기반으로 업무를 재정의하는 프로세스 마이닝입니다.

도식화 중에 +,x 표기된 마름모는 gateway라고 하며 의미가 있습니다. + 는 모두 동시 실행, x는 1개만 실행이라고 전재가 있습니다. 위 bpmn 도식화에는 + gateway 6개, + gateway 2개가 있습니다.

+ gateway를 설명하면 1번째는 요청접수 절차 후에 전수/단순수리와 수리요청가 동시에 진행합니다. 2번째는 전수/단순수리와 수리요청이 동시에 종료되면 결정 절차를 진행하게 됩니다.

+ gateway 2가지 설명
+ gateway 2가지 설명

X gateway는 1개만 실행한다는 의미이며, 이전 절차에서 화살표가 1개 입력 후, 2개 이상 다음 절차로 화살표가 출력되면 다음 절차는 1개만 실행한다는 의미입니다. 이전 절차에서 화살표가 2개 이상 입력후, 1개의 다음 절차로 화살표 출력되면 이전 단계 1개만 이라도 진행되면 다음절차가 진행된다는 의미입니다.

X gateway 설명
X gateway 설명

정리하면 bpmn 은 각 절차(activity, 위 그림 사각형) 간 흐름을 gateway (위 그림 마름모)로 전후관계를 정의하는 정적인 프로세스 흐름을 도식화입니다.

 

process tree

모든 일에는 단계로 구성되어 있고 실행 순서로 정의되어 있으며. 선택적으로 발생하는 절차, 동시에 발생하는 절차로 이루어져 있습니다. 이를 도식화한 것이 proess tree입니다. 단계/실행순서/선택적/동시적 발생 등을 식별하는 것이 주목적입니다. "running-example.csv" 로 process tree를 작성하면 아래와 같이 도식화됩니다. 

process tree 설명
process tree 설명

우선 위 tree 를 해석할 때 좌에서 우로 각 절차 (activity)가 진행된다고 정의합니다. 또한 각 절차 (activity) 외에 seq / xor / and / xor loop 가 보입니다. 맨 위에서부터 아래로 설명하겠습니다.

 

  • 맨 위의 seq에서 3개의 절차로 화살표가 이어집니다.
    • 외쪽부터 1단계 register request (수리요청) ,
    • 2단계 xor loop 이하 절차 진행,
    • 3단계 xor 이하 절차 순서대로 진행
  • 2단계 xor loop 이하 (매우 헤깔리 수 있음)
    • 2번째 seq 이하 진행 하던가
    • (아주 간혹) reinitiate request (재수리) 반복 진행
  • 3단계의 xor 
    • reject request (수리반려) 또는
    • (요금책정) 중 1개만 진행
  • 중간 2번째 seq 
    • and와 decide (결정) 순서대로 진행
  • and 이하
    • check ticket (수리요청)과
    • 마지막 xor 이하 동시 진행
  • 마지막 xor 
    • 전수수리와 단순수리 절차 중 1개만 진행

이런 트리 도식화의 경우 위에서 아래로 해석하게 되는데, process tree는 좌우 먼저 그다음 상하 순으로 해석해야 합니다.

 

아래 그림은 지금까지 설명한 process tree와 bpmn을 매핑한 것이며 2개 도식화를 비교하면 이해하기 쉽습니다.

process tree 와 bpmn 매칭 결과
process tree 와 bpmn 매칭 결과
process tree 와 bpmn 매칭 결과 2
process tree 와 bpmn 매칭 결과 2

댓글