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.

Abstract<br />

In this <strong>thesis</strong> we address the problem <strong>of</strong> identifying where, in successful<br />

s<strong>of</strong>tware systems, maintenance effort tends to be devoted. By examining<br />

a larger data set <strong>of</strong> open source systems we show that maintenance<br />

effort is, in general, spent on addition <strong>of</strong> new classes. Interestingly, efforts<br />

to base new code on stable classes will make those classes less<br />

stable as they need to be modified to meet the needs <strong>of</strong> the new clients.<br />

This <strong>thesis</strong> advances the state <strong>of</strong> the art in terms <strong>of</strong> our underst<strong>and</strong>ing<br />

<strong>of</strong> how evolving s<strong>of</strong>tware systems grow <strong>and</strong> change. We propose an<br />

innovative method to better underst<strong>and</strong> growth dynamics in evolving<br />

s<strong>of</strong>tware systems. Rather than relying on the commonly used method<br />

<strong>of</strong> analysing aggregate system size growth over time, we analyze how<br />

the probability distribution <strong>of</strong> a range <strong>of</strong> s<strong>of</strong>tware metrics change over<br />

time. Using this approach we find that the process <strong>of</strong> evolution typically<br />

drives the popular classes within a s<strong>of</strong>tware system to gain additional<br />

clients over time <strong>and</strong> the increase in popularity makes these classes<br />

change-prone.<br />

Furthermore, we show that once a set <strong>of</strong> classes have been released,<br />

they resist change <strong>and</strong> the modifications that they do undergo are in<br />

general, small adaptations rather than substantive rework. The methods<br />

we developed to analyze evolution can be used to detect releases<br />

with systemic <strong>and</strong> architectural changes as well as identify presence <strong>of</strong><br />

machine generated code.<br />

Finally, we also extend the body <strong>of</strong> knowledge with respect to validation<br />

<strong>of</strong> the Laws <strong>of</strong> S<strong>of</strong>tware Evolution as postulated by Lehman. We find<br />

consistent support for the applicability <strong>of</strong> the following laws <strong>of</strong> s<strong>of</strong>tware<br />

evolution: first law Continuing Change, third law Self Regulation, fifth<br />

law Conservation <strong>of</strong> Familiarity, <strong>and</strong> the sixth law Continuing Growth.<br />

However, our analysis was unable to find evidence to support the other<br />

laws.<br />

i

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

Saved successfully!

Ooh no, something went wrong!