La vitrine de diffusion des mémoires et thèses de l'ÉTS
RECHERCHER

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

Boaye Belle, Alvine (2016). Recovering software layers from object oriented systems : a formalization as an optimization problem. Thèse de doctorat électronique, Montréal, École de technologie supérieure.

[img]
Prévisualisation
PDF
Télécharger (2MB) | Prévisualisation
[img]
Prévisualisation
PDF
Télécharger (1MB) | Prévisualisation

Résumé

Software architecture recovery is a bottom-up process that aims at building high-level views that support the understanding of existing software applications. Many existing software systems lack documentation or have often drifted from their initial design due to multiple maintenance operations. To support their evolution and maintenance, it is therefore mandatory to reconstruct and document their architectures. Our focus in this thesis is the recovery of layered architectures as the layered style is a widely used pattern to structure large software systems. In this context, some approaches were proposed to reconstruct the architecture. However, most of these approaches propose algorithms that partition elements of the analyzed system into layers using some heuristics (e.g., heuristics to resolve cyclic dependencies). This may result in partitions with very few layers or too many layers which may be too permissive with violations of the style’s constraints.

In this thesis, we propose an approach that aims at recovering the layered architecture of object oriented systems while relying on: 1) a set of constraints that convey the essence of the layered architectures and 2) the input which reveals how strictly the layering rules were enforced when designing a given system. To do so, we studied the layered style and extracted a set of rules that a layered system must comply with during its lifecycle. We used these rules to derive a set of layers’ dependency attributes and factors from structural and lexical information. These attributes and factors correspond to possible types of assignments of dependent packages to the layers of a given system. This enabled us to formulate the layering recovery problem as an optimization problem that is a specific case of the quadratic assignment problem (QAP). We solved this problem using search-based metaheuristics (i.e. hill climbing and tabu search). We evaluated the proposed approach through experimentations performed on five open source software systems.

The main contributions of this thesis are: 1) the definition of a set of constraints and layers’ dependency attributes that reflect a minimal set of the layering rules and that can guide the layering recovery process; 2) the translation of the layering recovery problem into an optimization problem; 3) a tool that implements this approach and that is available for the software engineering community in the form of an Eclipse plugin; and 4) a layering recovery approach that is language and platform independent since it relies on the OMG’s KDM (Knowledge Discovery Metamodel) standard for representing software systems.

Titre traduit

Reconstruction des couches logicielles des systèmes orientés objet : formalisation comme un problème d'optimisation

Résumé traduit

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.

Type de document: Mémoire ou thèse (Thèse de doctorat électronique)
Renseignements supplémentaires: "Thesis presented to École de technologie supérieure in partial fulfillment of the requirements for the degree of the doctor of philosophy". Bibliographie : pages 207-223.
Mots-clés libres: 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
Directeur de mémoire/thèse:
Directeur de mémoire/thèse
El Boussaidi, Ghizlane
Co-directeurs de mémoire/thèse:
Co-directeurs de mémoire/thèse
Abran, Alain
Programme: Doctorat en génie > Génie
Date de dépôt: 14 oct. 2016 14:07
Dernière modification: 10 déc. 2016 17:10
URI: http://espace.etsmtl.ca/id/eprint/1739

Actions (Identification requise)

Dernière vérification avant le dépôt Dernière vérification avant le dépôt

Statistique

Plus de statistique...