Download presentation
Presentation is loading. Please wait.
Published byMiranda Sellman Modified over 9 years ago
1
Extending ASSL: Making UML Metamodell-based Workflows executable © 2010 University of Rostock | Department of Computer Science Jens Brüning, Andreas Wolff Rostock University (Germany) Department of Computer Science Lars Hamann Bremen University (Germany) Department of Computer Science OCL 2011 06/29/2011
2
2 Overview of this talk 1.Concept of a new metamodel-based approach for workflows Short introduction to workflow modeling The metamodel for workflows Creating workflow models with USE (with static properties checks) 2.Executing workflow models with USE Short introduction to ASSL and its extensions Using ASSL to implement execution semantics for the workflow models Workflow plugin for USE (testing dynamic properties) 3.Summary © 2010 University of Rostock | Department of Computer Science 06/29/2011
3
3 1. Short introduction to process modeling Process modeling languages for documentation and requirements engineering Event-driven Process Chains UML Activity Diagrams Business Process Modeling Notation (BPMN) The UML metamodel-based approach Uses UML class and state diagrams and OCL for the metamodel UML object and sequence diagrams for process models and process instances © 2010 University of Rostock | Department of Computer Science06/29/2011
4
4 1. The metamodel for workflows (class diagram) © 2010 University of Rostock | Department of Computer Science06/29/2011
5
5 1. The metamodel for workflows (state diagrams) State diagram for modeling object life cycles of Activity and Iteration State diagram expressed by OCL pre- and postconditions context Activity::start() pre isWaiting: state=#waiting post isRunning: state=#running © 2010 University of Rostock | Department of Computer Science Life cycle for class Activity 06/29/2011
6
6 1. The metamodel for workflows (OCL contraints) OCL invariants are used to define the execution semantics in the metamodel Sequence relationship (WCP1) context Activity inv seqActivity: let activities:Set(Activity) = pred.oclAsType(Activity)->select(isDefined)->asSet in let ops:Set(Group) = pred.oclAsType(Group)->select(isDefined)->asSet in self.state = #running implies activities->union(ops.activity)->forAll(state=#done or state=#skipped) OCL invariants to assure structural properties (e.g. no deadlocks) Context FlowObject inv noSeqCycles: self.getPredObjects(oclEmpty(Set(FlowObject)))->excludes(self) FlowObject :: getPredObjects(act:Set(FlowObject)):Set(FlowObject)= let newElems:Set(FlowObject)=self.pred - act in if newElems->isEmpty() then act else newElems->collect(getPredObjects(act->union(newElems))) ->asSet()->union(act) endif © 2010 University of Rostock | Department of Computer Science06/29/2011
7
7 1. Modeling processes with the new approach Differences between UML AD and the metamodel-based approach Sequence (WCP 1) Choice (WCP 4) Concurrency (WCP 2) AB B C B C © 2010 University of Rostock | Department of Computer Science Activity DiagramMetamodel approach 06/29/2011
8
8 More advanced relationships can be expressed easily by declarative OCL expressions Interleaved Parallel Routing (Workflow Pattern 17) –Execute a number of activities in any order, but do not execute any of these at the same time / simultaneously Parallel relationship –For example for modeling assistance or observation activities B C Set{B,C} ->select(state=running) ->size<=1 1. Modeling processes with the new approach B C B.state=C.state © 2010 University of Rostock | Department of Computer Science06/29/2011
9
9 Processes, Activities and temporal relations can be modeled by drag and drop in USE 1. Modeling processes with USE © 2010 University of Rostock | Department of Computer Science06/29/2011
10
10 Hospital emergency process modeled in USE 1. Modeling processes with USE © 2010 University of Rostock | Department of Computer Science06/29/2011
11
11 ASSL implements large parts of the UML action semantics –Object creation and deletion –Link creation and deletion –Setting attributes –OCL expressions can be integrated in the ASSL expressions Special ASSL commands to find valid snapshots – Try and Any – try to find valid snapshot semi-automatically –If no valid state was found the ASSL procedure returns without results Newly implemented ASSL commands –Calling procedures: ASSLCall ( ); –Entering operations with pre-condition checks: OpEnter ( ); –Exiting operations with post-condition checks: OpExit ; 2. Short introduction to ASSL and its extensions © 2010 University of Rostock | Department of Computer Science06/29/2011
12
12 ASSL implementation of the imperative parts of the workflow metamodel 2. Execution semantics for the workflow models © 2010 University of Rostock | Department of Computer Science procedure start(a:Activity) var setA:Set(Activity); begin -- checking precondition of operation OpEnter [a] start(); -- changing state to running [a].state:=[#running]; for gr:Group in [a.group->asSequence] begin -- skipping all deferred choice activities if [gr.oclIsTypeOf(DeferredChoice)] then begin setA := [gr.activity ->select(a2|a2.state=#waiting)]; for a2:Activity in [setA->asSequence] begin ASSLCall skip([a2]); end; -- starting all parallel activities if [gr.oclIsTypeOf(Parallel)] then begin setA := [gr.activity->select(a2| a2<>a and a2.state<>#running)]; for a2:Activity in [setA->asSequence] begin ASSLCall start([a2]); end; end; end;... OpExit ; end 06/29/2011
13
13 Dynamic properties of the process models can be tested with the workflow plugin in USE The interface of Activities is provided by the buttons start, finish, skip and fail Activity execution states are expressed by the color (e.g. blue = running ) Workflow plugin provides different views on the workflow instance 2. Workflow plugin for USE © 2010 University of Rostock | Department of Computer Science Extended viewWorklist view 06/29/2011
14
14 2. Workflow plugin for USE Process scenario is logged by an UML sequence diagram in USE 06/29/2011© 2010 University of Rostock | Department of Computer Science
15
15 A UML metamodel for workflow models with declarative execution semantics was presented Some temporal relations could be expressed easier than in traditional modeling languages Creating process models in USE was demonstrated ASSL as language for workflow execution was introduced Process execution with USE Workflow Plugin was presented 3. Conclusion 06/29/2011© 2010 University of Rostock | Department of Computer Science
16
16 Thank you very much for your attention! Any questions? 06/29/2011© 2010 University of Rostock | Department of Computer Science
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.