Mapping Examples
Some examples illustrating how different DecSerFlow constraints are mapped onto SCIFF follow.
Absence
The absence constraint specifies that a certain activity cannot be executed (remember that following an open approach means that not only what is mandatory but also what is forbidden has to be explicitly specified). SCIFF can be simply model it by imposing a forbidding (i.e. a negative expectation) about the activity at any time:
true→EN(performed(A),_).
Existence N
The existence N constraint specifies that a certain activity must be performed at least N times. SCIFF formalizes this constraint by generating N different expectations about the activity execution. Difference between executions is modeled as difference between their execution times:
true→∧(i=1..n)
E(performed(A),Ti)∧Ti>Ti-1.
Responded Absence
The responded absence constraint is a negative relationship which states that if a certain activity (A) is performed, then another activity (B) cannot be performed neither before or afterwards. To model it, SCIFF imposes an absence constraint on B triggered by the happening of A’s execution:
H(performed(A),TA)→EN(performed(B),TB).
Alternate Response
The alternate response constraint enforces a response constraint as well as interposition
between involved activities.
Response states that when activity A is performed (i.e., happened in SCIFF), then
activity B must be performed (i.e., expected to happen in SCIFF) afterwards (i.e., at a later
time):
H(performed(A),TA)→E(performed(B),TB)∧TB>TA.
Interposition ensures that between two activities A at least one B is executed, and it can be mapped onto SCIFF in a straightforward way:
H(performed(A),TA)∧H(performed(A),TA2)∧TA2>TA
→E(performed(B),TB)∧TB>TA∧TB<TA2.