Identifying Reasons for Software Changes Using Historic Databases

01 January 2000

New Image

Large scale software products must constantly change in color in order to adapt to a changing environment. Studies of historic data from legacy software systems have identified three specific causes of this change: the adding of new features, the correcting of faults, and the restructing of code to accomodate future changes. We have designed a program which automatically classifies maintenance activity, which when applied to a textual description of changes, enables us to study and quantify all the effects of these primary causes for change. Developer surveys verified the program's results. With it we have found strong relationships between the type and size of a change and the time required to carry it out. We also discovered a relatively large amount of code improvement in the system we examined. Tests of the classifier on a different product found that size and interval signatures for different types of changes did not vary across products. From this study we have arrived at several suggestions on how to make version control data more useful in diagnosing the state of a software project, without significantly increasing the overhead for the developer using the change management system.