60
Business Process Modelling with Continuous Validation Stefan Kühne, Heiko Kern, Volker Gruhn, Ralf Laue University of Leipzig, Germany D t t fB i If ti S t Department of Business Information Systems Chair of Applied Telematics / e-Business 1

Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Business Process Modelling with Continuous Validation

Stefan Kühne, Heiko Kern, Volker Gruhn, Ralf LaueUniversity of Leipzig, Germany

D t t f B i I f ti S tDepartment of Business Information SystemsChair of Applied Telematics / e-Business

1

Page 2: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Continuous Validation

• Continuous Validation - What does it mean?

• The term has been borrowed from "continuous testing" / "continuous compilation"continuous compilation

2

Page 3: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Programming with Modern IDEs

Errors and warnings are generated immediately,

Compiler runs in background

Often, suggestions for fixing a problem automatically are

3

gg g p ygenerated.

Page 4: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Goal

To build a prototype of a BPM editor with immediate feedbackTo build a prototype of a BPM editor with immediate feedback about

• syntactical errorssyntactical errors• execution problems (deadlocks, multiple termination)• "bad style"bad style

4

Page 5: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Start ofModelling

alternative execution (XOR connectors)

Work on theModel

(XOR-connectors)

ModelCreated

parallel execution (AND-connectors)

Validate OR connectors: modelModel

Need to improveth d l

OR-connectors: model parallel execution of one or more flows

Nothing toimprove,

the model more flows

5

ptask done

Page 6: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Start ofModelling

Work on theModelModeller

ModelCreated

ValidateExpert for ValidateModel

N d t i

Expert forValidation

Nothing to

Need to improvethe model

6

Nothing toimprove,task done

Page 7: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Start ofModellingModelling

Work on theModel withM d ll Model withContinuousValidation

Modeller

Nothing toNothing toimprove,task done

7

Page 8: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Known Validation Methods

(a) Give the model a formal semantics and explore the state space.p

(b) Repeatedly reduce well-structured parts of the model(b) Repeatedly reduce well structured parts of the modelModel is correct, if it can be reduced to a single element

(c) Look for structural error patterns,Heuristic approaches

8

Page 9: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

(a) Explore the State Space(b) Reduction Algorithms

• Problem 1:An error can be found but not its reason

9

Page 10: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

yes/no answer,

no feedback about how to fix the problem

10

Page 11: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

(a) Explore the State Space(b) Reduction Algorithms

• Problem 1:An error can be found - but not its reason

• Problem 2:Even if the reason of the error can be identified, some errors remain undetected.

11

Page 12: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Example: One of two Problems?

Event a F3

F1

Event a

E t b

F3

F4

Start

Event b F4

End

F2

12

Page 13: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

(a) Explore the State Space(b) Reduction Algorithms

• Problem 1:An error can be found - but not its reason

• Problem 2:Even if the reason of the error can be identified, some errors are ignored

• Problem 3:State Space Explosion

13

Page 14: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

(a) Explore the State Space(b) Reduction Algorithms

• Problem 1:An error can be found - but not its reason

• Problem 2:Even if the reason of the error can be identified, some errors are ignored

• Problem 3:State Space Explosion (for (a))

• Problem 4:M d lli t l i t f thModelling style is out of the scope

14

Page 15: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Modelling Style

• All these model fragments are absolutely correct (from a theoretical point of view):p )

15

Page 16: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Modelling Style

• All these model fragments are absolutely correct (from a theoretical point of view):p )

but should be coorected anyway to:

16

Page 17: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Syntactical Correct UML

An UML AD example: syntactically correct...

but absolutely useless

should be detected by an editor

17

source: Harald Störrle. Semantics of UML 2.0 Activities

Page 18: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

(a) Explore the State Space(b) Reduction Algorithms

• Problem 1:An error can be found - but not its reason

• Problem 2:Even if the reason of the error can be identified, some errors are ignored

• Problem 3:State Space Explosion (for (a))

• Problem 4:M d lli t l i t f thModelling style is out of the scope

• Problem 5:Most approaches cannot be used for incomplete modelsMost approaches cannot be used for incomplete models

18

Page 19: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Our Tests

• Syntactical Correctness(beyond the metamodell)( y )

