ABSTRACT

As software systems change over time, it is very difficult to understand and measure the effect of the changes. We would like to be able to describe, numerically, the way that each system increment, or build, is different from its successor and its predecessor. This is a very complex problem in that most modern software systems consist of thousands of program modules, on each of which there may be as many as 20 to 30 distinct metrics collected. For any one build, there may be tens of thousands of metrics collected on a typical large system. Knowing what to measure, how to measure, and when to measure will be a key step in understanding the software evolution process.