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 3. Data Selection Methodology<br />

History<br />

Release History<br />

Revision History<br />

Project History<br />

Description<br />

Source code, binaries, release notes, <strong>and</strong> release<br />

documentation<br />

Version control logs, issue/defect records, Modification<br />

history <strong>of</strong> documentation, Wiki logs<br />

Messages (email, Instant message logs), Project<br />

documentation (plans, methodology, process)<br />

Table 3.1: The different types <strong>of</strong> histories that typically provide input<br />

data for studies into s<strong>of</strong>tware evolution.<br />

composition <strong>of</strong> the actual s<strong>of</strong>tware system. The other categories <strong>of</strong> information<br />

tend to provide a supporting, indirect view <strong>and</strong> can help fill in<br />

the gaps in underst<strong>and</strong>ing the evolution <strong>of</strong> a s<strong>of</strong>tware system. However,<br />

the information derived from the revision history <strong>and</strong> project history is<br />

reliable only if the development team was disciplined enough to record<br />

<strong>and</strong> archive it carefully. For instance, if most <strong>of</strong> the discussions in the<br />

project happen on personal e-mail or verbally, then that category <strong>of</strong> information<br />

is hard to obtain. Similarly, for version control logs <strong>and</strong> defect<br />

repository data to be useful, developers must properly <strong>and</strong> regularly use<br />

the appropriate tools <strong>and</strong> record information accurately.<br />

Research work that focuses on analysing the release history studies the<br />

actual outcome <strong>of</strong> changes, in most cases the source code over time.<br />

The Laws <strong>of</strong> S<strong>of</strong>tware Evolution as defined by Lehman [167, 168, 174]<br />

were built pre-dominantly from the analysis <strong>of</strong> release histories.<br />

Researchers<br />

that have focused on this area have been able to identify typical<br />

patterns <strong>of</strong> evolution <strong>and</strong> change [27], construct statistical models<br />

<strong>of</strong> growth <strong>and</strong> change [21,127,132,152,193,264,269,270,283,310], develop<br />

methods to identify change prone components [109,149,253,281],<br />

<strong>and</strong> have proposed methods to visualise evolution [1, 65, 79, 95, 163,<br />

164,298]. An interesting contribution from studies <strong>of</strong> release history is<br />

that modular architectures style can allow for rate <strong>of</strong> growth beyond<br />

the sub-linear growth rate expected by the Laws <strong>of</strong> S<strong>of</strong>tware Evolution<br />

[100, 200]. This insight provides some level <strong>of</strong> empirical support<br />

for the recommendation from s<strong>of</strong>tware engineering to build s<strong>of</strong>tware as<br />

loosely coupled modules [218, 302].<br />

42

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

Saved successfully!

Ooh no, something went wrong!