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