SpyWare Demo


A demo of SpyWare is available online. It features limited functionality compared to the desktop version, but the desktop version is still under development, and not yet available for download. More information on SpyWare can be found here.

You can access the demo here.

SpyWare Web Repository


You can access the SpyWare repository to upload the data files the SpyWare plugin has generated. You can download the plugin for Squeak on the SpyWare main page.

You can access the repository here.

The Change Factory


The Change Factory is a tool we are implemeting which allows one to define a program transformation by first recording a concrete example of it. Once an example is recorded, the Change Factory's UI allows one to generalize the example to define the general-case transformation. Videos of the change factory are available below. The steps to use the change factory are:

  1. Record concrete changes (1 minute video). The video shows how changes are recorded while the programmer modifies the system, and what is the structure of the changes (a composite change has several atomic changes). A second video (2 minutes video) shows the changes recorded for the logging transformation defined below.
  2. Generalize the concrete changes to a transformation (30 second video). The video shows the generalization process and the change factory's interface (change tree structure on the top-left panel, change-specific edition panel on the top-right, before and after panels at the bottom). It shows that the tool infers roles for entities modified by the changes (parameter, constant or variable).
  3. Edit the transformation (1 minute video). Shows how one uses the change factory to edit a simple transformation. In the example it is an informal logging aspect, defined by the insertion of one statement in a method. The user first changes how the name of the string litteral is computed, then specifies how one inserts such a statement in any method.
  4. Test the transformation (10 second video). Shows how the change factory allows one to compare the edited transformation with the original one on an example.
  5. Transformation composition and application (1 minute video). Shows how to extent the logging aspect with a conditional to have it behave differently depending on the number of arguments of the method it is applied to. The second half of the video shows how one uses the change factory from the code editor.