AbstractsLaw & Legal Studies

Example-based model refactoring using heuristic search

by Adnane Ghannem




Institution: École de technologie supérieure
Department:
Year: 2015
Record ID: 2058749
Full text PDF: http://espace.etsmtl.ca/1445/1/GHANNEM_Adnane.pdf


Abstract

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é.