07.03.2014 Views

BPMN and Beyond Business process modelling notation, workflow ...

BPMN and Beyond Business process modelling notation, workflow ...

BPMN and Beyond Business process modelling notation, workflow ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

AdHocTransition(node) = [if Enabled(in) then]<br />

let t = firingToken(in)<br />

[Consume(t, in)]<br />

[let i = select InputSets (SomeAvail(inputSets(node)))<br />

currInput(node) := i]<br />

while not AdHocCompletionCond(node, t)<br />

if adHocOrder(node) = Parallel then forall a ∈ innerAct(node) do a[inputs(i)]<br />

if adHocOrder(node) = Sequential then let< a 0 , . . . , a n >= innerAct(node)<br />

foreach j < n do a j [inputs(i)]<br />

seq LoopExit(node, t)<br />

where Completed(node, t) = AdHocCompletionCond(node, t)<br />

10 Appendix: ASMs in a nutshell<br />

The ASM method for high-level system design <strong>and</strong> analysis (see the AsmBook [12]) comes with<br />

a simple mathematical foundation for its three constituents: the notion of ASM, the concept of<br />

ASM ground model <strong>and</strong> the notion of ASM refinement. For an underst<strong>and</strong>ing of this paper only<br />

the concept of ASM is needed. For the concept of ASM ground model (read: mathematical system<br />

blueprint) <strong>and</strong> ASM refinement see [9].<br />

10.1 ASMs = FSMs with arbitrary locations<br />

i<br />

cond 1<br />

cond n<br />

rule 1<br />

rule n<br />

j<br />

j n<br />

1<br />

if ctl state = i then<br />

if cond 1 then<br />

rule 1<br />

ctl state := j 1<br />

· · ·<br />

if cond n then<br />

rule n<br />

ctl state := j n<br />

Fig. 1. Viewing FSM instructions as control state ASM rules<br />

The instructions of a Finite State Machine (FSM) program are pictorially depicted in Fig. 1,<br />

where i, j 1 , . . . , j n are internal (control) states, cond ν (for 1 ≤ ν ≤ n) represents the input condition<br />

in = a ν (reading input a ν ) <strong>and</strong> rule ν the output action out := b ν (yielding output b ν ), which goes<br />

together with the ctl state update to j ν . Control state ASMs have the same form of programs <strong>and</strong><br />

the same notion of run, but the underlying notion of state is extended from the following three<br />

locations:<br />

a single internal ctl state that assumes values in a not furthermore structured finite set<br />

two input <strong>and</strong> output locations in, out that assume values in a finite alphabet<br />

to a set of possibly parameterized locations holding values of whatever types. Any desired level of<br />

abstraction can be achieved by permitting to hold values of arbitrary complexity, whether atomic<br />

or structured: objects, sets, lists, tables, trees, graphs, whatever comes natural at the considered<br />

level of abstraction. As a consequence an FSM step, consisting of the simultaneous update of the<br />

ctl state <strong>and</strong> of the output location, is turned into an ASM step consisting of the simultaneous<br />

update of a set of locations, namely via multiple assignments of the form loc(x 1 , . . . , x n ) := val,<br />

yielding a new ASM state.<br />

This simple change of view of what a state is yields machines whose states can be arbitrary<br />

multisorted structures, i.e. domains of whatever objects coming with predicates (attributes) <strong>and</strong><br />

38

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!