Software Reflexion Models: Bridging the Gap Between Source and High-Level Models
Gail C. Murphy, David Notkin, and Kevin Sullivan
In the Proceedings of the Third ACM SIGSOFT Symposium on the Foundations of Software Engineering, October 1995, ACM, New York, NY, p. 18-28.
[PDF Version]
Abstract
Software engineers often use high-level models (for instance, box
and arrow sketches) to reason and communicate about an existing
software system. One problem with high-level models is that they
are almost always inaccurate with respect to the system's source
code. We have developed an approach that helps an engineer use a
high-level model of the structure of an existing software system as
a lens through which to see a model of that system's source code.
In particular, an engineer defines a high-level model and specifies
how the model maps to the source. A tool
then computes a software
reflexion model that shows where the engineer's high-level model
agrees with and where it differs from a model of the source.
The paper provides a formal characterization of reflexion models,
discusses practical aspects of the approach, and relates experiences
of applying the approach and tools to a number of different systems.
The illustrative example used in the paper describes the application
of reflexion models to NetBSD, an implementation of Unix comprised
of 250,000 lines of C code. In only a few hours, an engineer
computed several reflexion models that provided him with a useful,
global overview of the structure of the NetBSD virtual memory
subsystem. The approach has also been applied to aid in the
understanding and experimental reengineering of the Microsoft Excel
spreadsheet
product.
RMTool is a suite of software supporting the computation, display and
interpretation of reflexion models.
Back to Gail Murphy's Selected Publications Page
Last modified: June 28, 1996
Gail Murphy
murphy@cs.ubc.ca