• Error patterns for deadlocks and multiple terminationError patterns for deadlocks and multiple termination

• Modelling styleModelling style

19

Page 20: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Heuristic Approach

• Our choice:• Heuristic Approach: We try to find common error patternsHeuristic Approach: We try to find common error patterns.

• Validation needed:• Validation needed:How good does this approach work, compared with the formal methods mentioned before?

20

Page 21: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Validation

• Reference:• Jan Mendling: Detection and Prediction of Errors in EPCJan Mendling: Detection and Prediction of Errors in EPC

Business Process Models (PhD thesis)

• uses reduction rules and Petri-net analysis for locatinguses reduction rules and Petri net analysis for locating errors in EPC models

• 604 models from the SAP R/3 Reference Model:• Reduction rules found 178 error patterns in 90 models• 57 models could not be reduced completelyp y

Petri-net analyzer:36 unsound

21

21 sound

Page 22: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Results

• Reduction rules found 178 error patterns in 90 models

Our approach found 176 of them.The remaining two models are sound when another formalThe remaining two models are sound when another formal semantics is assumed.

22

Page 23: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Validation

• Reduction rules found 178 error patterns in 90 models

Our approach found 176 of them.The remaining two models are sound when another formalThe remaining two models are sound when another formal semantics is assumed.

• 57 models could not be reduced completely57 models could not be reduced completelyPetri-net analyzer:36 unsoundWe found at least one error in all these models

23

Page 24: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Validation

• Reduction rules found 178 error patterns in 90 models

Our approach found 176 of them.The remaining two models are sound when another formalThe remaining two models are sound when another formal semantics is assumed.

• 57 models could not be reduced completely57 models could not be reduced completelyPetri-net analyzer:36 unsoundWe found at least one error in all these models21 soundOur tool produced one false alertOur tool produced one false alert.

24

Page 25: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

There is aThere is aquestion END

Question isanswered

25

Page 26: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Business Process Modelling with ContinuousValidation

Stefan Kühne1 Heiko Kern1 Volker Gruhn2 Ralf Laue2

1University of Leipzig, Department of Computer Science, Business Information Systems

2University of Leipzig, Department of Computer Science, Applied Telematics/e-Business

1st International Workshop on Model-Driven Engineering forBusiness Process Management (MDE4BPM 2008)

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 1 / 14

Page 27: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Outline

1 DemonstrationOur approachSyntax errorsMismatched connectorsSynchronisation Problem in AND-joinBatch processing

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 2 / 14

Page 28: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Overview

