JDiff: A differencing technique and tool for object-oriented programs

Download: DOI.

“JDiff: A differencing technique and tool for object-oriented programs” by Taweesup Apiwattanapong, Alessandro Orso, and Mary Jean Harrold. Automated Software Engineering Journal, vol. 14, Mar. 2007, pp. 3-36.

Abstract

During software evolution, information about changes between different versions of a program is useful for a number of software engineering tasks. For example, configuration-management systems can use change information to assess possible conflicts among updates from different users. For another example, in regression testing, knowledge about which parts of a program are unchanged can help in identifying test cases that need not be rerun. For many of these tasks, a purely syntactic differencing may not provide enough information for the task to be performed effectively. This problem is especially relevant in the case of object-oriented software, for which a syntactic change can have subtle and unforeseen effects. In this paper, we present a technique for comparing object-oriented programs that identifies both differences and correspondences between two versions of a program. The technique is based on a representation that handles object-oriented features and, thus, can capture the behavior of object-oriented programs.We also present JDiff, a tool that implements the technique for Java programs. Finally, we present the results of four empirical studies, performed on many versions of two medium-sized subjects, that show the efficiency and effectiveness of the technique when used on real programs.

Download: DOI.

BibTeX entry:

@article{ApiwattanapongOH2007,
   author = {Taweesup Apiwattanapong and Alessandro Orso and Mary Jean
	Harrold},
   title = {{JD}iff: A differencing technique and tool for object-oriented
	programs},
   journal = {Automated Software Engineering Journal},
   volume = {14},
   pages = {3--36},
   month = mar,
   year = {2007}
}

Back to Publications that use Daikon as a test subject.