Visualization of Object-Oriented Variability Implementations as Cities

Johann Mortara, Philippe Collet, Anne-Marie Dery-Pinna
2021 2021 Working Conference on Software Visualization (VISSOFT)  
Many large software systems are variability-rich, object-oriented, and implemented in a single code base. They then rely on multiple traditional techniques (inheritance, patterns) to realize variability, making these implementations not explicit. This directly hampers the comprehension of variability implementations, especially for newcomers in a project that need, in a short time, to understand the most important parts. In this paper, we propose VariCity, a visualization using the city
more » ... to exhibit zones of interest, being zones of high density of variability implementations. The different forms of variability implementations are first detected through the usage of symmetries in code (e.g., inheritance defines a substitution symmetry between the immutable part of the superclass and the possible changes in its subclasses). VariCity then creates a 3D city representation with buildings being classes while the metrics on the number of symmetries (e.g., the number of overloaded methods, influence the building size, and their color if they are heavily loaded in symmetries). Contrary to the usual packagebased organization in code-related city representations, the city streets are arranged according to the usage relationships between classes. Inheritance is simply represented with hoverable aerial links. Variability-related design patterns are depicted as buildings with specific geometric forms, while some classes specified as entry points can help in shaping the whole city organization. We also report on the evaluation of VariCity on a set of large objectoriented systems, showing that several usage scenarios helping a newcomer to spot critical variability-related zones are covered. Index Terms-variability, software visualization, software cities 10 11 12 See here and here.
doi:10.1109/vissoft52517.2021.00017 fatcat:zo76nuieyfe6phgut2wwegjv3i