Discovering Branching Conditions from Business Process Execution Logs

770 views

Published on

Paper presentation given at the International Conference on Fundamental Approaches to Software Engineering (FASE) in March 2013. The paper can be found <a>here</a>.

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
770
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Discovering Branching Conditions from Business Process Execution Logs

  1. 1. Discovering Branching Conditions from Business Process Execution Logs Massimiliano de Leoni, Marlon Dumas, Luciano García-Bañuelos University of Tartu, Estonia (Joint work with Eindhoven University of Technology)
  2. 2. Business Process Management DiscoveringBranchingConditions 1 Start Get Ready Travel by CarTravel by Train BETA PhD Day Starts Visit Brewery Have Dinner Go Home Travel by Train Pay for Parking Travel by Car End Give a Talk Implementation Event Log Execution
  3. 3. Business Process Mining DiscoveringBranchingConditions 2 Start Register order Prepare shipment Ship goods (Re)send bill Receive payment Contact customer Archive order End Performance Analysis Process Model Organizational Model Social Network Event Log Slide by Ana Karla Alves de Medeiros (TU/e) ProM Process mining workbench
  4. 4. Data perspective? DiscoveringBranchingConditions 3 Enter Loan Application Retrieve Applicant Data Compute Installments Approve Simple Application Approve Complex Application Notify Rejection Notify Eligibility salaryage installment amount length Branching points
  5. 5. ProM’s Decision Miner DiscoveringBranchingConditions 4 Enter Loan Application Retrieve Applicant Data Compute Installments Approve Simple Application Approve Complex Application Notify Rejection Notify Eligibility salaryage installment amount length CID Amount Len Salary Age Installm TaskCID Amount Len Salary Age Installm Task 13219 8500 1 NULL NULL NULL ELA Event Log CID Task Data Time Stamp … 13219 ELA Amount=8500 Len=1 2007-11-09 T 11:20:10 - 13219 RAP Salary=2000 Age=25 2007-11-09 T 11:22:15 - 13220 ELA Amount=25000 Len=1 2007-11-09 T 11:22:40 - 13219 CI Installm=750 2007-11-09 T 11:22:45 - 13219 NE 2007-11-09 T 11:23:00 - 13219 ASA 2007-11-09 T 11:24:30 - 13220 CI Installm=1200 2007-11-09 T 11:24:35 - … … … … … CID Amount Len Salary Age Installm Task 13219 8500 1 NULL NULL NULL ELA 13219 8500 1 2000 25 NULL RAP 13219 8500 1 2000 25 750 RAP 13219 8500 1 2000 25 750 NE
  6. 6. (amount < 10000)(amount < 10000) ∨ (amount ≥ 10000 ∧ age < 35) amount Approve Simple Application (ASA) ≥ 10000 < 10000 Approve Complex Application (ACA) Approve Simple Application (ASA) ≥ 35 age < 35 ProM’s decision miner / 2 CID Amount Installm Salary Age Len Task 13219 8500 750 2000 25 1 ASA 13220 12500 1200 3500 35 4 ACA 13221 9000 450 2500 27 2 ASA … … … … … … … 5 Approve Simple Application Approve Complex Application Decision tree learning amount ≥ 10000 ∧ age ≥ 35
  7. 7. Decision miner: Not a panacea! • Decision tree learning cannot discover expressions of the form “v op v” DiscoveringBranchingConditions 6 Approve Simple Application Approve Complex Application Notify Rejection Notify Eligibility installment > salary The decision miner would return: installment ≤ 1760 ∧ salary ≤ 1750 ∨ installment ≤ 1810 ∧ salary ≤ 1800 ∨ installment ≤ 1875 ∧ salary ≤ 1850 ∨ installment ≤ 1960 ∧ salary ≤ 1950 ∨ installment ≤ 1975 ∧ salary ≤ 1970 ∨ installment ≤ 2000 ∧ salary ≤ 1990 ∨ …
  8. 8. Problem statement • Discovery of branching conditions composed of atoms of the form “v op c” and “v op v”, including linear equations or inequalities involving multiple variables • Our solution combines • Tools for dynamic analysis of software (i.e., likely invariant discovery) • Theory of decision tree learning DiscoveringBranchingConditions 7
  9. 9. Daikon • Tool for discovering likely invariants from execution logs • Given a set of program points, Daikon: • Instantiates a set of invariant templates (over certain combination of variables) • Traverses the execution log • Falsifying some invariants • Gathering the statistical support for the remaining templates • Discards some invariants based on: • Subsumption • Statistical support Daikon strongly relies on code instrumentation/analysis DiscoveringBranchingConditions 8
  10. 10. CID Amount Installm Salary Age Len Task 13210 20000 2000 2000 25 1 NR 13220 25000 1200 3500 35 2 NE 13221 9000 450 2500 27 2 NE 13219 8500 750 2000 25 1 ASA 13220 25000 1200 3500 35 2 ACA 13221 9000 450 2500 27 2 ASA … … … … … … … Daikon: Tool for mining likely invariants DiscoveringBranchingConditions 9 Approve Simple Application Approve Complex Application Notify Rejection Notify Eligibility Daikon installment > salary amount ≥ 5000 length < age … installment ≤ salary amount ≥ 5000 length < age … installment ≤ salary amount ≤ 9500 length < age … installment ≤ salary amount ≥ 10000 length < age …
  11. 11. BranchMiner (Conjunctive) • Information Gain (IG) quantifies the discriminating power of a predicate (with respect to two different outcomes) • Approach: • Use Daikon for discovering invariants • Combine invariants in a conjunction so as to maximize the overall IG DiscoveringBranchingConditions 10 Approve Simple Application Approve Complex Application Notify Rejection Notify Eligibility a1: installment > salary a2: amount ≥ 5000 a3: length < age … IG(a1) = 0.8 IG(a2) = 0.2 IG(a3) = 0 … IG(a1∧a2) = 0.8 …
  12. 12. ¬(P∧Q) Disjunctions? DiscoveringBranchingConditions 11 Approve Simple Application Approve Complex Application Notify Rejection Notify Eligibility P∧Q ¬P∨¬Q • Only the negation of conjunctive expression by the de Morgan Laws
  13. 13. BranchMiner (Disjunctive) DiscoveringBranchingConditions 12 … Partition 1 Partition 2 Conjunctive BranchMiner Conjunctive BranchMiner CONJ1 CONJ2 Partition n Conjunctive BranchMiner CONJn Event Log
  14. 14. BranchMiner (Disjunctive) DiscoveringBranchingConditions 13 … Partition 1 Partition 2 Conjunctive BranchMiner Conjunctive BranchMiner CONJ1 CONJ2 Event Log Notify Rejection Notify Eligibility Notify Rejection Decision Tree … IG(CONJ1) = 0.4 IG(CONJ2) = 0.45 IG(CONJ3) = 0.5 … IG(CONJ1∨CONJ2) = 0.78 IG(CONJ1∨CONJ3) = 0.6 …
  15. 15. Linear and polynomial expressions • Approach • Select all numerical variables and generate some derived (a.k.a. latent) variables using an arithmetic operator e.g., salary_div_installment, meaning “salary/installment” • Augment the event log with the values for latent variables • Run the discovery method for conjunctive/disjunctive conditions DiscoveringBranchingConditions 14 CID Amount Installm Salary Age Len Task 13210 20000 2000 2000 25 1 NR 13220 25000 1200 3500 35 2 NE 13221 9000 450 2500 27 2 NE 13219 8500 750 2000 25 1 ASA 13220 25000 1200 3500 35 2 ACA 13221 9000 450 2500 27 2 ASA … … … … … … … CID Amount Installm Salary Sal/Inst Age Len Age+Le n Task 13210 20000 2000 2000 1.00 25 1 26 NR 13220 25000 1200 3500 2.92 35 2 37 NE 13221 9000 450 2500 5.56 27 2 29 NE 13219 8500 750 2000 2.67 25 1 26 ASA 13220 25000 1200 3500 2.92 35 2 37 ACA 13221 9000 450 2500 5.56 27 2 29 ASA … … … … … … … … … CID Amount Installm Salary Sal/Inst Age Len Age+Le n Task 13210 20000 2000 2000 1.00 25 1 26 NR 13220 25000 1200 3500 2.92 35 2 37 NE 13221 9000 450 2500 5.56 27 2 29 NE 13219 8500 750 2000 2.67 25 1 26 ASA 13220 25000 1200 3500 2.92 35 2 37 ACA 13221 9000 450 2500 5.56 27 2 29 ASA … … … … … … … … …
  16. 16. Assessment DiscoveringBranchingConditions 15
  17. 17. Conclusions • We developed a technique for discovering branching conditions from event logs • Complex expressions (e.g., “v op v”, linear inequalities, etc.) • More compact than those mined with conventional decision trees • Integration into ProM • Implemented as a command line tool • Validation with real-life logs • Assessed with synthetically generated event logs • Areas for extensions • Coping with noise in the event logs • Handling of null values • Extending the coverage to more complex types of expressions DiscoveringBranchingConditions 16

×