Understanding the use of inheritance with visual patterns

The goal of this work is to visualize inheritance in object-oriented programs to help its comprehension. We propose a single, compact view of all class hierarchies at once using a custom Sunburst layout. It enables to quickly discover interesting facts across classes while preserving the essential relationship between parent and children classes. We explain how standard inheritance metrics are mapped into our visualization. Additionally, we define a new metric characterizing similar children classes. Using these metrics and the proposed layout, a set of common visual patterns is derived. These patterns allow the programmer to quickly understand how inheritance is used and provide answers to some essential questions when performing program comprehension tasks. Our approach is evaluated through a case study that involves examples from large programs, demonstrating its scalability.

[1]  Stéphane Ducasse,et al.  Polymetric Views - A Lightweight Visual Approach to Reverse Engineering , 2003, IEEE Trans. Software Eng..

[2]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[3]  S. Diehl,et al.  Software visualization , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[4]  Jarke J. van Wijk,et al.  Visual Realism for the Visualization of Software Metrics , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[5]  Oscar Nierstrasz,et al.  Discovering unanticipated dependency schemas in class hierarchies , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[6]  Kim Mens,et al.  Vrije Universiteit Brussel Faculteit Wetenschappen Reuse Contracts: Managing the Evolution of Reusable Assets Reuse Contracts: Managing the Evolution of Reusable Assets , 2022 .

[7]  Malcolm Munro,et al.  Virtual but visible software , 2000, 2000 IEEE Conference on Information Visualization. An International Conference on Computer Visualization and Graphics.

[8]  Petru Florin Mihancea Towards a Client Driven Characterization of Class Hierarchies , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[9]  Hong Yul Yang,et al.  A Solar System Metaphor for 3D Visualisation of Object Oriented Software Metrics , 2004, InVis.au.

[10]  Ben Shneiderman,et al.  Tree-maps: a space-filling approach to the visualization of hierarchical information structures , 1991, Proceeding Visualization '91.

[11]  J. Stasko,et al.  Focus+context display and navigation techniques for enhancing radial, space-filling hierarchy visualizations , 2000, IEEE Symposium on Information Visualization 2000. INFOVIS 2000. Proceedings.

[12]  Michael Balzer,et al.  Voronoi treemaps for the visualization of software metrics , 2005, SoftVis '05.

[13]  James T. Enns,et al.  Large Datasets at a Glance: Combining Textures and Colors in Scientific Visualization , 1999, IEEE Trans. Vis. Comput. Graph..

[14]  Michel R. V. Chaudron,et al.  Supporting task-oriented modeling using interactive UML views , 2007, J. Vis. Lang. Comput..

[15]  Ewan D. Tempero,et al.  Explaining inheritance: a code reusability perspective , 1996, SIGCSE '96.

[16]  Pierre Poulin,et al.  Visualization-based analysis of quality for large-scale software systems , 2005, ASE.

[17]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.