2004 · 126 citations · 16 references
ComputingComputer ScienceAlgorithmsProgramming LanguagesSoftware EngineeringAbstract Syntax TreesData-flow AnalysisObject-oriented AnalysisObject-oriented DesignObject-oriented ProgrammingType SystemsDiff AlgorithmsDifference ComputationDifferencingObject-oriented ArchitectureObjects
During software evolution, information about changes between different versions of a program is useful for a number of software engineering tasks. 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, and empirical results that show the efficiency and effectiveness of the technique on a real program. 1.
16
AnO(ND) difference algorithm and its variations
Eugene W. Myers · Algorithmica · 1986 · 899 citations
A state-of-the-art survey on software merging
Tom Mens · IEEE Transactions on Software Engineering · 2002 · 529 citations
Regression test selection for Java software
Mary Jean Harrold, James A. Jones, Tongyu Li et al. · 2001 · 305 citations