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 1. Introduction<br />

Given that change is inherent within an active <strong>and</strong> used s<strong>of</strong>tware system,<br />

the key to a successful s<strong>of</strong>tware evolution approach lies not only in<br />

anticipating new requirements <strong>and</strong> adapting a system accordingly [87],<br />

but also in underst<strong>and</strong>ing the nature <strong>and</strong> the dynamics <strong>of</strong> change, especially<br />

as this has an influence on the type <strong>of</strong> decisions the developers<br />

make. Changes over time lead to s<strong>of</strong>tware that is progressively<br />

harder to maintain if no corrective action is taken [168]. Compounding<br />

this, these changes are <strong>of</strong>ten time consuming to reverse even with<br />

tool support. Tools such as version control systems can revert back to a<br />

previous state, but they cannot bring back the cognitive state in the developer’s<br />

mind. Developers can <strong>of</strong>ten identify <strong>and</strong> note local or smaller<br />

changes, but this task is much more challenging when changes tend<br />

to have global or systemic impact. Further, the longer-term evolutionary<br />

trends are <strong>of</strong>ten not easily visible due to a lack <strong>of</strong> easy to interpret<br />

summary measures that can be used to underst<strong>and</strong> the patterns <strong>of</strong><br />

change.<br />

S<strong>of</strong>tware engineering literature recommends that every time a s<strong>of</strong>tware<br />

system is changed, the type <strong>of</strong> change, the design rationale <strong>and</strong> impact<br />

should be appropriately documented [219, 257]. However, due to<br />

schedule <strong>and</strong> budget pressures, this task is <strong>of</strong>ten poorly resourced, with<br />

consequent inadequate design document quality [50, 97]. Another factor<br />

that contributes to this task being avoided is the lack <strong>of</strong> widespread<br />

formal education in s<strong>of</strong>tware evolution, limited availability <strong>of</strong> appropriate<br />

tools, <strong>and</strong> few structured methods that can help developers underst<strong>and</strong><br />

evolutionary trends in their s<strong>of</strong>tware products. To ensure that all<br />

changes are properly understood, adequately explained <strong>and</strong> fully documented,<br />

there is a need for easy to use methods that can identify these<br />

changes <strong>and</strong> highlight them, allowing developers to explain properly the<br />

changes.<br />

Given this context, where we have an evolving product, there is a strong<br />

need for developers to underst<strong>and</strong> properly the underlying growth dynamics<br />

as well as have appropriate knowledge <strong>of</strong> major changes to the<br />

design <strong>and</strong>/or architecture <strong>of</strong> a s<strong>of</strong>tware system, beyond an appreciation<br />

<strong>of</strong> the current state. Research <strong>and</strong> studies into how s<strong>of</strong>tware<br />

evolves is <strong>of</strong> great importance as it aids in building richer evolution<br />

3

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

Saved successfully!

Ooh no, something went wrong!