SpyWare


SpyWare is the research prototype I implement for my Ph.D. . My Ph.D. is about change-based software evolution, i.e. modelling the evolution of software by the changes it went through rather than by a set of versions. To make an analogy, version-based softare evolution views the history of software as a photo album, while change-based software evolution views it as a movie.


One session of work viewed with SpyWare

There are two versions of SpyWare: the IDE plugin which records the evolutionary information (the spy), and the data analysis platform itself. At this time of writing, only the plugin is available for downloading.

However, you can try the web-based demo of SpyWare, to get a glimpse of the functionality of SpyWare.

The SpyWare Plugin


Download the SpyWare plugin, for Squeak 3.9. A VisualWorks version will be released in the coming weeks, and an Eclipse version is being worked on..


The SpyWare plugin monitors the very fine-grained evolution of a program by monitoring the developer's actions in the IDE (hence the name "SpyWare"). Traditional approaches analyse evolution by using CVS versions, resulting in a much less precise analysis. Although the name might scare you, notice that SpyWare will always ask you before sending data back to me, and will never attempt to steal your credit card number ;-).

If you are a Squeak 3.9 user, you can install the IDE plugin, so that I can collect real user data and validate my approach. The plugin is very lightweight (6 classes, and a few extension methods), and will not affect the way you code. SpyWare just asks you if you wish to send data each time you save your image. Thanks for your cooperation!



The plugin's only window, triggered when you quit

The SpyWare Platform


The SpyWare platform is not ready for release yet. When it will be, a pre-made image and an installable package will be available. In the meantime, here is a list of features implemented by SpyWare:

  • Metrics, reports and exploration of systems monitored.
  • Several visualizations of change-based data.
  • Accurate diffs visualization between method.
  • Version generation and browsing.
  • Refactoring record.
  • Import and export of change-based data.

Screen captures


The following images show some tools built on top of SpyWare:




SpyWare visualizing a session's events




SpyWare visualizing several sessions




The change matrix of a project




Two versions of a method

Papers about SpyWare and Change-based Evolution


For get more information about SpyWare, you can read the following articles: