Manipulating and Documenting Sofkware Structures
Using
SHriMP Views?
Margaret-Anne D. Storey
School of Computing Science
Simon Fraser University
Burnaby BC
Canada V5A lS6
mstorey@csr.uvic.ca
Abstract
An effective approach to program understanding in-
volves browsing, exploring, and creating views that
document software structures at different levels of ab-
straction. While exploring the myriad of relationships
in a multi-million line legacy system, one can easily
loose context. One approach to alleviate this problem
is to visualize these structures using jsheye techniques.
This paper introduces Simple Hierarchical Multi-
Perspective views (SHriMPs). The SHriMP visualiza-
tion technique has been incorporated into the Rigi re-
verse engineering system. This greatly enhances Rigi’s
capabilities for documenting design patterns and archi-
tectural diagrams that span multiple levels of abstrac-
tion. The applicability and usefulness of SHriMPs is
illustrated with selected program understanding tasks.
Keywords: program understanding, reverse engi-
neering, re-engineering, software visualization, fisheye
views.
1 Introduction
K’lutter and confusion are failures of design, not
attributes of information.”
Edward R. Tufte, Envisioning Information.
‘This work was supported in part by the British
Columbia Advanced Systems Institute, the IBM Software
Solutions Toronto Laboratory Centre for Advanced Stud-
ies, the IRIS Federal Centres of Excellence, the Natural
Sciences and Engineering Research Council of Canada, the
Science Council of British Columbia, the University of Vic-
toria and Simon Fraser University.
Hausi A. Miiller
Department of Computer Science
University of Victoria,
Victoria, BC
Canada V8W 3P6
liausi@csr.uvic.ca
Effectively presenting large amounts of information
in any form is challenging. Althougjh the computer
screen is relatively small, it is easy to fill it with so
much information and detail that it completely over-
whelms the user. It is not the amount of informa-
tion that is relevant, but rather how it is displayed[l4].
Careful consideration must therefore be given on how
to present information so that it can be used effec-
tively. A crucial step in this process, is determining
the purpose of t,he visualization. This problem is par-
ticularly acute in the process of understanding soft-
ware systems using reverse engineering tools.
The visualization and user interface communities
have suggested many approaches for visualizing large
information spaces. Approaches based on the fisheye
lens paradigm seem well suited to the task of visual-
izing software. These techniques allow users to create
views that span. different levels of abstractions. For
example, a high-level architectural diagram might in-
clude detailed information at strategic points to high-
light pertinent .information or to illustrate a bottle-
neck. Architectural styles[6], or design patterns[5] of-
ten include entities at various levels of detail. How-
ever, usually information spaces of this kind are mod-
eled as graphs a.nd displayed using a set of tiled win-
dows. It is easy to loose context because the relation-
ships among windows are typically implicit.
This paper describes techniques for visualizing soft-
ware structures modeled as nested gra:phs, using fish-
eye views. Nested graphs are used for visualizing the
structure and organization of the software. Nodes rep-
resent artifacts in the software, such ;as functions or
data variables. Arcs represent dependencies among
these artifacts, :such as call dependencies. Compos-
ite nodes correslpond to subsystems in the software.
275
1063-6773/95 $04.00 0 1995 IEEE
Proceedings of the International Conference on Software Maintenance (ICSM '95)
1063-6773 /95 $10.00 © 1995 IEEE