Ghannem, Adnane (2015). Example-based model refactoring using heuristic search. Thèse de doctorat électronique, Montréal, École de technologie supérieure.
Prévisualisation |
PDF
Télécharger (3MB) | Prévisualisation |
Résumé
Software maintenance is considered the most expensive activity in software systems development: more than 80% of the resources are devoted to it. During the maintenance activities, software models are very rarely taken into account. The evolution of these models and the transformations that manipulate them are at the heart of model-driven engineering (MDE). However, as the source code, the model changes and tends to become increasingly complex. These changes generally have a negative impact on the quality of models and they cause damage to the software.
In this context, refactoring is the most used technique to maintain an adequate quality of these models. The refactoring process is usually done in two steps: the detection of elements of the model to correct (design defects), then the correction of these elements.
In this thesis, we propose two main contributions related to detection and correction of defects in class diagrams.
The first contribution aims to automate the design defect detection. We propose to adapt genetic algorithms (e.g., genetic programming) to detect parts of the model that may correspond to design defects.
The second contribution concerns the automation of the correction of these design defects. We propose to adapt three heuristic methods to suggest refactorings:
1. A single-objective optimization method based on structural similarities between a given model (i.e., the model to be refactored) and a set of examples of models (i.e., models that have undergone some refactorings);
2. An interactive single-objective optimization method based on structural similarity and the opinion of the designer; and
3. A multi-objective optimization method that maximizes both the structural and semantic similarities between the model under study and the models in the set of examples.
All the proposed methods were implemented and evaluated on models generated from existing open-source projects and the obtained results confirm their efficiency.
Résumé traduit
La maintenance logicielle est considérée comme l'activité la plus coûteuse dans le développement des systèmes logiciels: plus de 80% des ressources lui sont consacrées. Dans l'activité de maintenance logicielle, les modèles sont très peu pris en compte. L’évolution de ces modèles et les transformations qui les manipulent sont au coeur de l’ingénierie dirigée par les modèles (IDM). Cependant, comme le code source, le modèle change et tend à devenir de plus en plus complexe au fur et à mesure de son existence. Ces changements ont généralement un impact négatif sur la qualité des modèles et ils provoquent une détérioration des logiciels.
Dans ce contexte, le refactoring est la technique la plus utilisée pour maintenir une qualité adéquate de ces modèles. Le refactoring se fait généralement en deux étapes: la détection des éléments du modèle à corriger (défauts de conception), puis la correction de ces éléments.
Dans le cadre de cette thèse, nous proposons deux principales contributions liées aux problèmes de détection et correction des défauts dans les diagrammes de classes.
La première contribution est l’automatisation de la détection des défauts de conception. Nous proposons d'adapter des algorithmes génétiques (ex., programmation génétique) pour détecter les parties du modèle qui peuvent correspondre à des défauts.
La deuxième contribution vise l’automatisation de la correction de ces défauts. Nous proposons d’adapter trois méthodes heuristiques pour suggérer des refactorings:
1. Une méthode d’optimisation mono-objective basée sur la similarité structurelle entre un modèle donné (i.e., le modèle à refactoriser) et un ensemble de modèles dans la base d'exemples (i.e., des modèles qui ont subi des refactorings);
2. Une méthode d’optimisation mono-objective interactive basée sur la similarité structurelle et l’avis du concepteur; et
3. Une méthode d’optimisation multi-objective qui maximise à la fois la similarité structurelle et sémantique.
Les différentes méthodes proposées ont été implémentées et évaluées sur des modèles générés à partir de logiciels libres et les résultats obtenus montrent leur efficacité.
Type de document: | Mémoire ou thèse (Thèse de doctorat électronique) |
---|---|
Renseignements supplémentaires: | "Manuscript-based thesis presented to École de technologie supérieure in partial fulfillment of the requirements for the degree of doctor of philosophy". Bibliographie : pages 223-232. |
Mots-clés libres: | Logiciels Maintenance. Logiciels Refactorisation. Ingénierie dirigée par les modèles. Détection de défaut (Ingénierie) Automatisation. Programmation heuristique. Algorithmes génétiques. défauts de conception, refactoring, diagramme de classe, recherche heuristique |
Directeur de mémoire/thèse: | Directeur de mémoire/thèse El Boussaidi, Ghizlane |
Codirecteur: | Codirecteur Kessentini, Marouane Abran, Alain |
Programme: | Doctorat en génie > Génie |
Date de dépôt: | 01 avr. 2015 18:15 |
Dernière modification: | 15 janv. 2018 21:01 |
URI: | https://espace.etsmtl.ca/id/eprint/1445 |
Gestion Actions (Identification requise)
Dernière vérification avant le dépôt |