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

smells that they consider is related to excessive complexity within a<br />

class (computed as the sum <strong>of</strong> method cyclomatic complexities [190]).<br />

In our work, we use the Number <strong>of</strong> Branches (NOB) as the measure <strong>of</strong><br />

structural complexity within a class. The NOB metric that we use can<br />

be considered to be equivalent to the cyclomatic complexity metric used<br />

by Khomh et al. since both metrics are based on the same underlying<br />

measure (see the NOB metric definition in Chapter 4). The findings by<br />

Khomh et al. are similar to our own conclusions with respect to the<br />

structural complexity <strong>of</strong> a class suggesting that structurally complex<br />

class are change-prone during development, <strong>and</strong> post-release. We also,<br />

identified a consistent relationship between popularity <strong>and</strong> probability<br />

<strong>of</strong> change which was not considered within the work by Khomh et al..<br />

In a recent study, Capiluppi et al. [36, 37] investigated the value <strong>of</strong> stability<br />

at predicting reuse <strong>of</strong> a s<strong>of</strong>tware module (identified as a set <strong>of</strong><br />

files within a source code folder) by studying evolution in 4 long-lived<br />

open source s<strong>of</strong>tware systems. Capiluppi et al. argue that highly stable<br />

modules are good c<strong>and</strong>idates to be tuned into independent reusable<br />

modules. Capiluppi et al. measured stability by using Martin’s Instability<br />

Metric [189] which uses the coupling <strong>of</strong> a module (similar to the<br />

In Degree <strong>and</strong> Out Degree count in our work) as the basis for calculating<br />

the stability. However as discussed in Section 6.3.3, Martin’s<br />

instability metric does not measure actual stability <strong>of</strong> an abstraction<br />

over time <strong>and</strong> hence cannot be considered to be a direct measure <strong>of</strong><br />

actual change. We also did not find any rigorous longitudinal studies<br />

that have shown the relationship between Martin’s instability metric<br />

<strong>and</strong> actual changes that take place within a module. In contrast, our<br />

work shows that the new dependants place additional pressure on a<br />

class increasing the probability <strong>of</strong> change to satisfy new clients.<br />

A key distinction from our own study <strong>and</strong> that by Capiluppi et al. [36,37]<br />

is the level <strong>of</strong> abstraction used in the study. We focus on changes at the<br />

class level, while Capiluppi et al. study modules. Although, the level <strong>of</strong><br />

abstraction used in our study is different, a module can be treated as<br />

a set <strong>of</strong> related classes. Therefore, if a set <strong>of</strong> classes within a module<br />

change, we can considered the module to have changed as well <strong>and</strong><br />

hence our findings are likely to be similar at the module level as well.<br />

178

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

Saved successfully!

Ooh no, something went wrong!