bflow* toolboxopen source project (http://www.bflow.org/)initiated by Frank Rump and Markus NüttgensEMF-, GMF-based implementation

MDD toolsmodel validation: OCL, Check, EVLmodel-to-model transformation: QVT, ATL, XTend, Viatra2model-to-text transformation: MOFScript, XPand, JETframeworks: oAW, Epsilon

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 3 / 14

Page 29: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Overview

bflow* toolboxopen source project (http://www.bflow.org/)initiated by Frank Rump and Markus NüttgensEMF-, GMF-based implementation

MDD toolsmodel validation: OCL, Check, EVLmodel-to-model transformation: QVT, ATL, XTend, Viatra2model-to-text transformation: MOFScript, XPand, JETframeworks: oAW, Epsilon

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 3 / 14

Page 30: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Overview

bflow* toolboxopen source project (http://www.bflow.org/)initiated by Frank Rump and Markus NüttgensEMF-, GMF-based implementation

MDD toolsmodel validation: OCL, Check, EVLmodel-to-model transformation: QVT, ATL, XTend, Viatra2model-to-text transformation: MOFScript, XPand, JETframeworks: oAW, Epsilon

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 3 / 14

Page 31: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Overview

bflow* toolboxopen source project (http://www.bflow.org/)initiated by Frank Rump and Markus NüttgensEMF-, GMF-based implementation

MDD toolsmodel validation: OCL, Check, EVLmodel-to-model transformation: QVT, ATL, XTend, Viatra2model-to-text transformation: MOFScript, XPand, JETframeworks: oAW, Epsilon

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 3 / 14

Page 32: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

oAW Check (example)

Checkcontext epc::Element

if (this.isConnector())WARNING ’RS006: Connectors should have either multiple incoming or

multiple outgoing arcs’ :!(this.isJoin() && this.isSplit());

XTendBoolean isJoin(epc::Element element) :

element.isConnector() && element.incomingControlFlows().size > 1;

X X X X X X X

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 4 / 14

Page 33: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

oAW Check (example)

Checkcontext epc::Element

if (this.isConnector())WARNING ’RS006: Connectors should have either multiple incoming or

multiple outgoing arcs’ :!(this.isJoin() && this.isSplit());

XTendBoolean isJoin(epc::Element element) :

element.isConnector() && element.incomingControlFlows().size > 1;

X X X X X X X

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 4 / 14

Page 34: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

oAW Check (example)

Checkcontext epc::Element

if (this.isConnector())WARNING ’RS006: Connectors should have either multiple incoming or

multiple outgoing arcs’ :!(this.isJoin() && this.isSplit());

XTendBoolean isJoin(epc::Element element) :

element.isConnector() && element.incomingControlFlows().size > 1;

X X X X X X X

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 4 / 14

Page 35: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Syntax errors

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 5 / 14

Page 36: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Syntax errors

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 5 / 14

Page 37: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Mismatched connectors

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 6 / 14

Page 38: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Mismatched connectors

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 6 / 14

Page 39: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Match and seseMatch

Definition (match(s,j))A split s is matched by a join j (symbol: match(s, j)) iff there exist twodirected paths from s to j which only common elements are s and j .

Definition (seseMatch(s,j))Let s be a split and j be a join with match(s, j). We say that there areno entries and no exits between s and j , seseMatch(s, j), if thefollowing conditions hold:

1 Every path from s to an end event must contain j .2 Every path from a start event to j must contain s.3 Every path from s to s must contain j .4 Every path from j to j must contain s.

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 7 / 14

Page 40: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Match and seseMatch

Definition (match(s,j))A split s is matched by a join j (symbol: match(s, j)) iff there exist twodirected paths from s to j which only common elements are s and j .

Definition (seseMatch(s,j))Let s be a split and j be a join with match(s, j). We say that there areno entries and no exits between s and j , seseMatch(s, j), if thefollowing conditions hold:

1 Every path from s to an end event must contain j .2 Every path from a start event to j must contain s.3 Every path from s to s must contain j .4 Every path from j to j must contain s.

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 7 / 14

Page 41: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Match computation with XTend

XTend: matchBoolean match(epc::Element split, epc::Element join) :

split.children().select(c|c == join || c.isConnectedTo(join)).size > 1

&& split.joinOutsBetween(join).notExists(a| a.separates(split, join));

XTend: separatesBoolean separates(epc::Arc arc, epc::Element source, epc::Element target)

:source.arcsBetween(target)

.remove(arc)

.without(arc.from.preceedingArcs(source))

.without(arc.to.succeedingArcs(target))

.isEmpty;

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 8 / 14

Page 42: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Match computation with XTend

XTend: matchBoolean match(epc::Element split, epc::Element join) :

split.children().select(c|c == join || c.isConnectedTo(join)).size > 1&& split.joinOutsBetween(join).notExists(a| a.separates(split, join));

XTend: separatesBoolean separates(epc::Arc arc, epc::Element source, epc::Element target)

:source.arcsBetween(target)

.remove(arc)

.without(arc.from.preceedingArcs(source))

.without(arc.to.succeedingArcs(target))

.isEmpty;

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 8 / 14

Page 43: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Match computation with XTend

XTend: matchBoolean match(epc::Element split, epc::Element join) :

split.children().select(c|c == join || c.isConnectedTo(join)).size > 1&& split.joinOutsBetween(join).notExists(a| a.separates(split, join));

XTend: separatesBoolean separates(epc::Arc arc, epc::Element source, epc::Element target)

:source.arcsBetween(target)

.remove(arc)

.without(arc.from.preceedingArcs(source))

.without(arc.to.succeedingArcs(target))

.isEmpty;

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 8 / 14

Page 44: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Sese computation with XTend

XTend: succeedingArcsSet[epc::Arc] succeedingArcs(epc::Element element, Set[epc::Element]

processed) :element.outArcs().union(

element.children().without(processed).succeedingArcs(processed.union(element.children())));

XTend: seseBoolean sese(epc::Element s, epc::Element t) :

s.succeedingArcs({t}.toSet()) == t.preceedingArcs({s}.toSet());

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 9 / 14

Page 45: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Sese computation with XTend

XTend: succeedingArcsSet[epc::Arc] succeedingArcs(epc::Element element, Set[epc::Element]

processed) :element.outArcs().union(

element.children().without(processed).succeedingArcs(processed.union(element.children())));

XTend: seseBoolean sese(epc::Element s, epc::Element t) :

s.succeedingArcs({t}.toSet()) == t.preceedingArcs({s}.toSet());

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 9 / 14

Page 46: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Sese computation with XTend

Checkcontext epc::Element if this.isAndJoin()

ERROR "Mismatched XOR−split" :this.precessors().notExists(s| s.isXorSplit()

&& s.seseMatches(this));

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 10 / 14

Page 47: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Sese computation with XTend

Checkcontext epc::Element if this.isAndJoin()

ERROR "Mismatched XOR−split" :this.precessors().notExists(s| s.isXorSplit()

&& s.seseMatches(this));

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 10 / 14

Page 48: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 11 / 14

Page 49: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

Checkcontext epc::Element

if this.isAndJoin()ERROR "AND−Join might not get control" :this.precessors().notExists(S|

(S.isXorSplit() || S.isOrSplit())&& S.children().exists(SSucc|

SSucc != this && SSucc.isNotConnectedTo(this))

&& this.precessors().exists(JPred|JPred != S && S.isNotConnectedTo(

JPred)));

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 12 / 14

Page 50: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

Checkcontext epc::Element if this.isAndJoin()

ERROR "AND−Join might not get control" :this.precessors().notExists(S|

(S.isXorSplit() || S.isOrSplit())&& S.children().exists(SSucc|

SSucc != this && SSucc.isNotConnectedTo(this))

&& this.precessors().exists(JPred|JPred != S && S.isNotConnectedTo(

JPred)));

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 12 / 14

Page 51: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

Checkcontext epc::Element if this.isAndJoin()

ERROR "AND−Join might not get control" :

this.precessors().notExists(S|(S.isXorSplit() || S.isOrSplit())&& S.children().exists(SSucc|

SSucc != this && SSucc.isNotConnectedTo(this))

&& this.precessors().exists(JPred|JPred != S && S.isNotConnectedTo(

JPred)));

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 12 / 14

Page 52: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

Checkcontext epc::Element if this.isAndJoin()

ERROR "AND−Join might not get control" :this.precessors().notExists(S|

(S.isXorSplit() || S.isOrSplit())&& S.children().exists(SSucc|

SSucc != this && SSucc.isNotConnectedTo(this))

&& this.precessors().exists(JPred|JPred != S && S.isNotConnectedTo(

JPred)));

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 12 / 14

Page 53: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

Checkcontext epc::Element if this.isAndJoin()

ERROR "AND−Join might not get control" :this.precessors().notExists(S|

(S.isXorSplit() || S.isOrSplit())

&& S.children().exists(SSucc|SSucc != this && SSucc.

isNotConnectedTo(this))&& this.precessors().exists(JPred|

JPred != S && S.isNotConnectedTo(JPred))

);

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 12 / 14

Page 54: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

Checkcontext epc::Element if this.isAndJoin()

ERROR "AND−Join might not get control" :this.precessors().notExists(S|

(S.isXorSplit() || S.isOrSplit())&& S.children().exists(SSucc|

SSucc != this && SSucc.isNotConnectedTo(this))

&& this.precessors().exists(JPred|JPred != S && S.isNotConnectedTo(

JPred)));

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 12 / 14

Page 55: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

Checkcontext epc::Element if this.isAndJoin()

ERROR "AND−Join might not get control" :this.precessors().notExists(S|

(S.isXorSplit() || S.isOrSplit())&& S.children().exists(SSucc|

SSucc != this && SSucc.isNotConnectedTo(this))

&& this.precessors().exists(JPred|JPred != S && S.isNotConnectedTo(

JPred)));

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 12 / 14

Page 56: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

Checkcontext epc::Element if this.isAndJoin()

ERROR "AND−Join might not get control" :this.precessors().notExists(S|

(S.isXorSplit() || S.isOrSplit())&& S.children().exists(SSucc|

SSucc != this && SSucc.isNotConnectedTo(this))

&& this.precessors().exists(JPred|

JPred != S && S.isNotConnectedTo(JPred))

);

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 12 / 14

Page 57: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

Checkcontext epc::Element if this.isAndJoin()

ERROR "AND−Join might not get control" :this.precessors().notExists(S|

(S.isXorSplit() || S.isOrSplit())&& S.children().exists(SSucc|

SSucc != this && SSucc.isNotConnectedTo(this))

&& this.precessors().exists(JPred|JPred != S && S.isNotConnectedTo(

JPred)));

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 12 / 14

Page 58: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Synchronisation Problem in AND-join

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 13 / 14

Page 59: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Batch processing

ModificationsIteration over all modelsCached XTend functionsRelation of error messages to EPC contextoAW Workflow

Syntax checks in SAP reference model...14422 ERROR WorkflowRunner− RS009: /Main group/SAP/Production/Discrete Production/Discrete Production: Connector

has no incoming arcs. [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@a76a1f (eClass: org.eclipse.emf.ecore.impl.EClassImpl@4e79f1 (name: OR) (instanceClassName: null) (abstract: false, interface: false))]

14422 ERROR WorkflowRunner− RS009: /Main group/SAP/Quality Management/Test Equipment Management/MaintenanceOrder/Maintenance Order: Connector has no incoming arcs. [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@f0a6e8 (eClass: org.eclipse.emf.ecore.impl.EClassImpl@11a64ed (name: AND) (instanceClassName: null) (abstract: false,interface: false))]

14422 ERROR WorkflowRunner− RS010: /Main group/SAP/Production/Discrete Production/Discrete Production: Connectorhas no outgoing arcs. [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@a76a1f (eClass: org.eclipse.emf.ecore.impl.EClassImpl@4e79f1 (name: OR) (instanceClassName: null) (abstract: false, interface: false))]

14422 ERROR WorkflowRunner− RS010: /Main group/SAP/Quality Management/Test Equipment Management/MaintenanceOrder/Maintenance Order: Connector has no outgoing arcs. [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@f0a6e8 (eClass: org.eclipse.emf.ecore.impl.EClassImpl@11a64ed (name: AND) (instanceClassName: null) (abstract: false,interface: false))]

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 14 / 14

Page 60: Business Process Modelling with Continuous Validation · initiated by Frank Rump and Markus Nüttgens EMF-, GMF-based implementation MDD tools model validation: OCL,Check, EVL model-to-model

Batch processing

ModificationsIteration over all modelsCached XTend functionsRelation of error messages to EPC contextoAW Workflow

Syntax checks in SAP reference model...14422 ERROR WorkflowRunner− RS009: /Main group/SAP/Production/Discrete Production/Discrete Production: Connector

has no incoming arcs. [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@a76a1f (eClass: org.eclipse.emf.ecore.impl.EClassImpl@4e79f1 (name: OR) (instanceClassName: null) (abstract: false, interface: false))]

14422 ERROR WorkflowRunner− RS009: /Main group/SAP/Quality Management/Test Equipment Management/MaintenanceOrder/Maintenance Order: Connector has no incoming arcs. [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@f0a6e8 (eClass: org.eclipse.emf.ecore.impl.EClassImpl@11a64ed (name: AND) (instanceClassName: null) (abstract: false,interface: false))]

14422 ERROR WorkflowRunner− RS010: /Main group/SAP/Production/Discrete Production/Discrete Production: Connectorhas no outgoing arcs. [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@a76a1f (eClass: org.eclipse.emf.ecore.impl.EClassImpl@4e79f1 (name: OR) (instanceClassName: null) (abstract: false, interface: false))]

14422 ERROR WorkflowRunner− RS010: /Main group/SAP/Quality Management/Test Equipment Management/MaintenanceOrder/Maintenance Order: Connector has no outgoing arcs. [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@f0a6e8 (eClass: org.eclipse.emf.ecore.impl.EClassImpl@11a64ed (name: AND) (instanceClassName: null) (abstract: false,interface: false))]

S. Kühne et al. (UniLeipzig) Business Process Modelling with Continuous Validation MDE4BPM 2008 14 / 14