The Class Blueprint: Visually Supporting the Understanding of Classes

S. Ducasse and M. Lanza. The class blueprint: Visually supporting the understanding of classes. IEEE Transactions on Software Engineering, 31(1):75–90, January 2005. [pdf]

——————–

This article explains the Class Blueprint approach to software visualization. The authors built a platform, Code Crawler, that allows the user to visualize the code in a graphical form. Particularly the authors state that understanding the code structure in case of re-engeneering is one of the thasks that produce an overhead in software maintenance.

Particularly, in object-oriented programming, two main factors are responsible for the cognitive difficulty in understanding the code: the presence of late binding and inheritance. In OOP there is nosimple and top-down call decomposition. Classes are organized in inheritance hierarchies in which at every level behavior can be added, overridden, or extended.

The class blueprint approach separate the code into 5 layers that group methods and attributes. The nodes represent a class’ methods and attributes are colored according to semantic information, e.g., whether a method is abstract, overriding, etc. The nodes vary in size depending on the source code metrics information. A class blueprint contains the following layers: inizialization layer, external interface layer, internal implementation layer, accessor layer and attribute layer. In the Class Blueprint, the position of a node maps the functional role of tha node in the structure of the code.

Starting from this artefact, the authors developed a visual vocabulary of recurrent situations in the code that produce similar visual patterns in terms of node colors and flow structure. They grouped these patterns into four categories: layer-distribution based, semantics-based, call-flow-based and state-visual based.

Although the paper details extensively the method and the visual vocabulary, the experimental verification of how such system can impact on the user’s understanding is completely absent.

Classblueprint

Tags: , ,

Leave a Reply