Extending Conceptual Schemas with Business Process Information
Table 1
Constraints for split gateways.
Split gateway
Process constraints
- Only one of the activities may be started context A inv: next->select(a a.oclIsTypeOf(B1) or or a.oclIsTypeOf(Bn))->size()<=1
- If is completed, at least one of the B1..Bn activities must be created before ending the case context Case inv: status=‘completed’ implies activities-> select(a a.oclIsTypeOf(A) and a.status=‘completed’)-> forAll (a a.next- exists(b b.oclIsTypeOf(B1) or or b.oclIsTypeOf(Bn)))
- Since several activities may be started, we just need to verify that if is completed, at least one of the activities is created before ending the case (like in the XOR split above)
- If A is completed all activities must be eventually started
context Case inv:status=‘completed’ implies activity- select(a a.oclIsTypeOf(A) and a.status=‘completed’)->forAll(a a.next->exists(b b.oclIsTypeOf(B1)) and … and a.next->exists(b b.oclIsTypeOf(Bn)))