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 4. Measuring Evolving S<strong>of</strong>tware<br />
since it takes usually more effort to create a larger-size system than a<br />
smaller one [78]. Examples <strong>of</strong> size metrics within the context <strong>of</strong> objectoriented<br />
systems are the Number <strong>of</strong> Classes <strong>and</strong> the Number <strong>of</strong> Public<br />
Methods within a class.<br />
4.2.2 Complexity Metrics<br />
Unlike size, complexity in s<strong>of</strong>tware is an aspect that is harder to rigidly<br />
define <strong>and</strong> is an aspect that is <strong>of</strong>ten perceived subjectively making it<br />
harder to measure [116]. However, a number <strong>of</strong> researchers have put<br />
forward metrics that capture complexity in s<strong>of</strong>tware. Before, we outline<br />
our approach to measuring complexity, we briefly explain why complexity<br />
is hard to measure <strong>and</strong> the various attributes that need to be<br />
considered when interpreting any measure <strong>of</strong> complexity.<br />
What is complexity?<br />
The Oxford dictionary defines complexity as “the state or quality <strong>of</strong> being<br />
intricate or complicated” [69]. From a general perspective, a system that<br />
is composed <strong>of</strong> many interacting parts whose behaviour or structure is<br />
difficult to underst<strong>and</strong> is frequently described to be complex. Modern<br />
s<strong>of</strong>tware systems are complex as they tend to have a large number <strong>of</strong><br />
interacting parts, makeing it difficult to properly underst<strong>and</strong> the overall<br />
behaviour, even when complete information about its components <strong>and</strong><br />
their inter-relations is available.<br />
Some <strong>of</strong> the key contributors to complexity are [88, 222]:<br />
1. The size <strong>of</strong> the system: more parts require a need to organise them<br />
in order to properly comprehend,<br />
2. The amount <strong>and</strong> depth <strong>of</strong> knowledge available (<strong>and</strong> used) to digest<br />
<strong>and</strong> underst<strong>and</strong> the system,<br />
3. The level <strong>of</strong> abstraction that is possible, without loosing too much<br />
information<br />
63