Co-évolution des contraintes OCL suite à l'évolution des métamodèles

par Djamel Eddine Khelladi

Thèse de doctorat en Sciences pour l'ingénieur

Sous la direction de Reda Bendraou et de Marie-Pierre Gervais.

Le jury était composé de Jordi Cabot, Houari Sahraoui, Alexander Egyed, Olivier Barais, Jacques Malenfant.


  • Résumé

    Le paradigme ingénierie-dirigée par les modèles (Model-Driven Engine MDE) encourage l'utilisation des modèles et des langages de modélisation durant le processus de développement afin d'améliorer la qualité et la productivité. Les métamodèles sont des composants essentiels de tout écosystème de langage de modélisation afin de définir les aspects structurels d'un domaine d'activité. En complément, l'Object Constraint Language (OCL) est utilisé pour spécifier en détail les aspects du domaine d'activité, par exemple plus de 750 contraintes viennent avec le métamodèle UML. Malheureusement, les métamodèles sont constamment soumis aux changements et évolution qui affectent les contraintes OCL définies qui peuvent avoir besoin d'être co-évolué en conséquence. Bien que plusieurs approches aient été proposées pour détecter les changements de métamodèle lors de l'évolution et de les utiliser par la suite pour co-évoluer les contraintes OCL. Ils ne peuvent toujours pas détecter une trace d'évolution complète et correcte du métamodèle tout en proposant une résolution unique par contrainte OCL impactée alors que des résolutions multiples et alternatives peuvent être appliquées. Dans cette thèse, nous proposons une approche pour détecter les changements de métamodèle lors d'une évolution, tout en visant la complétude et une haute précision. Notre approche de détection considère les changements atomiques et complexes au cours de l'évolution. Par ailleurs, nous proposons une approche dédiée à la co-évolution des contraintes OCL tout en tenant compte des résolutions alternatives et à veiller à ce que seules les résolutions appropriées sont proposées à l'utilisateur pour chaque contrainte OCL impactée. Notre validation montre d'une part que le rappel (recall) de 100% est toujours atteint dans nos cas d'études avec une précision moyenne de 70,75%, qui est encore améliorée par nos heuristiques jusqu'à 91% et 100% dans certains cas. D'autre part, une moyenne de 92% et 93% respectivement syntaxiquement et sémantiquement correcte de co-évolution d'OCL sont atteintes dans nos études de cas. Les deux approches sont implémentées sous forme de plugins pour l'IDE Eclipse, un environnement de développement très répandu pour les développeurs de logiciels. Les plugins sont testés par nos partenaires industriels du projet ANR MoNoGe. Cette thèse a abouti à huit articles publiés et trois autres articles qui sont en cours de soumission / phase de révision.

  • Titre traduit

    Co-evolution of OCL constraints with evolution of metamodels


  • Résumé

    Model-Driven Engineering (MDE) paradigm promotes the use of models and modeling languages during the development process aiming at a better quality and productivity. Metamodels are core components of any modeling language ecosystem to define structural aspects of a business domain. As a complement, the Object Constraint Language (OCL) is used to specify detailed aspects of the business domain, e.g. more than 750 constraints come with the UML metamodel. Unfortunately, metamodels are subject to a constant change and evolution which impacts the defined OCL constraints that may need to be co-evolved as well. Although several approaches have been proposed to detect metamodel changes during evolution and to use them to co-evolve OCL constraints. They still cannot detect a complete and a correct evolution trace of the metamodel while proposing a unique resolution per impacted OCL constraint whereas multiple and alternative ones can be applied. In this thesis, we propose an approach to detect metamodel changes during evolution while aiming at completeness and high precision. Our detection approach considers both atomic and complex changes during evolution. In addition, we propose a dedicated approach to co-evolve OCL constraints while considering alternative resolutions and ensuring that only the appropriate resolutions are proposed to the user for each impacted OCL constraint. Our validation shows on the one hand that a 100% recall is always reached in our case studies with an average precision of 70.75%, which is improved by our heuristics up to 91% and 100% in some cases. On the other hand, an average of 92% and 93% of respectively syntactically and semantically correct OCL co-evolution are reached in our case studies. Both approaches are implemented as plugins for the Eclipse IDE a wide-spread development environment for software developers. The plugins are under test by our industrial partners in the ANR MoNoGe project. This PhD resulted in eight published papers and three other papers are currently under submission/revision phase.

Consulter en bibliothèque

La version de soutenance existe

Où se trouve cette thèse ?

  • Bibliothèque : Université Pierre et Marie Curie. Bibliothèque Universitaire Pierre et Marie Curie. Bibliothèque électronique.
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.