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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 2. S<strong>of</strong>tware Evolution<br />

nential growth in the number <strong>of</strong> plug-ins for the Eclipse platform [192]<br />

is similar to that <strong>of</strong> the driver sub-system in Linux <strong>and</strong> shows that certain<br />

architectural styles can allow the overall s<strong>of</strong>tware systems to grow<br />

at super-linear rates, suggesting limitations to Lehman’s laws.<br />

Studies that found super-linear growth rates [101, 119, 120, 127, 153,<br />

239] show that it is possible to manage the increase in volumetric complexity<br />

<strong>and</strong> the consequent structural complexity. The implication <strong>of</strong><br />

these studies is that certain architectural choices made early in the<br />

life cycle can have an impact on the growth rate, <strong>and</strong> a certain level <strong>of</strong><br />

structural complexity can be sustained without a corresponding investment<br />

<strong>of</strong> development effort (in contrast to the expectations <strong>of</strong> the laws<br />

<strong>of</strong> s<strong>of</strong>tware evolution).<br />

A consistent method that is generally applied by earlier studies <strong>of</strong> growth<br />

has been to observe how certain system wide measures change over<br />

time (for example, Number <strong>of</strong> modules). These observations have then<br />

typically been interpreted within the context <strong>of</strong> Lehman’s laws <strong>of</strong> evolution<br />

in order to underst<strong>and</strong> growth dynamics within evolving s<strong>of</strong>tware<br />

systems. Though these previous studies have improved our underst<strong>and</strong>ing<br />

<strong>of</strong> how s<strong>of</strong>tware evolves, there is limited knowledge with<br />

respect to how this growth is distributed among the various abstractions<br />

<strong>of</strong> a s<strong>of</strong>tware system.<br />

An early study that has provided some data about the distribution <strong>of</strong><br />

growth is the one undertaken by Gall et al. [85] that suggests that different<br />

modules grow at different rates. This observation is also confirmed<br />

by Barry et al. [17]. Although these studies highlight that growth rates<br />

can differ across modules, they do not discuss in depth how the growth<br />

is distributed <strong>and</strong> what the impact <strong>of</strong> this distribution is on the overall<br />

evolution <strong>of</strong> the s<strong>of</strong>tware that they study. More recently, Israeli et<br />

al. [127] investigated the Linux kernel <strong>and</strong> identified that average complexity<br />

is decreasing. The interesting aspect <strong>of</strong> the study by Israeli et al.<br />

was that they note that the reduction <strong>of</strong> the average complexity was a result<br />

<strong>of</strong> developers adding more functions with lower relative complexity.<br />

However, all <strong>of</strong> these studies have focused on individual systems <strong>and</strong> on<br />

a small set <strong>of</strong> metrics, <strong>and</strong> hence there is a gap in our underst<strong>and</strong>ing<br />

26

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

Saved successfully!

Ooh no, something went wrong!