트랙 C안내모듈 4개, 모듈마다 180분

프로세스 마이닝 심화

2단계(실습 22~29)는 Orbit의 업무 이슈 하나를 사례로 삼아 지도를 그리고, 모델을 발견하고, 병목을 찾고, 개선 효과를 어림했다. 그 분석에는 빈 곳이 네 군데 남았다. 업무 하나에 PR이 둘이거나 리뷰 하나에 두 사람이 걸리는 기록을 사례 하나로 줄였다. 알고리즘마다 다른 모델이 나왔을 때 고르는 기준이 없었고, 6월 1일의 변화는 날짜를 미리 알았기 때문에 찾았다. whatif.sh의 어림은 누가 리뷰하는지를 다루지 않아 실제 효과를 작게 잡았다. 그리고 분석은 모두 끝난 업무에 대한 것이었다. 트랙 C는 같은 Orbit 기록으로 이 네 곳을 차례로 다룬다. 객체 중심 이벤트 데이터, 발견과 적합성의 이론과 개념 표류, 대기열과 시뮬레이션, 진행 중인 업무의 예측과 운영이다.

진행
모듈 4개, 모듈마다 180분. 모듈마다 설명 50~55분, 실습 105~110분, 정리 20분
결과
Orbit OCEL 파일과 객체 유형별 흐름 보고, 모델 비교 보고와 규칙 파일 개정안과 표류 점검 보고, 시뮬레이션 정책 비교표, 예측 평가 보고와 경보 기준과 모델 문서
선행
Level 1 2단계(실습 22~29). 실습 22의 정리한 로그와 실습 26의 범위를 정한 규칙 파일을 다시 쓴다

1모듈과 답하는 질문

모듈답하는 질문결과물시간
C1 객체 중심 이벤트 데이터업무, PR, 사람이 얽힌 기록을 사례 하나로 줄이지 않고 분석할 수 있는가. 사례 하나로 줄이면 숫자가 어떻게 바뀌는가OCEL 2.0 파일(JSON, SQLite), 객체 유형별 흐름 보고, 객체 중심 직접 이어짐 그래프180분
C2 발견과 적합성 심화알고리즘마다 다른 모델이 나올 때 무엇을 기준으로 고르는가. 프로세스가 중간에 바뀐 것을 날짜를 모르고도 찾을 수 있는가모델 비교 보고, 규칙 파일 개정안, 표류 점검 보고180분
C3 대기열, 자원, 시뮬레이션리뷰어를 한 명 늘리는 것과 리뷰 당번을 두는 것 중 어느 쪽이 대기를 더 줄이는가. 2단계의 어림은 어디서 틀리는가대기열 보고, 조직·결정 마이닝 보고, 검증한 시뮬레이션 모델과 정책 비교표180분
C4 예측 모니터링과 운영지금 열린 업무 가운데 늦어질 것을 미리 알 수 있는가. 프로세스가 바뀌면 예측은 어떻게 되는가. 경보는 하루 몇 건이 적당한가예측 평가 보고, 경보 기준과 하루 경보 목록, 모델 문서180분

모듈은 순서대로 듣는 것을 전제로 한다. C2의 표류 점검과 선언적 제약 비교는 C3의 결정 마이닝과 시뮬레이션 검증에서, C3의 “리뷰 대기는 응답 지연에서 왔다”는 결론과 C1의 사람 객체는 C4의 예측과 감시 우려에서 다시 쓴다.

2설치와 환경

트랙 C의 스크립트는 Python으로 쓰였다. 실습 24에서 PM4Py를 설치했으면 SimPy와 scikit-learn만 더한다.

python3 -m pip install pm4py==2.7.23.8 simpy scikit-learn

교안의 출력은 위 판으로 실행한 결과다. 시뮬레이션과 예측 스크립트는 씨앗값을 고정하므로 같은 판에서는 같은 숫자가 나온다. PM4Py 설치가 cvxopt 빌드에서 실패하면 실습 24의 막히면 표대로 --no-deps로 설치한 뒤 의존 패키지를 따로 설치한다. PM4Py는 AGPL-3.0 라이선스이고, 불러올 때 표준 오류로 라이선스 안내문을 낸다. 교안의 출력에서는 그 안내문을 뺐다.

3다시 쓰는 Level 1 결과

모듈다시 쓰는 실습과 결과
C1실습 20 event-log.sh의 CSV 형식, 실습 22의 로그 품질 점검과 정리한 로그, 실습 24 pm4py-notebook.py의 셀 방식
C2실습 23 변형, 실습 24 귀납적 마이너와 적합도·정밀도, 실습 26 팀 절차 모델과 범위를 정한 process-rules.tsv
C3실습 15 리틀의 법칙, 실습 25 리뷰 집중도와 roles.tsv, 실습 27 기간 비교, 실습 28 whatif.sh의 어림(36.8h → 33.1h, 실제 27.7h)
C4실습 10 스프린트 운영 이슈(PM_SPRINT_URL), 실습 22 원본 로그와 관측 기간의 끝, 실습 26 첫 리뷰 규칙

