FWF P 25513-N15
Guiding Software Design Evolution by Constraint Transformation


In model-driven software engineering, model transformation plays a key role to automatically generate and update models. Most traditional transformation approaches are batch like and the notion of change is only present in specialized solutions. There are many complex issues that need to be solved for model transformation to be incremental. For example, a common issue is the possible loss of manual changes to the generated models. The issue is even more severe with bidirectional transformations. Transformation generates a target model from a source model. In case of bidirectional transformation changes to the source model need to be transformed to the target model and, concurrently, changes to the target model need to be transformed back to the source model (concurrent model synchronizing), with many race condition problems. Furthermore, there are situations where a target model cannot be updated because of uncertainties: uncertainties as in there being no unique transformation result or uncertainties due to incomplete source model changes. Again, this problem is most severe in context of incremental transformation because changes to the source model may not be sufficient to infer precise changes to the target model, leading to missed opportunities for model transformation.

This proposed work introduces constraint transformation to generate model constraints instead of models. The novel idea is that constraints, generated from source models, restrict target models and hence avoid the problem of manual information loss. Constraints can embody uncertainties and they can reduce common race-condition problems. Our proposed approach complements traditional model transformation. Traditional model transformation is most useful in situations where a model needs to be first generated (the initial version of a generated model). However, once generated, our proposed approach may be most suited in evolving them thereafter (analogous to co-evolution). The goal of this proposed work is to 1) research the methodology for incremental constraint transformation across arbitrary design models, 2) develop a proof-of-concept tool to demonstrate the approach, and 3) evaluate the methodology and tool on industrial models. We will publish the research results in major peer-reviewed journals and conferences; and pursuit its transition to industrial use. This proposal requests funding for two PhD students and one Master’s student plus their travel needs.