Visualization of Object-Oriented Software in a City Metaphor: Comprehending the Implemented Variability and its Technical Debt
Résumé
While many large-scale software systems intensively implement variability to reuse software and speed up development, they often do not document it, hampering its comprehension. This is especially the case for variability-rich object-oriented (OO) systems that heavily rely on existing OO mechanisms (i.e., inheritance, overloading and some patterns) to implement it in a single codebase. With no traceability information, the variability is buried in the codebase, hampering its identification, analysis, and understanding. While variability management becomes increasingly difficult over the system evolution, the implementation mechanisms also bring additional complexity to the codebase, which eventually leads to technical debt, threatening even more the software quality. In this article, we report on the design and evaluation of an extensible visualization, VariCity, that exhibits zones of high density of OO variability implementations. It relies on the city metaphor to represent the classes of the system as buildings whose dimensions are used to show variability metrics inherent to the implementation classes. They are linked together through streets depicting usage relationships and grouping in neighborhoods classes using each other. The extensibility of VariCity is demonstrated with VariMetrics, which highlights OO quality metrics on the buildings, revealing quality-critical classes concentrating variability implementations. We evaluate the visualization capacity to reveal zones concentrating variability implementations and being quality-critical by applying it to multiple variabilityintensive open source software systems. We also report on a controlled experiment comparing the gain brought by the visualization to the use of an IDE.
Origine | Fichiers produits par l'(les) auteur(s) |
---|