DocumentCode :
1232155
Title :
The class blueprint: visually supporting the understanding of glasses
Author :
Ducasse, Stéphane ; Lanza, Michele
Author_Institution :
Software Composition Group, Bern Univ., Switzerland
Volume :
31
Issue :
1
fYear :
2005
Firstpage :
75
Lastpage :
90
Abstract :
Understanding source code is an important task in the maintenance of software systems. Legacy systems are not only limited to procedural languages, but are also written in object-oriented languages. In such a context, understanding classes is a key activity as they are the cornerstone of the object-oriented paradigm and the primary abstraction from which applications are built. Such an understanding is however difficult to obtain because of reasons such as the presence of late binding and inheritance. A first level of class understanding consists of the understanding of its overall structure, the control flow among its methods, and the accesses on its attributes. We propose a novel visualization of classes called class blueprint that is based on a semantically enriched visualization of the internal structure of classes. This visualization allows a software engineer to build a first mental model of a class that he validates via opportunistic code-reading. Furthermore, we have identified visual patterns that represent recurrent situations and as such convey additional, information to the viewer. The contributions of this article are the class blueprint, a novel visualization of the internal structure of classes, the identification of visual patterns, and the definition of a vocabulary based on these visual patterns. We have performed several case studies of which one is presented in depth, and validated the usefulness of the approach in a controlled experiment.
Keywords :
Smalltalk; formal verification; inheritance; object-oriented programming; program visualisation; reverse engineering; software maintenance; vocabulary; Smalltalk; class blueprint; class understanding; late binding; legacy systems; object-oriented languages; opportunistic code-reading; procedural languages; reverse engineering; software system maintenance; software visualization; visual patterns; Application software; Cognitive science; Phase measurement; Programming profession; Reverse engineering; Software maintenance; Software measurement; Software systems; Visualization; Vocabulary; Index Terms- Object-oriented programming; reverse engineering; smalltalk.; software visualization; visual patterns;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/TSE.2005.14
Filename :
1392721
Link To Document :
بازگشت