Using logic programming for adapting models to metamodel evolution. (2017) - Anguel, Fouzia; Amirat, Abdelkrim; Bounour, Nora
Evolution is inherent in software systems because of the rapid improvement of technologies. As metamodels are the cornerstone of model driven engineering and they evolve iteratively, their evolution affects the rest of artefacts involved in a development process, e.g., models or transformation rules. Therefore, co-evolution tools for models and other artefacts are indispensable. We present in this paper an intelligent approach to adapt models by means of state-based and operator-based techniques. The defined co-evolution process consists of four phases. Initially, changes between two metamodel versions are detected. After that, evolution scenario is reconstructed using logic programming method. Evolution scenario is first calculated from difference model and represented by a set of primitive evolution operations, after that it is transformed using an inference engine to include eventual composite evolution operations; from this scenario adaptation solutions are generated according to the evolution operator impact in model level. Finally, migration scenario is applied on an input model conforming to the old metamodel version to remain compliant with its metamodel.