실습 저장소가 없어도 모든 실습을 할 수 있다. 계산은 모두 키트의 Orbit 로그로 하고, GitHub에 접속하는 명령(event-log.sh, gh pr list, gh issue comment)은 실습 저장소가 있을 때 따라 한다. 그 명령은 출력 없이 명령만 실었다.

4데이터

데이터내용쓰는 모듈
Orbit 원본 로그 (samples/orbit-event-log.csv)가상 팀 Orbit의 합성 이벤트 로그. 업무 260건, 사건 1,988건, 2026-03-03 ~ 09-04. 끝나지 않은 업무 3건이 들어 있다. 실제 팀의 기록이 아니다C4
Orbit 정리한 로그 (samples/orbit-event-log-clean.csv)실습 22의 log-check.sh --clean 결과. 업무 257건, 사건 1,975건C1~C3
Orbit OCEL (samples/c-orbit-ocel.json)정리한 로그를 ocel-export.py로 바꾼 OCEL 2.0 JSON. 사건 1,975건, 객체 512개(task 257, pr 247, person 8)C1
Launchpad 로그 (samples/event-log.sample.csv)Level 1 사례의 업무 6건, 사건 51건. 스크립트를 작은 로그로 먼저 시험할 때 쓴다C1
내 저장소의 로그event-log.sh로 만든 같은 형식의 CSVC1~C4

5키트 파일

모두 실습 키트의 github-pm-starter-kit/ 폴더에 있다. GitHub에 접속하지 않고, 입력 파일을 인자로 받는다. ocel-notebook.py를 뺀 스크립트는 -h로 사용법을 본다.

파일내용필요한 패키지모듈
ocel-export.py키트 형식의 CSV를 OCEL 2.0(JSON 또는 SQLite)으로 바꾼다. 객체 유형 task, pr, person, 한정자, PR과 업무의 관계, 상태 변화. 가명화 옵션표준 라이브러리C1
ocel-notebook.py# %% 셀로 나뉜 분석 스크립트. 객체 수, 평탄화 비교, 수렴과 발산, OC-DFG, 속성 변화pm4py, pandasC1
model-compare.py발견 알고리즘 여섯 개와 손으로 쓴 프로세스 트리의 크기, 건전성, 적합도, 정밀도, 일반화, 단순성, 동기 곱 크기pm4py, pandasC2
declare-rules.py선언적 제약 발견, 규칙 파일과 비교, 규칙 후보, 기간 사이에 신뢰도가 바뀐 제약pm4py, pandas, scipyC2
drift-check.py달 또는 4주 창의 흐름(순열 검정)과 시간(맨-휘트니 U)을 비교하는 개념 표류 점검numpy, scipyC2
queue-mining.pyPR 첫 리뷰의 도착, 리뷰어별 몫과 대기, L = λW, 대기열 길이와 대기, 묶음 리뷰numpyC3
org-mining.py넘김·함께 일함 네트워크, 역할 발견, 작성자와 첫 리뷰어, 첫 리뷰 분기의 결정 나무pm4py, pandas, scikit-learnC3
review-sim.pyPR 첫 리뷰의 SimPy 시뮬레이션. delay와 queue 모델, 배정 정책 네 가지, 다른 기간 재생, 도착률 배수simpy, numpyC3
pr-predict.py작업일 09:00 스냅숏의 접두사 표본으로 업무 지연(또는 첫 리뷰 규칙 위반)을 예측. 시간 순 평가, 보정 표, 다시 학습, 경보 목록, 모델 문서 초안numpy, scikit-learnC4

6수업 운영과 읽을 것

모듈마다 수업 전에 논문 하나 이상의 서론과 방법 부분을 읽는다. 수업은 설명, 시연, 개별 실습 순서로 진행하고, 실습마다 페이지 끝의 완료 확인 항목을 채운다. 숫자를 해석하는 문제(어느 모델을 고르는가, 시뮬레이션 검증이 실패한 이유는 무엇인가)는 두세 명씩 토론한 뒤 발표한다.

모듈수업 전에 읽을 것
C1van der Aalst(2019)의 1~3절, OCEL 2.0 명세의 메타모델 부분, Suriadi 외(2017)의 패턴 목록
C2Augusto 외(2019)의 서론과 평가 방법, Bose 외(2014)의 1~3절
C3Senderovich 외(2015)의 서론, Rozinat 외(2009)의 서론과 시뮬레이션 모델 구성 부분
C4Teinemaa 외(2019)의 2~4절, Weytjens & De Weerdt(2021), Mitchell 외(2019)

7참고 자료

교재와 도구

객체 중심 이벤트 데이터 (C1)

  • van der Aalst, “Object-Centric Process Mining: Dealing with Divergence and Convergence in Event Data”, SEFM 2019, LNCS 11724(2019)
  • OCEL 2.0 명세(2023) ocel-standard.org. Berti 외, “OCEL (Object-Centric Event Log) 2.0 Specification”, arXiv:2403.01975(2024)
  • Suriadi, Andrews, ter Hofstede, Wynn, “Event log imperfection patterns for process mining: Towards a systematic approach to cleaning event logs”, Information Systems 64(2017)
  • 개인정보 보호법 제2조 제1호의2(가명처리), 제28조의2~제28조의5(가명정보의 처리)

