Deam: Comprehensive Study of the Predictive Accuracy of Dynamic Impact Analysis

The objective of the Deam toolkit is to provide a tool support for evaluating dynamic impact analysis techniques, focusing on the accuracy of predictive analysis. We name the toolkit by one of the core components Differential Execution Analysis for Method level impact computation or, in short, DEAM.


The main functionality of Deam is to provide a large number of changed versions of a program and, for each change between two versions, the ground-truth impact set that can be used to measure the accuracy of the impact set for that change produced by the analysis technique under study. The built-in dynamic impact analysis to be evaluated is PathImpact and Execute-After-Sequences (EAS), which together represent the most cost-effective predictive dynamic impact analysis up to the date of Deam development and our study using Deam.

Deam supports the accuracy study using two major categories of changes, changes that are randomly generated throughout the entire program, and changes that are extracted from open-source project repositories. While the random-change and repository-change studies share many facilities in Deam, they are different from each other as they deal with different source of changed program versions. Accordingly, Deam includes separate components each dealing with one of these types of studies.

The implementation of Deam reused a few modules of SensA (for injecting random changes) and Diver (for the implementation of PathImpact and EAS). Both tools are further dependent on our data-flow analysis and instrumentation library DUA-forensics, which is based on the Soot byte-code analysis and optimization framework.

Deam and all its library dependencies can be downloaded from this page (see below).

How to Use Deam

Downloads of Deam

Generated on 3 Dec 2014 for Deam by  doxygen 1.6.1