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 7. Implications<br />
ity, that is, because there are a larger number <strong>of</strong> abstractions that developers<br />
have to deal with over time. However, when we consider the<br />
distribution <strong>of</strong> size <strong>and</strong> complexity metrics, we notice that the distribution<br />
<strong>of</strong> all measures fall within a tight boundary (see Chapter 5). In any<br />
given s<strong>of</strong>tware system, though there is variation, the overall consistency<br />
in the shape suggests that developers either explicitly or implicitly take<br />
correction action in order to maintain the overall distribution <strong>of</strong> the<br />
size as well as complexity. The only material increase in complexity at<br />
the system level is not a consequence <strong>of</strong> complexity <strong>of</strong> a certain set <strong>of</strong><br />
classes, but rather due to the size <strong>of</strong> the system as a whole <strong>and</strong> increase<br />
in the absolute number <strong>of</strong> complex classes.<br />
Our observations related to complexity introduce uncertainty in interpreting<br />
the law <strong>of</strong> Increasing Complexity. The law as stated suggests<br />
that complexity increases unless effort is put into reducing it, that is,<br />
it implies that complexity can be managed or reduced. In our study, we<br />
find that (i) there is an absolute increase in the total number <strong>of</strong> classes,<br />
<strong>and</strong> (ii) developers either intentionally or otherwise manage to contain<br />
the distribution <strong>of</strong> complexity between the various classes. These findings<br />
lead us to argue that although the distribution <strong>of</strong> complexity can<br />
be managed, the volumetric complexity that arises because <strong>of</strong> the size<br />
<strong>of</strong> the system cannot be reduced without a corresponding reduction in<br />
functionality (assuming a competent development team).<br />
Feedback <strong>and</strong> Regulation<br />
The third law, Self Regulation states that evolution is regulated by feedback<br />
[166]. We do not collected direct quantitative data related to feedback.<br />
However, the bounded nature <strong>of</strong> Gini Coefficients across multiple<br />
s<strong>of</strong>tware systems provides indirect support for this law. Feedback can<br />
be caused by different drivers. For instance, developers will get feedback<br />
from a set <strong>of</strong> classes that are too large or complex, especially if<br />
these classes are defect prone. Feedback can also be driven by team<br />
dynamics as well as the cultural bias (strong team habits) that influence<br />
how s<strong>of</strong>tware is constructed. Hence, it is likely that there are<br />
potentially multiple sources <strong>of</strong> feedback at work in order to regulate the<br />
183