발견과 적합성 (C2)

  • Günther & van der Aalst, “Fuzzy Mining: Adaptive Process Simplification Based on Multi-perspective Metrics”, BPM 2007
  • van der Werf, van Dongen, Hurkens, Serebrenik, “Process discovery using integer linear programming”, Fundamenta Informaticae 94(2009). van Zelst, van Dongen, van der Aalst, Verbeek, “Discovering workflow nets using integer linear programming”, Computing 100(2018)
  • Leemans, Fahland, van der Aalst, “Discovering Block-Structured Process Models from Event Logs Containing Infrequent Behaviour”, BPM 2013 워크숍, LNBIP 171(2014). 같은 저자, “Scalable process discovery and conformance checking”, Software & Systems Modeling 17(2018)
  • Augusto, Conforti, Dumas, La Rosa, Polyvyanyy, “Split miner: automated discovery of accurate and simple business process models from event logs”, Knowledge and Information Systems 59(2019)
  • Pesic & van der Aalst, “A Declarative Approach for Flexible Business Processes Management”, BPM 2006 워크숍, LNCS 4103(2006). Di Ciccio & Mecella, “On the Discovery of Declarative Control Flows for Artful Processes”, ACM TMIS 5(4)(2015)
  • Adriansyah, van Dongen, van der Aalst, “Conformance Checking using Cost-Based Fitness Analysis”, IEEE EDOC 2011
  • Muñoz-Gama & Carmona, “A Fresh Look at Precision in Process Conformance”, BPM 2010. Adriansyah, Muñoz-Gama, Carmona, van Dongen, van der Aalst, “Measuring precision of modeled behavior”, Information Systems and e-Business Management 13(2015)
  • Polyvyanyy, Solti, Weidlich, Di Ciccio, Mendling, “Monotone Precision and Recall Measures for Comparing Executions and Specifications of Dynamic Systems”, ACM TOSEM 29(3)(2020)
  • Fahland & van der Aalst, “Model repair — aligning process models to reality”, Information Systems 47(2015)
  • Bose, van der Aalst, Žliobaitė, Pechenizkiy, “Dealing With Concept Drifts in Process Mining”, IEEE Transactions on Neural Networks and Learning Systems 25(1)(2014)

대기열, 자원, 시뮬레이션 (C3)

  • Little, “A Proof for the Queuing Formula: L = λW”, Operations Research 9(3)(1961)
  • Senderovich, Weidlich, Gal, Mandelbaum, “Queue mining for delay prediction in multi-class service processes”, Information Systems 53(2015)
  • Nakatumba & van der Aalst, “Analyzing Resource Behavior Using Process Mining”, BPM 2009 워크숍, LNBIP 43(2010)
  • van der Aalst, Reijers, Song, “Discovering Social Networks from Event Logs”, Computer Supported Cooperative Work 14(6)(2005)
  • Rozinat & van der Aalst, “Decision Mining in ProM”, BPM 2006, LNCS 4102(2006)
  • Rozinat, Mans, Song, van der Aalst, “Discovering simulation models”, Information Systems 34(3)(2009)

예측 모니터링 (C4)

  • Teinemaa, Dumas, La Rosa, Maggi, “Outcome-Oriented Predictive Process Monitoring: Review and Benchmark”, ACM TKDD 13(2)(2019)
  • Tax, Verenich, La Rosa, Dumas, “Predictive Business Process Monitoring with LSTM Neural Networks”, CAiSE 2017
  • Weytjens & De Weerdt, “Creating Unbiased Public Benchmark Datasets with Data Leakage Prevention for Predictive Process Monitoring”, BPM 2021 워크숍
  • Fahrenkrog-Petersen, Tax, Teinemaa, Dumas, de Leoni, Maggi, Weidlich, “Fire now, fire later: alarm-based systems for prescriptive process monitoring”, Knowledge and Information Systems 64(2)(2022)
  • Brier, “Verification of forecasts expressed in terms of probability”, Monthly Weather Review 78(1)(1950). Mitchell 외, “Model Cards for Model Reporting”, FAT* 2019

마치며...

트랙 C의 네 모듈은 2단계와 같은 Orbit 기록을 쓰되, 사례 하나로 줄인 로그의 한계에서 시작해 모델의 선택과 검증, 대기의 원인과 정책 비교, 진행 중인 업무의 예측으로 나아간다. 모듈마다 결과물이 pm-lab/에 파일로 남고, 뒤 모듈이 앞 모듈의 결론을 다시 쓴다. C1에서는 Orbit 로그를 업무, PR, 사람을 객체로 나눈 OCEL 2.0 파일로 바꾸고, 사례 하나로 줄일 때 생기는 복제와 누락을 숫자로 잰다.