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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 5. Growth Dynamics<br />

ber <strong>of</strong> Methods <strong>and</strong> Number <strong>of</strong> Attributes.<br />

The systems where these high values were consistently found were:<br />

Checkstyle, Hibernate (version 3.0b1 <strong>and</strong> higher), PMD, Groovy, Pro-<br />

Guard, FreeMarker, JabRef (version 1.4.0 <strong>and</strong> higher), <strong>and</strong> JasperReports.<br />

In these systems we observed persistent occurrences <strong>of</strong> Gini<br />

values for Number <strong>of</strong> Branches greater than 0.83, with a value <strong>of</strong> 0.91 for<br />

CheckStyle (version 2.1.0). But, why should this be the case? We discovered,<br />

upon further inspection, that all systems contained machinegenerated<br />

code, which yields an extremely uneven functionality distribution.<br />

Seven systems out <strong>of</strong> the eight used compiler-compilers to<br />

generate parsers which centralise the semantic rules into few classes<br />

that tend to be large <strong>and</strong> have a very high Weighted Method Count. The<br />

other system that we picked up with large Gini values was ProGuard<br />

with a TCC value over 0.9. This was caused by a few mapping classes<br />

that have been generated using a code generation template.<br />

Two other systems also produced fairly high Gini values were Xerces2<br />

<strong>and</strong> Xalan. In both <strong>of</strong> these systems, the Gini coefficient for NOB is<br />

between 0.75 <strong>and</strong> 0.81 over the entire evolution history. These high values<br />

resulted from h<strong>and</strong>-written parsers that produced functionality distribution<br />

pr<strong>of</strong>iles closer to systems that contained machine-generated<br />

code. These were the only instances in which we observed such high<br />

values for Number <strong>of</strong> Branches or Type Construction Count without the<br />

presence <strong>of</strong> machine-generated code.<br />

5.4.7 Trends in Gini Coefficients<br />

We analyzed the trend in Gini coefficients over the entire evolution history<br />

in order to determine if developers tend to centralise functionality<br />

<strong>and</strong> complexity by observing the relationship between the Gini coefficient<br />

<strong>and</strong> the Age.<br />

The correlation coefficient ρ which is an indication <strong>of</strong> the strength <strong>and</strong><br />

direction <strong>of</strong> the relationship between two variables (Gini, Age) does not<br />

show a consistent trend in the Gini Coefficients that can be generalised<br />

118

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

Saved successfully!

Ooh no, something went wrong!