OSATE-DIM: Rules

Translation of View-updates is performed through rules specified in an Xtend-based DSL from VIATRA. When the state of a query pattern changes, the corresponding transformation rule is fired. The logic behind De-instantiation remains the same, irrespective of the scenario.

The way in which the graphical queries have been designed provides two advantages:

  1. The same queries are re-used for state-based and delta in-place scenarios.
  2. The movement of an Instance model element from one node to another is automatically interpreted as the deletion of a match and addition of a match, which eliminates the need to consider the MOVE operation separately. The MOVE operation is condensed into a DELETION followed by a CREATION.

The advantage of using VIATRA within OSATE-DIM is evident through the high number of decisions (based on complex conditions) required for various de-instantiation operations, which cannot be supported through other view-update frameworks. (for example, an explosion in state-space is expected with use of Triple-Graph-Grammars)

Component Addition

Component Updation

Component Deletion

Feature Addition

Feature Updation

Feature Deletion

Connection Addition

Connection Updation

Connection Deletion

Mode Addition

Root Mode
Derived Mode

Mode Updation

Root Mode
Derived Mode

Mode Deletion

Root Mode
Derived Mode

Mode Transition Addition

Mode Transition Updation

Mode Transition Deletion

Property Addition

Property Association
Modal Property Value
Property Value

Property Updation

Property Association
Modal Property Value
Property Value

Property Deletion

Property Association
Modal Property Value
Property Value

Avoiding Undesirable Change Propagation