In a software development cycle, programs go through many iterations. Identifying and
understanding program changes is a tedious but necessary task for programmers, especially when
software is developed in a collaborative environment. Existing tools used by the programmers
either lack in finding the structural differences, or report the differences as atomic changes, such as
updates of individual syntax tree nodes.
Programmers frequently use program restructuring techniques, such as refactorings that are
composed of several individual atomic changes. Current version differencing tools omit these
high-level changes, reporting just the set of individual atomic changes. When a large number of
refactorings are performed, the number of reported atomic changes is very large. As a result, it will
be very difficult to understand the program differences.
This problem can be addressed by reporting the program differences as composite changes, thereby
saving programmers the effort of navigating through the individual atomic changes. This thesis
proposes a methodology to explore the atomic changes reported by existing version differencing
tools to infer composite changes. First, we will illustrate the different approaches that can be used
for representing object language program differences using a variation representation. Next we will
present the process of composite change inference from the structured representation of atomic
changes. This process describes patterns that specify the expected structure of an expression
corresponding to each composite change that has to be inferred. The information in patterns is then
used to design the change inference algorithm. The composite changes inferred from a given
expression are annotated in the expression, allowing the changes to be reported as desired. / Graduation date: 2012
Identifer | oai:union.ndltd.org:ORGSU/oai:ir.library.oregonstate.edu:1957/26883 |
Date | 13 December 2011 |
Creators | Chabra, Aarti |
Contributors | Erwig, Martin |
Source Sets | Oregon State University |
Language | en_US |
Detected Language | English |
Type | Thesis/Dissertation |
Page generated in 0.0018 seconds