JDiff: A differencing technique and tool for object-oriented programs
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 exa...
Saved in:
Published in | Automated software engineering Vol. 14; no. 1; pp. 3 - 36 |
---|---|
Main Authors | , , |
Format | Journal Article |
Language | English |
Published |
Dordrecht
Springer Nature B.V
01.03.2007
|
Subjects | |
Online Access | Get full text |
ISSN | 0928-8910 1573-7535 |
DOI | 10.1007/s10515-006-0002-0 |
Cover
Summary: | 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. |
---|---|
Bibliography: | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 ObjectType-Article-2 ObjectType-Feature-1 content type line 23 |
ISSN: | 0928-8910 1573-7535 |
DOI: | 10.1007/s10515-006-0002-0 |