MORALE Tool Description


isvis_logo

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:
  1. static analysis of the subject program
  2. instrumentation of the source code to track interesting events
  3. usage of the instrumented system in particular scenarios to generate program event traces
  4. analysis of the event traces using the ISVis graphical views
  5. 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:

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