400 likes | 516 Views
Process Mining from discovery to checking. Prof.dr.ir. Wil van der Aalst Eindhoven University of Technology, Department of Information Systems, P.O. Box 513, 5600 MB Eindhoven, The Netherlands w.m.p.v.d.aalst@tm.tue.nl. Outline. BPM lifecycle Process mining overview ProM framework Example
E N D
Process Miningfrom discovery to checking Prof.dr.ir. Wil van der Aalst Eindhoven University of Technology, Department of Information Systems, P.O. Box 513, 5600 MB Eindhoven, The Netherlands w.m.p.v.d.aalst@tm.tue.nl
Outline • BPM lifecycle • Process mining overview • ProM framework • Example • discovery algorithms • LTL • Conclusion Thanks toTon Weijters, Boudewijn van Dongen, Ana Karla Alves de Medeiros, Minseok Song, Laura Maruster, Eric Verbeek, Monique Jansen-Vullers, Hajo Reijers, Michael Rosemann, Anne Rozinat, Christian Guenther Peter van den Brand, Huub de Beer, Andrey Nikolov, et al.for their on-going work on process mining.
Design-time (a-priori) and run-time (a-posteriori) questions Run-time Design-time -verification- validation- performance analysis - process mining
Process discovery: Reversing the process process discovery 1
Log based verification formula four_eyes_principle (a1:activity,a2:activity) := forall[p:person | (!(execute(p,a1)) \/ !(execute(p,a2)))]; 3
ProM CPN Tools ARIS/ARIS PPM YAWL Caramba
SNA with Netminer betweenness metric points out that the editor and the two editorial assistants are most central
formula accept_or_reject_but_not_both() := {} (<>(activity == "accept") <-> !(<>(activity == "reject"))); Question 1
formula action_follows_decision() := {Is every decision followed by one of the three possible actions? } []( (activity == "decide" -> _O( ((activity == "accept" \/ activity == "reject") \/ activity == "invite additional reviewer") ))); Question 2
subformula execute( p : person, a : activity ) := {Is a specfic activity executed by a specific person?} <> ( (activity == a /\ person == p ) ) ; formula not_the_same_reviewer() := {Is every reviewer unique?} forall[p:person | (((!(execute(p,"get review 1")) \/ !(execute(p,"get review 2"))) /\ (!(execute(p,"get review 1")) \/ !(execute(p,"get review 3")))) /\ (!(execute(p,"get review 2")) \/ !(execute(p,"get review 3")))) ]; Question 3
subformula accept(a : activity ) := {Is the result a some activity an accept?} <> ( (activity == a /\ ate.result == "accept" ) ) ; formula dont_reject_paper_unjustified() := {Are all papers with strong support indeed accepted.} (((accept("get review 1") /\ accept("get review 2")) /\ accept("get review 3")) -> <> ( activity == "accept" ) ); Question 4 accept reject
formula four_eyes_principle(a1:activity,a2:activity) := { <h2>The four-eyes-principle</h2> <p> Check whether two activities are never executed by the same person for a given case.</p> <p> Arguments:<br> <ul> <li><b>a1</b> of type string denoting an activity</li> <li><b>a2</b> of type string denoting an activity</li> </ul> </p> } forall[p:person |(!(execute(p,a1)) \/ !(execute(p,a2)))]; Question 5
Additional plug-ins • State space analysis, invariants, EPC reduction/verification, etc.
Conclusion • Process mining is an exciting topic both from a practical and scientific point of view. • Join us by: • Applying this in different setting. • Contributing logs, adapters, and plug-ins. useful links: • www.processmining.org • www.workflowpatterns.com • BPMcenter.org • www.workflowcourse.com • www.citi.qut.edu.au/babel/ • www.yawl-system.com