Thèse de Hani Abdeen

Visualiser, Évaluer et Re-Modulariser les Éléments Architecturaux des Applications Orientées-Objet

Pour faire face à la complexité des grands systèmes logiciels orientés objets, les programmeurs organisent les classes en sous-systèmes en utilisant les concepts de module ou de package. Une telle structure modulaire permet aux systèmes logiciels d'évoluer face aux nouvelles exigences. L'organisation des classes dans des packages et / ou sous-systèmes, que nous appelons la modularisation du logiciel, suit habituellement les relations entre les classes. Il est de usage de vouloir les packages faiblement couplés et assez cohésifs. Cependant, les études montrent que quand les systèmes logiciels s'adaptent aux exigences et aux modifications de l'environnement, leurs modularisations dérivent et perdent progressivement leur qualité. En conséquence, la modularisation des systèmes logiciels doit être maintenue. Il est donc important de comprendre, d'évaluer et d'optimiser l'organisation des packages et de leurs relations. Le point défendu dans la thèse est que le maintien des modularisations logiciels de grande taille et complexes requiert des approches qui contribuent à: (1) la compréhension des packages et de leurs relations; (2) l'évaluation de la qualité d'une modularisation, ainsi que la qualité d'un package dans le contexte d'une modularisation donnée; (3) l'optimisation de la qualité d'une modularisation existante. Dans cette thèse, nous nous concentrons sur trois domaines de recherche: visualisations de programmes, métriques et algorithmes. Dans un premier temps nous définissons deux visualisations qui aident les mainteneurs à: (1) la compréhension de la structure des packages, et de leurs utilisations et leurs relations; (2) l'identification des modèles; et (3) l'identification des anomalies structurelles. En plus de visualisations, nous définissons un ensemble de métriques qui aident à évaluer la qualité d'un package (i.e., la cohésion et le couplage). Nous définissons également des métriques qui permettent d'évaluer la qualité d'une collection des packages inter-dépendants. Ceci en prenant en compte le degré de couplage et de cycles entre les packages. Enfin, nous définissons une algorithme de recherche qui réduit automatiquement le couplage et les cycles entre les packages, en déplaçant seulement les classes sur les packages existants. Notre approche d'optimisation prend explicitement en compte l'organisation des classes et la structure originale des packages. Il permet également aux mainteneurs de contrôler le processus d'optimisation en spécifiant un ensemble de contraintes. Les approches présentées dans cette thèse ont été appliquées à des systèmes logiciels orienté objets, réels et de grand taille. Les résultats obtenus démontrent l'utilité de nos visualisations et métriques, et l'efficacité de notre algorithme d'optimisation.

Jury

Directeur de thèse : Stéphane DUCASSE, DR INRIA, INRIA Lille Nord Europe Co-encadrant : Ilham ALLOUI, Maître de Conférences, Université de Savoie Chambéry Rapporteurs : Marianne HUCHARD, Professeur, Université Montpellier 2 Françoise BALMAS, Maître de Conférences, Université Paris 8 Examinateurs : Laurence DUCHIEN, Professeur, Université Lille 1 Sciences et Technologies Manuel ORIOL, Senior Lecturer, Université de York UK

Thèse de l'équipe RMoD soutenue le 24 novembre 2009

Retour vers les autres thèses