EVolve: an Extensible Software Visualization FrameworkLast updated: December 24, 2003 |
EVolve is an extensible framework for visualizing the characteristics and behaviour of object-oriented programs. The architecture of EVolve is designed to facilitate the addition of new data sources as well as new visualization techniques. EVolve allows data providers to examine a new data source immediately using a wide range of visualizations, and allows visualization providers to test a new visualization technique on a variety of existing sources.
The EVolve framework consists of three major parts:
- the core EVolve platform that connects the data source and the visualizations, and supports the communication among the visualizations. Further more, the EVolve platform provides a set of data manipulating functionalities to help end users navigating the data.
- the data protocol that uses a flexible method to represent different kinds of trace data. Through the data protocol, the EVolve platform can read trace data from various types of data sources. The data protocol of EVolve is not only flexible but also efficient so that end users can manipulate large amount of data.
- the visualization protocol that handles the communication between the platform and the visualizations. Because there is no direct interaction among the visualizations, adding new visualizations to EVolve won't require updating the existing ones. With the visualization protocol, EVolve can provide data manipulating functionalities while still keeping the visualizations independent.
EVolve can be used as a stand-alone tool to visualize program characteristics and behaviour, as well as a framework to develop new visualization techniques.
Soot is free software and is licensed under the GNU Lesser General Public License.
Information about EVolve 1.2 is available as Sable Technical Report 2002-12.
> Full Text: Information about EVolve 1.1 is available as Sable Technical Report 2002-6.
> Full Text:
Qin Wang's Masters Thesis about EVolve 1.1 is available in electronic format.
> Thesis:
Visit the EVolve tutorial page for step-by-step toturials.
Wei Wang's Project Report about EVolve 1.2.4 is available in electronic format.
> Project Report:
You can browse the current javadoc API documentation for latest stable and unstable releases of EVolve on-line:
The latest stable release of EVolve is version 1.2.2. The latest development release of EVolve is version 1.2.4. The original version of EVolve is 1.1.0.
Unstable Version 1.2.4 This is the complete release of EVolve, and bundles the source plus pre-compiled binaries.
This is a development release of EVolve and is still considered unstable.EVolve-1.2.4.jar
(1 MB)Binary release of EVolve as an executable .jar file. This release only contains precompiled classes.
This is a development release of EVolve and is still considered unstable.EVolve-1.2.4-bin.jar
(503 KB)Source release of EVolve. This release only contains the source code.
This is a development release of EVolve and is still considered unstable.EVolve-1.2.4-src.jar
(277 KB)Current Version 1.2.2 This is the complete release of EVolve, and bundles the source plus pre-compiled binaries. EVolve-1.2.2.jar
(420 KB)Binary release of EVolve as an executable .jar file. This release only contains precompiled classes. EVolve-1.2.2-bin.jar
(248 KB)Source release of EVolve. This release only contains the source code. EVolve-1.2.2-src.jar
(166 KB)Previous Versions 1.2.1 This is the complete release of EVolve, and bundles the source plus pre-compiled binaries.
We strongly recommend using release 1.2.2 instead of this release.EVolve-1.2.1.jar
(615 KB)Binary release of EVolve as an executable .jar file. This release only contains precompiled classes.
We strongly recommend using release 1.2.2 instead of this release.EVolve-1.2.1-bin.jar
(333 KB)Source release of EVolve. This release only contains the source code.
We strongly recommend using release 1.2.2 instead of this release.EVolve-1.2.1-src.jar
(146 KB)1.2.0 This is the complete release of EVolve, and bundles the source plus pre-compiled binaries.
We strongly recommend using release 1.2.2 instead of this release.EVolve-1.2.0.jar
(614 KB)Binary release of EVolve as an executable .jar file. This release only contains precompiled classes.
We strongly recommend using release 1.2.2 instead of this release.EVolve-1.2.0-bin.jar
(332 KB)Source release of EVolve. This release only contains the source code.
We strongly recommend using release 1.2.2 instead of this release.EVolve-1.2.0-src.jar
(277 KB)1.1.0 This is the original version of EVolve.
The release bundles the source plus pre-compiled binaries, along with a sample data source.EVolve-1.1.0.jar
(390 KB)JVMPI Agent This is JVMPI agent used by the sample data source in EVolve. evolve_agent.jar
(61 KB)Sample Execution Trace This is a sample execution trace for _213_javac, from the SPECjvm98 suite (using size 10). javac_10.dat
(6 MB)
EVolve 1.2.3 to 1.2.4
- New Features
- Data source can be removed
- Adding data source and load trace file can be done by one click
- Configuration box now has sort options
- Visualization windows can be selected under Windows menu
- Improvements
- Menu items of Predefined Visualization are re-organized
- Configuration files are now all in XML format
- X-axis and Y-axis can be scaled and restored separately
- Bug fixes
EVolve 1.2.2 to 1.2.3
- New Features
- Enhanced Phase Detector: phases can be manually added/removed
- Phase Trigger: phases can be triggered by entities
- Phase Set: able to find phases according to selected entity set
- Progress control: visualization process can be stopped/paused/resumed
- Visualization can be scaled to fit the window or restored to its original size
- Improvements
- Make selection is redesigned
- Regular expressions can be used to refine selections
- Bug fixes
EVolve 1.2.1 to 1.2.2
- New Features
- Phase detector: Naive phase detector for hotspot visualization (still in development)
- Cloning: A visualization can be duplicated by cloning
- Improvements
- Added support for multiple data sources / data traces
- Added support for cloning, renaming and changing time frame in the filter dialog box
- Added the possibility of choosing selection options when making a selection
- GUI enhancements
- Bug fixes
EVolve 1.2.0 to 1.2.1
- Bugfix release
EVolve 1.1.0 to 1.2.0
- New Features
- Batch builder/runner: enables users to generate visualizations for a multiple of data sources
- Predefined visualization: users can save/load/choose a visualzation configuration and apply it to different data sources
- Ability to unify axes of two visualizations if they have same target type
- Synchronized Overlapping: enables users to overlap several visualizations generated from the same data source
- Enhanced status bar: when the
shift
key is down, only the name of coloured entities is displayed on the status bar- Magnifier: when the
control
key is held down while mouse is moving, a floating magnifier window appears and the displayed area follows the position of the mouse pointer- The orientation of a visualization can be changed
- New Visualizations
- Miss Prediction Visualization: enables users to the effect of a predictor (currently, only the inline cache predictor is available)
- Dotplot Visualization
- Stack Hotspot Visualization
- Stack Visualization
- Thread Hotspot Visualization
- Improvements
- Refactored Code
- Merged Amount Hotspot & Coordinate Hotspot
- Removed Vertical Barchart (EVolve now supports changing the orientation of a visualization)
The binary release of EVolve can allows EVolve to be run directly from the .jar file. Simply type:
java -jar EVolve-x.y.z-bin.jar
where x.y.z vary depending on the version of EVolve you have downloaded (e.g. EVolve-1.2.0-bin.jar)
Alternatively, the same .jar file can be added to your CLASSPATH, in which case EVolve can be started by issuing:
java EVolve.Main
Note that EVolve requires at least JDK 1.4 (Java 2), as it uses several new features.
To install the source release of EVolve, you must compile it first. Extract the contents of the EVolve-x.y.z-src.jar file (where x.y.z represent the version of EVolve that you have downloaded, e.g.
EVolve-1.2.0-src.jar
) into a directory of your choice, which we will call EVOLVE_HOME. From inside that directory, run Ant to compile EVolve. This is usually done by typing
ant
Add EVOLVE_HOME/classes (EVOLVE_HOME\classes on Windows) to your CLASSPATH. To start EVolve, simply run
java EVolve.Main
Note that EVolve requires at least JDK 1.4 (Java 2), as it uses several new features.
To install the source release of EVolve, simpy extract the contents of the EVolve-x.y.z.jar file (where x.y.z represent the version of EVolve that you have downloaded, e.g.
EVolve-1.2.0.jar
) into a directory of your choice, which we will call EVOLVE_HOME.Add EVOLVE_HOME/classes (EVOLVE_HOME\classes on Windows) to your CLASSPATH. To start EVolve, simply run
java EVolve.Main
Note that EVolve requires at least JDK 1.4 (Java 2), as it uses several new features.
A number of other projects at Sable are related to visualization, softare understanding or execution traces.
STEP is a system for encoding and compressing program traces in a flexible format.
More information is available at: http://www.sable.mcgill.ca/step/
The Dynamic Metrics project aims at developing new and meaningful dynamic software metrics for Java programs.
More information is available at: http://www.sable.mcgill.ca/metrics/