Reflexion Models

Overview

Tool Support
Eclipse Plugin (NEW)
Stand-alone Version

Additional Information


Overview

Reflexion models are a software system summarization technique developed to aid a software engineer in understanding and reasoning about the structure of large software systems.  Essentially, a reflexion model allows a software developer to view the structure of a system's source through a chosen high-level (often architectural) view.

To find out more about reflexion models, a brief example of the use of the technique is available. For more detail, view a paper written about the technique, or for really in-depth information, try my dissertation.

Tool Support

There are two versions of a Reflexion Model tool available:

  • an Eclipse plug-n for analyzing Java systems, and
  • a stand-alone version (older and not supported) that can be used to analyze systems written in any programming language (assuming you have a means of extracting structural information from the running system or from the source).

Eclipse Plugin (NEW: 16/12/2003)

The update site for the Eclipse plugin is "http://www.cs.ubc.ca/~murphy/jRMTool/eclipse/updates". Use the Eclipse update manager to install the plugin. This plugin can compute reflexion models for Eclipse Java projects. It has been verified to work in Eclipse 2.1.1.

The source for the Eclipse plugin has been released on sourceforge.net .

Stand-alone Version (Older)

The stand-alone RMTool for computing reflexion models depends on four basic inputs:

  • a source model comprising information analyzed from the source of the system of interest,
  • a high-level model comprising information about the desired high-level view of the system,
  • a mapping comprising information about how entities in the source model relate to entities in the desired high-level view of the system, and
  • a software structure description file describing the information captured about entities in the source model.

Source Model Extraction

RMTool supports the computation of reflexion models for many different kinds of systems. Note, however, that RMTool does not include any capability to analyze the source of the system of interest. Instead, programs or scripts  are used to convert information extracted by other tools into the format expected by RMTool. A program (CiaoToRMTool) is provided with the RMTool distribution to convert information extracted by the AT&T set of source analysis tools (for C/C++/Java) into the RMTool format. As the RMTool source model format is simple, it is usually straightforward to write scripts to convert information extracted by your favourite tool. 

(You might also be interested in reading about our lexical source model extract technique which is intended to simplify the extraction of source model information from a variety of source artifacts. E-mail murphy@cs.ubc.ca for more information on this tool).

A beta version of RMTool  (Version 2.0-updated April 9, 2001) is available. A simple graphical interface is provided to compute and interact with reflexion models. Alternatively, reflexion models may be computed using a set of command-line utilities.

To learn more about how to use RMTool, browse the documentation.

Version 2.0 of RMTool is a re-write of the original tools in Java.  To run, RMTool, you must:

  • read and agree to the usage restrictions,
  • have access to a Java VM with the JDK1.2 libraries,
  • download, read and agree to the licensing restrictions of the AT&T graphviz and grappa packages,
  • download  and agree to the licensing restrictions/license of a java regular expression package on which RMTool relies.

To download the stand-alone RMTool, follow this link.

Documentation

Additional Information

For more information about reflexion models and related information, try:

Or send e-mail to Gail Murphy (murphy@cs.ubc.ca).


Last updated on: December 17, 2003