OSATE-DIM supports de-instantiation in three different scenarios:
- State-based
- Delta-based in-place refinement
- Delta-based out-of-place refinement
State-based de-instantiation
OSATE-DIM supports a state-based de-instantiation scenario as shown in the figure. In this scenario, OSATE-DIM takes all information from a (assumed) standalone Instance model and creates the simplest Declarative model from that information. By comparing the output of this scenario with the original Declarative model (if it exists) used to create the Instance model, the user can understand what kind of information is lost in the Instantiation forward transformation.
Delta-based de-instantiation of in-place refinement
In an in-place transformation, the changes are made directly in the model. Hence, for an in-place View-Update performed on the Instance model, the corresponding translation has to be in-place as well. That is, it should make changes directly on the Declarative model.
OSATE-DIM detects the changes in this scenario, using VIATRA’s built-in transformation engine that listens for changes to query patterns in the Instance model as shown in the figure. A change in the state of patterns triggers the corresponding translation rule.
In VIATRA, patterns are based on graphical queries. They have three states:
- CREATED: if the pattern is newly detected/created
- UPDATED: if the properties of the objects/nodes of the graphical pattern are changed
- DELETED: if the pattern is deleted/disappeared.
Delta-based de-instantiation of out-of-place refinement
The scenario where an entirely new Instance model (with modifications) is computed from the base Instance model, is the out-of-place scenario as shown in the figure. In this case, a new corresponding Declarative model should be constructed reflecting the modifications, instead of directly modifying the base Declarative model.
In this scenario, the View-Updates can be computed from differences between the new and original Instance models. OSATE-DIM provides the delta-trace model to define trace relations between an instance model and its out-of-place update. The delta-trace model borrows concepts from EMF Change to store information regarding the specific change operations that were performed on the Instance model to lead to the new Instance model.
The implementation of this scenario within OSATE-DIM is a work in progress.