Les logiciels évoluent au fil du temps avec la modification, l’ajout et la suppression de nouvelles classes, méthodes, fonctions, dépendances. Une conséquence est que le comportement peut être placé dans de mauvais paquetages et casser la modularité du logiciel. Une bonne organisation des classes dans des paquetages identifiables facilite la compréhension, la maintenance, les tests et l’évolution des logiciels. Nous soutenons que les responsables manquent d’outils pour assurer la remodularisation logicielle. La maintenance des logiciels nécessite des approches qui aident à (i) la compréhension de la structure au niveau du paquetage et l’évaluation de sa qualité; (ii) l’identification des problèmes de modularité, et (iii) la prise de décisions pour le changement.Dans cette thèse nous proposons ECOO, une approche qui aide la remodularisation. Elle concerne les trois domaines de recherche suivants:- Comprendre les problèmes de dépendance entre paquetages. Nous proposons des visualisations mettant en évidence les dépendances cycliques au niveau des paquetages.- Proposer des dépendances qui devraient être changées. L’approche propose des dépendances à changer pour rendre le système plus modulaire.- Analyser l’impact des changements. L’approche propose une analyse d’impact du changement pour essayer les modifications avant de les appliquer sur le système réel. L’approche présentée dans cette thèse a été validée qualitativement et les résultats ont été pris en compte dans la réingénierie des systèmes analysés. Les résultats obtenus démontrent l’utilité de notre approche. / Software evolves over time with the modification, addition and removal of new classes, methods, functions, dependencies. A consequence is that behavior may not be placed in the right packages and the software modularization is broken. A good organization of classes into identifiable and collaborating packages eases the understanding, maintenance, test and evolution of software systems. We argue that maintainers lack tool support for understanding the concrete organization and for structuring packages within their context. Our claim is that the maintenance of large software modularizations needs approaches that help (i) understanding the structure at package level and assessing its quality; (ii) identifying modularity problems; and (iii) take decisions and verify the impact of these decisions.In this thesis, we propose ECOO, an approach to help reengineers identify and understand structural problems in software architectures and to support the remodularization activity. It concerns the three following research fields:- Understanding package dependency problems. We propose visualizations to highlight cyclic dependencies problems at package level.- Proposing dependencies to be changed for remodularization. The approach proposes dependencies to break to make the system more modular.- Analyzing impact of change. The approach proposes a change impact analysis to try modifications before applying them on the real system.The approaches presented in this thesis have been qualitatively and quantitatively validated and results have been taken into account in the reengineering of analyzed systems. The results we obtained demonstrate the usefulness of our approach.
Identifer | oai:union.ndltd.org:theses.fr/2011LIL10008 |
Date | 17 June 2011 |
Creators | Laval, Jannik |
Contributors | Lille 1, Ducasse, Stéphane, Anquetil, Nicolas |
Source Sets | Dépôt national des thèses électroniques françaises |
Language | English |
Detected Language | French |
Type | Electronic Thesis or Dissertation, Text |
Page generated in 0.0139 seconds