thesis - Faculty of Information and Communication Technologies ...
thesis - Faculty of Information and Communication Technologies ...
thesis - Faculty of Information and Communication Technologies ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 4. Measuring Evolving S<strong>of</strong>tware<br />
<strong>of</strong> Inheritance Tree to have a value <strong>of</strong> 1. However, if the Java framework<br />
was fully analysed then this would change to 6 (for Java 1.6), since we<br />
now are processing the full extent <strong>of</strong> the inheritance chain by extracting<br />
additional information from the external Java framework. Though our<br />
metrics are constrained, the inheritance hierarchy within the external<br />
framework was designed <strong>and</strong> created by an external team <strong>and</strong> hence all<br />
changes to it are outside <strong>of</strong> the direct control <strong>of</strong> the development team<br />
creating the s<strong>of</strong>tware under study. Hence, we do not measure the inheritance<br />
hierarchies <strong>of</strong> external libraries <strong>and</strong> the core Java framework as<br />
part <strong>of</strong> our analysis. Furthermore, we do not consider interface implementation<br />
as inheritance <strong>and</strong> hence do not count them in our metrics.<br />
4.6 Summary<br />
The evolution <strong>of</strong> a s<strong>of</strong>tware system can be studied in terms <strong>of</strong> how various<br />
properties as reflected by s<strong>of</strong>tware metrics change over time. We<br />
build a release history model by analysing the compiled class files. Our<br />
release history model captures meta-data <strong>and</strong> 58 different metrics at a<br />
class level. We also build a class dependency graph for each release in<br />
the evolution history.<br />
The data selection <strong>and</strong> metric extraction method that we use ensures<br />
that we study non-trivial s<strong>of</strong>tware allowing us to extend our findings<br />
to other comparable s<strong>of</strong>tware systems built in Java. We also analyse<br />
compiled binaries that have already gone through the build process<br />
improving the accuracy <strong>of</strong> our measures. Further, as discussed in the<br />
previous chapter, we focus on contributions from the core development<br />
team ignoring third party libraries ensuring that the metrics that we<br />
collect are a better reflection <strong>of</strong> the development effort.<br />
The next chapter (Growth Dynamics) addresses the research questions<br />
related to growth. We describe how size <strong>and</strong> complexity is distributed<br />
as systems evolve <strong>and</strong> present a novel analysis technique to help underst<strong>and</strong><br />
growth dynamics.<br />
89