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 6. Change Dynamics<br />

The set <strong>of</strong> changed classes C v <strong>and</strong> the set <strong>of</strong> unchanged classes U v are<br />

determined by comparing the classes in two releases using the change<br />

detection technique presented in Section 6.1.2.<br />

The set <strong>of</strong> deleted classes Dv f in the next release is determined by comparing<br />

any given version with the future version (if available) <strong>and</strong> checking<br />

if the fully qualified class name exists in both versions. The set <strong>of</strong><br />

newly added classes A v is computed by comparing any given version<br />

with the previous version (if available) <strong>and</strong> checking if the fully qualified<br />

class name exists in that version.<br />

6.1.4 Measuring Change<br />

Once the set <strong>of</strong> changed classes is established, three different dimensions<br />

<strong>of</strong> change can be computed: amplitude (size <strong>of</strong> change), periodicity<br />

(frequency <strong>of</strong> change), <strong>and</strong> dispersion (consistency <strong>of</strong> change). These<br />

dimensions were proposed by Barry et al. [17] based on a study into<br />

volatility in s<strong>of</strong>tware systems where a phase sequence analysis <strong>of</strong> maintenance<br />

log data (revision history) was performed. We based our study<br />

on similar dimensions, however we use release history (see Section 3.1)<br />

as our input <strong>and</strong> hence can not directly apply the method proposed by<br />

Barry et al. [17].<br />

In this study, we use the following definitions for the dimensions <strong>of</strong><br />

change — the size <strong>of</strong> change between two classes is defined as the number<br />

<strong>of</strong> metrics that differ (i.e., if five different metrics differ in value between<br />

two classes, then the size <strong>of</strong> change is 5). The modification count<br />

is the number <strong>of</strong> times a class has been modified since its creation —<br />

this measure is used as the basis for determining the periodicity. Finally,<br />

in order to assess dispersion <strong>of</strong> change, we measure the proportion<br />

<strong>of</strong> classes in the final version that remain unchanged since creation<br />

as well as the proportion that are modified after being created.<br />

We measure the size, consistency <strong>and</strong> frequency <strong>of</strong> change for each class<br />

in our release history (that is, every class in every version). The rationale<br />

for our choices is presented in the next section within the context<br />

<strong>of</strong> the observations.<br />

144

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

Saved successfully!

Ooh no, something went wrong!