Metamodel co-evolution with related model-driven engineering artifacts : a multi-objective search framework
Thesis or Dissertation
Abstract(s)
Les produits logiciels sont, en général, évolués en introduisant des changements continus. Les
tâches d’évolution et de maintenance sont fastidieuses et longues. Évidemment, il y a un besoin
pour trouver de meilleures façons de faire évoluer les systèmes de logiciels. De la même manière
que le code source, la conception est amenée à évoluer au fil du temps, en raison des changements
des exigences et des contraintes techniques.
Dans le développement dirigée par les modèles, l’évolution des métamodèles peut briser les
relations avec les artefacts dépendants tels que les modèles, les règles de transformation et les
contraintes OCL. Alors que plusieurs études de coévolution sont proposées, la plupart d’entre elles
fournissent un support manuel ou semi-automatisé baser sur des modèles prédéfinis de scénarios
d’évolution. En plus d’être prédéfinis, ces modèles sont spécifiques à l’artefact à coévoluer avec le
métamodèle. L’objectif principal de notre recherche est de proposer un cadre de recherche générique
qui automatise la dérivation de stratégies de coévolution sans utiliser de modèles prédéfinis
pour des changements de métamodèles ou des types d’artefacts spécifiques. Pour qu’un artefact coévolue,
le but est de produire une nouvelle version conforme à la nouvelle version du métamodèle.
À cette fin, nous considérons la coévolution comme un problème d’optimisation multi-objectif.
La recherche des solutions est guidée par trois objectifs, qui visent à minimiser la violation de la
structure du métamodèle révisé, le nombre de modifications appliquées à l’artefact initial et la perte
d’informations. Ensuite, le cadre recommande un sous-ensemble approprié de solutions de coévolution,
avec la possibilité d’intégrer l’utilisateur dans la boucle pour fournir des commentaires et
mettre à jour les modifications recommandées.
Nous avons validé notre cadre générique en utilisant trois cas de coévolution de métamodèles,
des modèles, des règles de transformation et des contraintes OCL, sur des ensembles de données
réelles. Les résultats de l’évaluation montrent que notre approche est efficace en termes d’exactitude,
et d’utilité par rapport aux approches de coévolution les plus récentes. Successful software products are evolved by introducing continuous changes at different levels.
Thus, software industry is actively recruiting software engineers, not to create new software systems,
but to evolve and maintain existing ones. Such evolution and maintenance tasks are tedious
and time consuming. Thus, there is an urgent need to find better ways to evolve software systems
and consequently, improve developers’ productivity. Like the source code, the design is subject
to evolution due to changing requirements and technological constraints. Model-Driven Software
Evolution is concerned with the changes related to the design of software systems, from initial
development to maintenance.
In model driven development, the evolution of metamodels may break the relationships to
dependent artifacts like models, transformation rules and OCL constraints. While several coevolution
studies are proposed, most of them are providing either a manual or semi-automated
support based on pre-defined templates of evolution scenarios. In addition to be pre-defined, these
templates are specific to the artifact to co-evolve with the metamodel. The main objective of our
research is to propose a generic search-based framework for the automated recommendation of coevolution
strategies without using pre-defined templates for specific metamodel changes or artifact
types. For an artifact to co-evolve, the goal is to produce a new version that conforms to the new
version of the metamodel. To this end, we view the co-evolution as a multi-objective optimization
problem, and guide the search for solutions by three objectives, which aims at minimizing the
violation of the structure of the revised metamodel, the number of changes applied to the initial
artifact, and the loss of information. Then, the framework is able to recommend an appropriate
subset of co-evolution solutions, with the possibility of integrating the user in the loop to provide
feedback and update the recommended changes.
We validated our generic framework using three metamodel co-evolution cases, models, transformation
rules, and OCL constraints, on sets of real-world data. The evaluation results show that our approach is effective in terms of correctness and usefulness as compared to the state-of-the-art co-evolution approaches.
This document disseminated on Papyrus is the exclusive property of the copyright holders and is protected by the Copyright Act (R.S.C. 1985, c. C-42). It may be used for fair dealing and non-commercial purposes, for private study or research, criticism and review as provided by law. For any other use, written authorization from the copyright holders is required.