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 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

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

Saved successfully!

Ooh no, something went wrong!