Back to Software Evolution Homepage

The UCSD Software Evolution Lab's Tools Page

Software Evolution Group

Aspect Browser

Daikon Invariant Detector (with MIT/UW)



Icaria/Ponder (Darren Atkinson)

Java 1.1 VM Benchmarks



For several years we have been developing software tools to assist large-scale reengineering of software systems. Many of these tools are now maturing, so we are making them available for download or on-line demos. Like most research software, this software is not exceptionally well documented. Please send us e-mail if you have a specific question.

These tools are described in several papers, most available from our research papers page .

Software from this site is protected by a copyright by the University of California.

Aspect Browser is a browsing and editing tool for assisting the evolution of cross-cutting concerns, sometimes called aspects. The tool is text-based and hence language independent.

Daikon is a tool for analyzing data traces of programs and inferring likely invariants from them. The design and implementation is by Michael Ernst at the University of Washington.

StarTool is a reengineering tool based on Star Diagrams. There are C, Ada, and Tcl versions for it. A star diagram can be built for all variables of a particular type or a single variable, the resulting tree can be trimmed, and branches and leaves can be annotated for future modifications.

Elbereth is a Java reengineering tool, also based on Star diagrams. Since it is written totally in Java, It will run on any system with a Java VM. It was written by Walter Korman, and won Gamelan's "What's Cool" award.

Darren Atkinson's Icaria and Ponder are practical, task-oriented whole-program analysis tools based on his Ph.D. work. Ponder is language independent; Icaria is a C language dependent part of the infrastructure. StarTool was developed in part with these tools.

Bill and Paul's Excellent UCSD Benchmarks for Java are a suite of benchmarks for your Java Virtual Machines. They have been updated to Java 1.1 and are backwards-compatible to Java 1.0; they should still work with the newer JDK's as well. They were obviously written by Bill and Paul.