Bird-Eye Views of Object-Oriented Software
Vues à vol d’oiseau sur les systèmes orientés objet
Résumé
Software maintenance is a challenging task. It requires reading and understanding the software besides source code investigations and analysis. Maintainers usually rely on tools such as IDEs, tests and debuggers to navigate through the source code, understand its logic, detect different anomalies and correct them, etc. However, such techniques can be time-consuming for maintainers and companies. In fact, according to the existing literature, more than half of the time dedicated to software maintenance is spent reading and understanding the source code before making any changes or decisions on the software.This thesis takes a distinct approach to software maintenance by offering novel visualizations that answer to maintainers' needs. Each visualization is dedicated to a specific task inspired by the needs of the software maintainers of our industrial partners. The research done in this thesis focuses on one main objective which is detecting software violations. Our definition of violations, however, concerns three main challenges: detecting architectural violations, naming conventions violations and (anti-) naming patterns and finally, violations of clean code principles inside classes. To address these challenges, targeted visualizations are proposed: Cliservo for the detection of architectural violations in client-server software, ClassName Distribution (CnD) for the detection of naming violations, and innovation of the patrimonial ClassBlueprint Visualization (CBv2) for detecting bad quality classes' source code. These visualizations assist maintainers in understanding and improving software systems, ultimately leading to more efficient and sustainable maintenance processes.Each of the visualizations is validated independently with software maintainers and a diversity of projects including the ones of our industrial partners.
La maintenance logicielle est une tâche complexe. Elle requiert la lecture et la compréhension du programme ainsi que des investigations et des analyses du code source. Les mainteneurs se reposent généralement sur des outils tels que les environnements de développement intégrés (IDEs), les tests et les débogueurs pour naviguer à travers le code source, comprendre sa logique, détecter différentes anomalies et les corriger, etc. Cependant, ces techniques sont chronophages pour les mainteneurs et les entreprises. En effet, selon la littérature existante, plus de la moitié du temps consacré à la maintenance logicielle est attribué à la lecture et à la compréhension du code source avant de prendre des décisions ou d'apporter des modifications au logiciel.Cette thèse aborde la tâche de maintenance logicielle de manière nouvelle en proposant des visualisations novatrices qui répondent aux besoins des mainteneurs. Chaque visualisation est dédiée à une tâche spécifique inspirée des besoins des mainteneurs de logiciels de nos partenaires industriels. La recherche menée dans cette thèse se concentre sur un objectif principal qui est la détection de violations logicielles. Notre définition des violations, cependant, concerne trois principaux défis : la détection de violations architecturales, de violations de conventions de nommage et de (anti-)patterns de nommage, ainsi que de violations des principes du code propre à l'intérieur des classes. Pour relever ces défis, des visualisations ciblées sont proposées : Cliservo pour la détection des violations architecturales des programmes client-serveur. La ClassName Distribution (CnD) pour la détection de violations de nommage, et une amélioration de la ClassBlueprint originale (CBv2) pour la détection du code des classes de mauvaise qualité. Ces visualisations aident les mainteneurs à comprendre et à améliorer les systèmes logiciels, conduisant finalement à des processus de maintenance plus efficaces et durables.Chacune des visualisations est validée indépendamment auprès des mainteneurs de logiciels et sur une diversité de projets, y compris ceux de nos partenaires industriels.
Origine | Version validée par le jury (STAR) |
---|