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 />

as existing classes gain more size <strong>and</strong> complexity, that is, they become<br />

relatively wealthier.<br />

In our data set, we found a generalizable <strong>and</strong> consistent trend only in<br />

the Gini Coefficient for In-Degree Count. The Gini Coefficients for all<br />

other metrics increase in some systems, while in others they decrease.<br />

Our finding shows that the change in distribution <strong>of</strong> class size <strong>and</strong><br />

structural complexity is not a consistent <strong>and</strong> predictable evolutionary<br />

property. The variability in the Gini coefficients across systems suggests<br />

that there are different evolutionary pressures for different systems<br />

<strong>and</strong> developers respond as needed. However, the stability <strong>of</strong> the<br />

distribution pr<strong>of</strong>iles indicates that a system generally keeps its character<br />

over time — a finding that provides some indirect support for the<br />

Law <strong>of</strong> Conservation <strong>of</strong> Familiarity (cf. Section 2.3).<br />

When developers add a set <strong>of</strong> new classes, these fit within the overall<br />

probability distribution pr<strong>of</strong>ile as indicated by the minimal change in<br />

the Gini coefficient. Although our observations indicate that the longterm<br />

trend for most Gini Coefficient values cannot be reliably predicted,<br />

there is a high probability that the distribution <strong>of</strong> size <strong>and</strong> complexity<br />

between any two consecutive versions are very similar.<br />

5.5.3 Preferential Attachment<br />

We analyzed the trend in the Gini values to answer one <strong>of</strong> our research<br />

questions – “do large <strong>and</strong> complex classes get bigger over time?”. If large<br />

<strong>and</strong> complex classes gain additional volume in terms <strong>of</strong> code, then they<br />

will grow at a slightly faster rate than the rest <strong>of</strong> the code base causing<br />

the Gini Coefficient values to increase as s<strong>of</strong>tware evolves. Our observations<br />

showed a consistent trend in the Gini Coefficient value <strong>of</strong> IDC,<br />

but none <strong>of</strong> the other metrics had a sufficiently generalizable trend.<br />

In some systems there was an increase, while in others there was a<br />

decrease in the Gini Coefficient values over time.<br />

Our findings show that popular classes tend to gain additional dependents<br />

indicating that, in general, s<strong>of</strong>tware systems are built incre-<br />

124

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

Saved successfully!

Ooh no, something went wrong!