20.01.2014 Views

thesis - Faculty of Information and Communication Technologies ...

thesis - Faculty of Information and Communication Technologies ...

thesis - Faculty of Information and Communication Technologies ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!