Software Visualization....

Mark Wai mwai at
Wed Oct 21 22:30:49 UTC 1998

Warning:  Long message....

Dwight -

Maybe you have already seen it or know about it.  But never mind I repeat here.

Since version 4.0, VisualAge has a new add on tool (free of charge) called
'Visualization Tools' that I believe people are rarely use or even know
about it.  Anyway,  VT provides three basic tools for object visualization
within VAST environment.

As quoted from the manual (in case the reader do not have access to VAST

1)  Object Visualizer
The Object Visualizer is a tool that enables you to analyze object activity
and interaction. With this tool, you can visualize objects in your
application, which enables you to do the following:

o See how many instances of a class exist at any time during application
o Watch a visual representation of message traffic between objects
o Identify which objects are busiest, and which are most idle
o Determine which clusters of objects are closely related to one another,
based on the amount of message traffic between them.

These tools can help you understand your application in order to correct
problems or improve
performance. By analyzing the message traffic in your application, you can
identify potential
trouble spots or bottlenecks.  The Object Visualizer provides two views that
you can use to visually analyze your application performance:

o The main Object Visualizer  window is  a visual representation of object
instances. For each
visualized class, the Object Visualizer displays an icon representing each
instance of that
class. This view also provides several indicators you can use to track the
level of message
traffic between the instances.

o The Cluster View  is  a dynamic visual representation of the relationships
between objects.
The Cluster View measures the level of interaction between objects, visually
arranging the
objects to show which objects are closely related (based upon the amount of
message traffic
between them). You can use the Cluster View to analyze either classes or

2) Widget Scope

A tool that reveals objects "behind the scenes" of an interactive Smalltalk
application.  A user simply clicks anywhere on the screen, and the Widget
Scope lists the widget objects that produce that part of the display, as
well as other objects that implement the function provided by the
application.  Widget scoping in onjunction with visualizing and snooping
(pages 3 and 19), constitutes an extremely powerful, yet practical and
convenient, means of "getting to the bottom" of behavior of unfamiliar
applications and frameworks.
Without these tools, a programmer trying to gain an understanding of how an
application works (to fix it,  to extend it,  or to reuse parts of it)  is
faced with roundabout schemes involving searching for classes by pattern
matching on their names, guessing at how to launch an application, and
trying to get a debugger to open at opportune times.

3)  and The Snoope

The Snooper is  a powerful tool that provides a hierarchical textual view of
a hierarchy of
objects. Individual objects discovered using the Snooper may then be added
directly into the
views provided by the Object Visualizer (page 3).  The Snooper also includes
a set of buttons that provide a simple and direct means for opening other
tools of the IBM Smalltalk environment, such as visualizers, browsers, and
inspectors, on objects of interest. In addition, the Snooper provides a code
evaluation facility, a workspace, object searching, and limited views of its
own.  The Snooper can be used in combination with the other tools of the
environment to provide a powerful facility for investigating object
structures and quickly gaining an understanding of program behavior.


> My primary
>interest is in capturing and presenting dynamic code (and data) behavior
>in a clean, efficient manner.

I don't know whether VA's Visualization tool is what you consider clean and
efficient but certainly worth to take a look, based on all the features that
it provides.

>As a zero-th approximation of what I am
>initially shooting for, take a look at "Bridging the Gulf Between Code
>and Behavior in Programming" by Henry Lieberman and Christopher Fry,
>which describes the ZStep 94 debugger (for Macintosh Common Lisp) - see: 

I took a quick peek at ZStep.  To be honest, I don't see anything that is
different or new (in terms of ideas, concepts and implementation) from
standard ST debugger.  I probably missed something and maybe I should read
more carefully.

Disclaimer:  I don't work for IBM or sale VAST
Mark Wai
Wator Innovision
mailto: mwai at or:[ mwai at ] 

More information about the Squeak-dev mailing list