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

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

Saved successfully!

Ooh no, something went wrong!