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 5. Growth Dynamics<br />

population size. When analyzing metrics data, crucial aspects to consider<br />

are the width <strong>of</strong> distribution <strong>and</strong> its underlying dispersion [183].<br />

St<strong>and</strong>ard descriptive measures like median are blind for this dimension.<br />

A system that vividly demonstrates the problem with st<strong>and</strong>ard<br />

descriptive statistics is ProGuard (see Figure 5.12).<br />

The median for Type Construction Count, for example, stays firm at 1 for<br />

340 weeks <strong>of</strong> development, suggesting a fairly routine evolution <strong>of</strong> the<br />

code base over a period <strong>of</strong> 6.5 years. The Gini coefficient for Type Construction<br />

Count, on the other h<strong>and</strong>, moves from 0.776 to 0.897 indicating<br />

that the arrival <strong>of</strong> new classes results in a less equitable concentration<br />

<strong>of</strong> object instantiations. In case <strong>of</strong> ProGuard, the changes to the system<br />

occur at the upper end <strong>of</strong> the Type Construction Count measure.<br />

While the median remains for Type Construction Count the same, the<br />

changing Gini coefficient reflects correctly the occurrence <strong>of</strong> regular<br />

fluctuations as well as a sudden architectural change at RSN 19 (corresponding<br />

to Version id. 3.8, see Figure 5.12). Between RSN 19 <strong>and</strong> 20,<br />

the developers <strong>of</strong> this s<strong>of</strong>tware system modified the strategy used for<br />

mapping the actual code to obfuscated code which can be considered<br />

as a substantial architectural change since it adjusts how this s<strong>of</strong>tware<br />

system implements its core functionality.<br />

5.5.6 God Classes<br />

An interesting facet observed in all studied systems is the that a few<br />

God-like classes shoulder most <strong>of</strong> the work. This observation is supported<br />

by the typical size <strong>and</strong> complexity metric distribution pattern<br />

where the majority <strong>of</strong> the classes are very small with minimal structural<br />

complexity. Our findings suggest that developers are not afraid to<br />

construct, maintain, <strong>and</strong> evolve very complex abstractions. Contrary<br />

to common belief developers can actually manage complexity in real<br />

projects, but at what price? Classical s<strong>of</strong>tware engineering shies away<br />

from tightly arranged <strong>and</strong> centralised abstractions. However, we find<br />

that it is well within the developers’s mental capacity to organize <strong>and</strong><br />

control the structure <strong>of</strong> s<strong>of</strong>tware. Furthermore, our analysis suggests<br />

that there has to exist a certain degree <strong>of</strong> inequality, which defines the<br />

130

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

Saved successfully!

Ooh no, something went wrong!