Passer à la navigation principale Passer à la recherche Passer au contenu principal

Recovering software layers from object oriented systems : a formalization as an optimization problem

Traduction de l'intitulé de la thèse: Reconstruction des couches logicielles des systèmes orientés objet : formalisation comme un problème d'optimisation
  • Alvine Boaye Belle

Thèses et mémoires: Thèse de doctoratDoctorat en génie: Génie

Résumé

La reconstruction architecturale est un processus ascendant dont le but est de créer des vues de haut niveau qui contribuent à la compréhension des applications logicielles existantes. Beaucoup de systèmes logiciels existants manquent de documentation ou ont souvent dévié de leur conception initiale à cause de multiples opérations de maintenance. Pour permettre leur évolution et leur maintenance, il est donc nécessaire de reconstruire et de documenter leurs architectures. Dans cette thèse, nous nous focalisons sur la reconstruction des architectures en couches, dans la mesure où le style en couches est un style architectural largement utilisé pour structurer des systèmes logiciels de grande taille. Dans ce contexte, certaines approches ont été proposées pour effectuer la reconstruction de l’architecture. Cependant, la plupart de ces approches proposent des algorithmes qui partitionnent les éléments du système analysé en couches en utilisant des heuristiques (ex. des heuristiques pour gérer les dépendances cycliques). Ceci peut résulter en des partitions ayant soit très peu de couches ou trop de couches et qui peuvent ainsi être trop permissives vis-à-vis des violations des contraintes du style. Dans cette thèse, nous proposons une approche qui vise la reconstruction des architectures en couches des systèmes orienté-objet tout en appuyant sur: 1) un ensemble de contraintes qui véhiculent l'essence des architectures en couches et 2) des données qui indiquent la rigueur avec laquelle les règles du style en couches ont été appliquées lors de la conception d'un système donné. Pour ce faire, nous avons étudié le style en couches et extrait un ensemble de règles auxquelles un système en couches doit se conformer tout au long de son cycle de vie. Nous avons exploité ces règles pour dériver différents attributs liés aux dépendances entre couches ainsi que des facteurs determinés à partir d’entrées structurelles et lexicales. Ces attributs et ces facteurs correspondent aux possibles types d’assignation de packages dépendants aux couches d'un système donné. Cela nous a permis de formuler le problème de reconstruction architecturale comme un problème d'optimisation qui est un cas particulier du problème d'assignation quadratique (QAP). Nous avons résolu ce problème en utilisant des algorithmes de recherche méta-heuristique (c-à-d hill climbing et recherche taboue). Nous avons évalué l'approche proposée par le biais d'expérimentations réalisées sur cinq systèmes logiciels ouverts. Les principales contributions de cette thèse sont: 1) la définition d'un ensemble de contraintes et d’attributs qui reflètent un ensemble minimal de règles relatives au style en couches et qui peuvent guider le processus de reconstruction des architectures en couches; 2) la translation du problème de reconstruction des architectures en couches en un problème d'optimisation; 3) un outil qui met en oeuvre cette approche et qui est disponible pour la communauté du génie logiciel sous la forme d'un plug-in Eclipse; et 4) une approche de reconstruction des architectures en couches qui est indépendante du langage et de la plate-forme utilisés, dans la mesure où cette approche utilise le standard KDM (Knowledge Discovery Metamodel) de l'OMG pour représenter des systèmes logiciels.
Date28 juil. 2016
langue originaleAnglais américain
Établissement diplômant
  • École de technologie supérieure
SuperviseurGhizlane El Boussaidi (Directeur(-trice)) & Alain Abran (Codirecteur(-trice))

Mots-clés

  • Architecture logicielle. Rétro-ingénierie. Conception orientée objet (Informatique) Optimisation mathématique. Modules d'extension (Logiciels) Conception. couche
  • logiciel
  • reconstruction architecturale
  • architecture en couches
  • règles du style en couches

Citer cette ressource

'