47
PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro Sperduti Department of Pure and Applied Mathematics University of Padua, Italy September 13th, 2010 Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

PLG: a Framework for the Generation of BusinessProcess Models and their Execution Logs

Andrea Burattin and Alessandro Sperduti

Department of Pure and Applied MathematicsUniversity of Padua, Italy

September 13th, 2010

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 2: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 2 of 15

Why process models and logs are needed?

Process models and executions logs are fundamental for the designof process mining algorithm

Process models

Executions Processes logs

Mined process models

process mining

Evaluation results of process mining algorithm

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 3: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 2 of 15

Why process models and logs are needed?

Process models and executions logs are fundamental for the designof process mining algorithm

Process models

Executions Processes logs

Mined process models

process mining

Evaluation results of process mining algorithm

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 4: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 2 of 15

Why process models and logs are needed?

Process models and executions logs are fundamental for the designof process mining algorithm

Process models

Executions

Processes logs

Mined process models

process mining

Evaluation results of process mining algorithm

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 5: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 2 of 15

Why process models and logs are needed?

Process models and executions logs are fundamental for the designof process mining algorithm

Process models

Executions Processes logs

Mined process models

process mining

Evaluation results of process mining algorithm

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 6: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 2 of 15

Why process models and logs are needed?

Process models and executions logs are fundamental for the designof process mining algorithm

Process models

Executions Processes logs

Mined process models

process mining

Evaluation results of process mining algorithm

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 7: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 2 of 15

Why process models and logs are needed?

Process models and executions logs are fundamental for the designof process mining algorithm

Process models

Executions Processes logs

Mined process models

process mining

Evaluation results of process mining algorithm

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 8: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 3 of 15

Why process models and logs are needed?

In this context, with “data” we mean both

Process models

Executions logs

Justifications for developing large datasets of models and logs

Establish algorithm performance

Experimental comparison of algorithms

If machine learning approaches are used, as training set

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 9: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 4 of 15

Is there a lack of processes and logs?

Typically, nowadays, it happens that

Each group tests new algorithms against their own set ofprocess models and logs

Often those logs are private and other groups can not recreatethe results

Maybe a more “scientific approach” can be achieved with

Widely accepted common dataset of models and processes

Everyone can reproduce the results and compare them withtheir own new algorithms

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 10: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 4 of 15

Is there a lack of processes and logs?

Typically, nowadays, it happens that

Each group tests new algorithms against their own set ofprocess models and logs

Often those logs are private and other groups can not recreatethe results

Maybe a more “scientific approach” can be achieved with

Widely accepted common dataset of models and processes

Everyone can reproduce the results and compare them withtheir own new algorithms

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 11: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 5 of 15

The tool: Processes Logs Generator

Models and logs needed to design better process mining algorithms:experimental comparisons between algorithms would be possible

We designed and developed PLG (Processes Logs Generator)

Requirements of PLG

1 To generate random business processes

2 To execute processes and register the observations into logs

3 Simplicity in the configuration of the generator

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 12: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 6 of 15

Step 1: Generation of random processes

Observations for the generation approach

Real business processes typically are combination of wellknown workflow patterns

We can randomly compose them to obtain new processes

Patterns currently supported

Sequence

Parallel split and synchronization

Exclusive choice and simple merge

Loop

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 13: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 6 of 15

Step 1: Generation of random processes

Observations for the generation approach

Real business processes typically are combination of wellknown workflow patterns

We can randomly compose them to obtain new processes

Patterns currently supported

Sequence

Parallel split and synchronization

Exclusive choice and simple merge

Loop

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 14: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 7 of 15

Step 1: Generation of random processes

The grammar for the generation: GProcess = {V ,Σ,R,P}:

Non terminals: V = {P,G ,G ′,G",G∧,G⊗,A}Terminals: Σ = {; , (, ),",∧,⊗, astart , aend , a, b, c , . . . }

Starting symbol: P

Productions:

P → astart ; G ; aend

G → G ′ | G"

G ′ → A | (G ;G ) | (A;G∧;A) | (A;G⊗;A)G" → (G ′ " G )

G∧ → G ∧ G | G ∧ G∧G⊗ → G ⊗ G | G ⊗ G⊗

A → a | b | c | . . .

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 15: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 7 of 15

Step 1: Generation of random processes

The grammar for the generation: GProcess = {V ,Σ,R,P}:

Non terminals: V = {P,G ,G ′,G",G∧,G⊗,A}Terminals: Σ = {; , (, ),",∧,⊗, astart , aend , a, b, c , . . . }

Starting symbol: P

Productions:

astart

G

aend

P → astart ; G ; aend

G → G ′ | G"

G ′ → A | (G ;G ) | (A;G∧;A) | (A;G⊗;A)G" → (G ′ " G )

G∧ → G ∧ G | G ∧ G∧G⊗ → G ⊗ G | G ⊗ G⊗

A → a | b | c | . . .

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 16: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 7 of 15

Step 1: Generation of random processes

The grammar for the generation: GProcess = {V ,Σ,R,P}:

Non terminals: V = {P,G ,G ′,G",G∧,G⊗,A}Terminals: Σ = {; , (, ),",∧,⊗, astart , aend , a, b, c , . . . }

Starting symbol: P

Productions:

astart

G

G

aend

P → astart ; G ; aend

G → G ′ | G"

G ′ → A | (G ;G ) | (A;G∧;A) | (A;G⊗;A)G" → (G ′ " G )

G∧ → G ∧ G | G ∧ G∧G⊗ → G ⊗ G | G ⊗ G⊗

A → a | b | c | . . .

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 17: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 7 of 15

Step 1: Generation of random processes

The grammar for the generation: GProcess = {V ,Σ,R,P}:

