Design Considerations


Rule Constraints for Avoiding Infinite Loops

  1. Within a concept, a change in one attribute shall not change the value of another attribute. One execption to this constraint exists for the "access" attribute which has been defined as the basic event in the model.
  2. Between concepts, updates to attributes shall only be made from one concept to another when the where clause contains a relationship between the concepts.


Constraint Example (Breaking Constraint 1)

C: select C1.attr
   where C1.attr > 0
A: update C1.attr := C1.attr + 1


Another example (Breaking Constraint 2)

C: select C2.attr
   where C2.attr > 0
A: update C3.attr := C3.attr + 1

C: select C3.attr
   where C3.attr > 0
A: update C2.attr := C2.attr + 1