Title :
Using origin analysis to detect merging and splitting of source code entities
Author :
Godfrey, Michael W. ; Zou, Lijie
Author_Institution :
Sch. of Comput. Sci., Waterloo Univ., Ont., Canada
Abstract :
Merging and splitting source code entities is a common activity during the lifespan of a software system; as developers rethink the essential structure of a system or plan for a new evolutionary direction, so must they be able to reorganize the design artifacts at various abstraction levels as seems appropriate. However, while the raw effects of such changes may be plainly evident in the new artifacts, the original context of the design changes is often lost. That is, it may be obvious which characters of which files have changed, but it may not be obvious where or why moving, renaming, merging, and/or splitting of design elements has occurred. In this paper, we discuss how we have extended origin analysis (Q. Tu et al., 2002), (M.W. Godfrey et al., 2002) to aid in the detection of merging and splitting of files and functions in procedural code; in particular, we show how reasoning about how call relationships have changed can aid a developer in locating where merges and splits have occurred, thereby helping to recover some information about the context of the design change. We also describe a case study of these techniques (as implemented in the Beagle tool) using the PostgreSQL database system as the subject.
Keywords :
SQL; merging; reasoning about programs; reverse engineering; software development management; software maintenance; systems re-engineering; PostgreSQL database system; merging; origin analysis; software system; source code entity; Database systems; Documentation; Environmental management; History; Information analysis; Merging; Reverse engineering; Software maintenance; Software systems; Software tools; Index Terms- Software evolution; and reengineering.; origin analysis; restructuring; reverse engineering;
Journal_Title :
Software Engineering, IEEE Transactions on
DOI :
10.1109/TSE.2005.28