The evolution of a software system can be studied in terms of how various properties as reflected by software metrics change over time. We build a release history model by analysing the compiled class files. Our release history model captures metadata and 58 different metrics at a class level. We also build a class dependency graph for each release in the evolution history. The data selection and metric extraction method that we use ensures that we study non-trivial software allowing us to extend our findings to other comparable software systems built in Java. We also analyse compiled binaries that have already gone through the build process improving the accuracy of our measures. Further, as discussed in the previous chapter, we focus on contributions from the core development team ignoring third party libraries ensuring that the metrics that we collect are a better reflection of the development effort. Chapter 4 (Measuring Evolving Software) of the thesis this data accompanies explains the metric extraction process and provides a discussion of the metrics we collect from the Java software systems and provide appropriate motivation for our choices. The metrics for each software system are in a separate data file. The raw metric data files (50 .txt files in a .zip file measuring ~58MB in total) contain the following columns: (1) Fully Qualified Class Name; (2) Metric Name (We use the abbreviations as defined in Chapter 4); (3) a list of metric values for each release of the software. Columns with empty values indicate that the class did not exist in that release.
History
Parent title
Originally presented as an appendix to: Vasa, R. (2010). Growth and change dynamics in open source software systems. PhD thesis