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.