thesis - Faculty of Information and Communication Technologies ...
thesis - Faculty of Information and Communication Technologies ...
thesis - Faculty of Information and Communication Technologies ...
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