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 6. Change Dynamics<br />
changes [26], so we cannot conclude that defects are the main reason<br />
for change.<br />
A class that changes is likely to have higher In-Degree Count <strong>and</strong> higher<br />
Branch Count. Simply put, complex classes have a higher probability <strong>of</strong><br />
change. Furthermore, this probability increases with the complexity <strong>of</strong><br />
the class.<br />
6.3.6 Development Strategy <strong>and</strong> its Impact on Change<br />
In our data set, three systems st<strong>and</strong> out as clear outliers: Saxon XML<br />
processor, Axis web services library <strong>and</strong> iText PDF generation library.<br />
All <strong>of</strong> these systems exhibited above average change both in terms <strong>of</strong><br />
the frequency as well as the magnitude. But, why should this be the<br />
case? Is there a common shared trait?<br />
It turns out that all three systems have one common attribute — they<br />
were all built to satisfy well defined industry st<strong>and</strong>ards. Saxon <strong>and</strong><br />
Axis implement W3C (World Wide Web Consortium) st<strong>and</strong>ards for XML<br />
<strong>and</strong> Web services, respectively. The iText library attempts to satisfy<br />
the Adobe PDF specification. Saxon <strong>and</strong> iText are currently supported<br />
by commercial (for-pr<strong>of</strong>it) organisations, while the Apache consortium<br />
h<strong>and</strong>les the Axis project (Apache is a non-pr<strong>of</strong>it organisation that manages<br />
a large number <strong>of</strong> open source projects, including the popular<br />
Apache Web server).<br />
An inspection <strong>of</strong> the architecture documentation, discussion boards as<br />
well as release notes revealed a consistent theme in all three systems.<br />
In these systems developers made a choice early in the life cycle to incrementally<br />
satisfy the specifications, rather than define a s<strong>of</strong>tware system<br />
that completely implements the st<strong>and</strong>ards as elaborated in the specifications.<br />
In addition, the developers enhanced their s<strong>of</strong>tware systems<br />
as the specifications themselves were exp<strong>and</strong>ed <strong>and</strong> amended. Interestingly,<br />
in these three systems developers did not create well defined<br />
functional components early in the life cycle. The functional components<br />
gained coherence <strong>and</strong> a clear responsibility over time. For in-<br />
171