MORALE Tool Description
Name:
Interaction Scenario Visualizer (ISVis)
Purpose:
The purpose of this system is to support the browsing and analysis of execution
scenarios, derived from actual program executions. It is useful during
software engineering tasks requiring a behavioral understanding of programs,
such as design recovery, architecture localization, design/implementation
validation, and reengineering. The key features of ISVis are its use of
visualization techniques to depict the large amounts of information available
to a user, and the notion of recurring scenarios, or "interaction patterns",
as abstractions which help bridge the gap between low-level event traces
and high-level design models. Users of the system might be software designers,
programmers, testers, or maintainers.
Status:
Version 1.0 of ISVis is still available.
Version 1.1 includes some bug fixes, the ability to generate Balboa traces,
and the ability to interface with an ACMEServer and export an ACME description
of the extracted architecture. Several different download configurations
are available depending on the user's desires:
Documentation:
ISVis
User's Guide
ISVis
Product Brochure
ISVis Movie (UNIX Version) (24Mb gzipped) [UNIX
users need Xanim]
ISVis Movie (PC Version) (24Mb zipped)
[PC users need Quicktime]
ISVis Movie (MAC Version) (24 Mb sea.bin)
Several papers discussing ISVis and its related technologies:
Detailed Description:
The process of using ISVis requires several phases:
-
static analysis of the subject program
-
instrumentation of the source code to track interesting events
-
usage of the instrumented system in particular scenarios to generate program
event traces
-
analysis of the event traces using the ISVis graphical views
-
recording of models created by the user
While this system is intended to handle object-oriented (OO) programs,
its architecture allows for "global" functions, meaning that a completely
procedural program can be analyzed as well. The interaction events being
analyzed include messages (function invocation/return), and can be extended
to object creation/destruction and data read/write.
ISVis is most useful for two related tasks:
-
Identifying interaction patterns in program event traces can help an analyst
construct design-level behavioral models from the low-level behavior of
a system. This is useful during reverse engineering tasks, especially as
support for reengineering legacy systems.
-
Visualizations of the abstract behavior can be compared with design level
information, such as execution scenarios, interaction diagrams, or architectural
models, to help validate the design/implementation and to identify areas
which need reengineering.
For example, a user can define execution scenarios that (s)he expects to
occur during a particular program execution and query ISVis to determine
the existence and locations of that scenario or others closely related.
Design-level models can be specified and modified based on entities in
the program, and the implementation's behavior examined with respect to
those models. A user can browse execution scenarios and either visually
identify or use the tool to automatically identify repeated sequences of
interactions, or interaction patterns. These recurring scenarios can be
understood and then used as abstractions to build higher-level scenarios.
As such, users can develop and validate design-level behavioral models,
validate the implementation with respect to existing models, and/or uncover
inefficiencies in the existing design.
This screen
snapshot shows the main ISVis view in the background and a Scenario
View in the foreground. The main view includes lists and information about
the actors and interactions being analyzed, including components defined
by the user, scenarios read in as traces, and scenarios created by the
user. The Scenario View includes a global Information Mural[2] of a particular
scenario (used for navigation), and a focus area where individual interactions
and actors can be manipulated.
ISVis also uses XEmacs to view the source code of the system, which
is an important supplement to the scenarios during the understanding process.
Entities in the source code can be grouped into architectural components
as the analyst uncovers common scenarios and functionality, and the system's
behavior can then be viewed based on such architectural divisions.
Operating System Dependencies:
SUN Solaris 2.5 (for generating static information database with CC compiler)
Platform Dependencies:
None.
COTS Dependencies:
RogueWave tools.h++, Motif 1.2, and X11R4 or higher are required to compile.
All come bundled with the Solaris 2.5 release and the Solaris C++ compiler.
Other Dependencies:
The subject program being analyzed using ISVis must be compiled using the
Solaris CC compiler, with the flag to generate source browser information
set. A Perl interpreter must be available to read static program information
and perform program instrumentation. ACMEServer must be present to generate
ACME output. Dataexchange and PBIO must be available for connection to
an ACMEServer.
Point of Contact:
morale-support@cc.gatech.edu