Non terminals: V = {P,G ,G ′,G",G∧,G⊗,A}Terminals: Σ = {; , (, ),",∧,⊗, astart , aend , a, b, c , . . . }

Starting symbol: P

Productions:

astart

A

GG

A

aend

P → astart ; G ; aend

G → G ′ | G"

G ′ → A | (G ;G ) | (A;G∧;A) | (A;G⊗;A)G" → (G ′ " G )

G∧ → G ∧ G | G ∧ G∧G⊗ → G ⊗ G | G ⊗ G⊗

A → a | b | c | . . .

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 18: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 7 of 15

Step 1: Generation of random processes

The grammar for the generation: GProcess = {V ,Σ,R,P}:

Non terminals: V = {P,G ,G ′,G",G∧,G⊗,A}Terminals: Σ = {; , (, ),",∧,⊗, astart , aend , a, b, c , . . . }

Starting symbol: P

Productions:

astart

G ′G

aend

P → astart ; G ; aend

G → G ′ | G"

G ′ → A | (G ;G ) | (A;G∧;A) | (A;G⊗;A)G" → (G ′ " G )

G∧ → G ∧ G | G ∧ G∧G⊗ → G ⊗ G | G ⊗ G⊗

A → a | b | c | . . .

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 19: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 8 of 15

Step 1: Generation of random processes

Previous grammar extended with probabilities for the productions

π1 for G ′ → Aπ2 for G ′ → (G ;G )π3 for G ′ → (A;G∧;A)π4 for G ′ → (A;G⊗;A)πl for G" → (G ′ " G )

Other parameters of the generation are these probabilitydistributions

P⊕ selection of the executing activity

P∧ order of execution of activities

Selections made on the alphabetically sorted set of activities

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 20: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 9 of 15

Examples of process generation

Derivation tree

P

astart G

(G ;G )

A

a

(G ′ " G )

(G ;G )

A; (G ∧ G );A

b A

c

A

d

e

A

f

A

g

aend

String derived: astart ; (a; ((b; (c ∧ d); e; f ) " g)); aend

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 21: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 9 of 15

Examples of process generation

Derivation tree

P

astart G

(G ;G )

A

a

(G ′ " G )

(G ;G )

A; (G ∧ G );A

b A

c

A

d

e

A

f

A

g

aend

String derived: astart ; (a; ((b; (c ∧ d); e; f ) " g)); aend

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 22: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 10 of 15

Examples of process generation

Internal representation

a ⊗ b ∧c

d

∧ e f ⊗

g

astart aend

Corresponding Petri Net (without astart and aend)

a b

c

d

e f

g

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 23: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 10 of 15

Examples of process generation

Internal representation

a ⊗ b ∧c

d

∧ e f ⊗

g

astart aend

Corresponding Petri Net (without astart and aend)

a b

c

d

e f

g

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 24: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 25: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 26: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 27: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’

2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’

7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 28: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’

2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’

7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 29: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’

2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’

7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 30: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’

3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’

8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 31: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’

3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’

8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 32: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’

3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’

8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 33: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’

4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’

9 Activity ‘C’10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 34: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’

4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’

9 Activity ‘C’10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 35: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’

4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’

9 Activity ‘C’10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 36: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’

5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 37: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’

5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 38: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’

5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 39: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 40: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 11 of 15

Step 2: “Execution” of a process model

The execution of a process model is simulated with an algorithmthat performs a visit of the graph

ActivityTracer(a, s)

Input: a: the current activitys: a stack (last-in-first-out queue) of activities

1 if s = ∅ or top(s) 6= a then

2 RecordActivity(a)

3 if deg→(a) = 1 then4 ActivityTracer(out(a), s)

5 else if deg→(a) > 1 then6 if Tout (a) = XOR then7 a1 ← random(out(a))8 ActivityTracer(a1, s)

9 else if Tout (a) = AND then10 aj ← join(a)

11 push(s, aj )

12 foreach ai ∈ out(a) do13 ActivityTracer(ai , s)

14 end15 pop(s)16 ActivityTracer(aj , s)

17 end

18 end

19 end

A B

C

D

E

# Activities

Instance 1

1 Activity ‘A’2 Activity ‘B’3 Activity ‘C’4 Activity ‘D’5 Activity ‘E’

# Activities

Instance 2

6 Activity ‘A’7 Activity ‘B’8 Activity ‘D’9 Activity ‘C’

10 Activity ‘E’

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 41: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 12 of 15

The implementation of PLG (library + GUI)

The tool has been implemented in Java language is composed of

A library for the generation of random processes and logs

A GUI, as proof-of-concept of the main feature of the library

The library uses ProM library and generates logs in MXML format

Process models can be stored in .plg files

Models can be exported in dot files as Heuristics Net orconverted into Petri Net

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 42: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 13 of 15

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 43: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 13 of 15

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 44: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 13 of 15

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 45: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 13 of 15

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 46: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 14 of 15

Process generation limitation

Main limitation of the approach is that it can’t generate allthe possible models

Example of construct that can’t be generated are “interleavedloops”

. . . A . . . G1 G2. . . B . . .

G3

G4

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs

Page 47: PLG: a Framework for the Generation of Business Process ...€¦ · PLG: a Framework for the Generation of Business Process Models and their Execution Logs Andrea Burattin and Alessandro

Slide 15 of 15

Conclusions and future works

In this work we have presented a framework for the generation ofbusiness processes and their executions logs

Real processes are composition of well-known patterns

The system combine those patterns creating new processes

Each process can be executed

Future works include

Characterization of the space of generated models

Study of the “realisticness” of the generated models

Andrea Burattin and Alessandro Sperduti PLG: Framework for Generation of Processes and Logs