Extending Conceptual Schemas with Business Process Information
Table 2
Constraints for merge gateways.
Merge gateway
Process constraints
- All A activity instances have as a previous activity instance a completed activity instance of type B1 oror Bn context A inv: previous->size()=1 and previous->exists(b (b.oclIsTypeOf(B1) or or b.oclIsTypeOf(Bn)) and b.status=‘completed’)
- Each activity instance is followed by an A activity context Case inv: status=‘completed’ implies activity->select(b b.oclIsTypeOf(B1) or or b.oclIsTypeOf(Bn))-> forAll(b b.next->exists(a a.oclIsTypeOf(A)))
- An A activity instance must wait for at least an incoming flow context A inv: previous->select(b (b.oclIsTypeOf(B1) or or b.oclIsTypeOf(Bn)) and b.status=‘completed’)- size()≥1
- An activity instance of type A must wait for a set of activities to be completed context A inv: previous->exists(b b.oclIsTypeOf(B1) and b.status=‘completed’) and…and previous->exists(b b.oclIsTypeOf(Bn) and b.status=‘completed’)
- Each set of completed activity instances must be related with an A activity instance context Case inv: status=‘completed’ implies not (activity->exists(b b.oclIsTypeOf(B1) and b.status=‘completed’ and not b.next->exists(a a.oclIsTypeOf(A)) and and activity ->exists(b b.oclIsTypeOf(Bn) and b.status=‘completed’ and not b.next->exists(a a.oclIsTypeOf(A)))