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:
- The same queries are re-used for state-based and delta in-place scenarios.
- 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
