The VariCity ecosystem: City visualization of object-oriented variability in Java and TypeScript
Abstract
In object-oriented variability-rich software systems, the implemented variability often relies on traditional mechanisms (i.e., inheritance, overloading, and design patterns). It is then not well-documented and buried in a single codebase, hampering its comprehension and maintenance. VariCity helps developers understand the implemented variability in Java and TypeScript using a 3D city metaphor in which classes are buildings shaped by the occurrences of variability implementations, while usage relationships form the city streets. Extensions of VariCity support IDE integration with navigation and spot zones with variability debt through quality metrics mapped on the city buildings.