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 4. Measuring Evolving S<strong>of</strong>tware<br />

Release History<br />

Name: String<br />

Implemented<br />

Interfaces<br />

1 .. *<br />

Version<br />

RSN: int<br />

Release Date: Date<br />

1 .. *<br />

1<br />

Class Metric<br />

Name: String<br />

Package: String<br />

Metric Data: Set<br />

is Interface: boolean<br />

0 .. *<br />

0 .. *<br />

Super Class<br />

Depends On<br />

Figure 4.1: UML Class diagram <strong>of</strong> evolution history model.<br />

4.3 S<strong>of</strong>tware Evolution History Model<br />

Any non-trivial object-oriented s<strong>of</strong>tware system will generally contain<br />

many hundreds <strong>of</strong> classes, <strong>and</strong> in order to underst<strong>and</strong> the evolution <strong>of</strong><br />

these systems, there is a need to manage <strong>and</strong> process this potentially<br />

large pool <strong>of</strong> data. In our study, we model the entire evolution history<br />

<strong>of</strong> an individual project using three key elements: Release History,<br />

Version <strong>and</strong> Class Metric. Figure 4.1 shows the relationship between<br />

these three entities <strong>and</strong> the core data that they capture in our<br />

model.<br />

Release History captures the entire evolution history <strong>of</strong> a single s<strong>of</strong>tware<br />

system, <strong>and</strong> it holds the set <strong>of</strong> versions ordered by Release Sequence<br />

Number (RSN). The RSN is assigned incrementally for each version<br />

based on the release date <strong>and</strong> serves as a pseudo-time measure<br />

[58, 174]. Every Version consists <strong>of</strong> a set <strong>of</strong> Class Metric entities<br />

which directly map to an individual compiled Java class file <strong>and</strong> store<br />

the metric information extracted for each class. In Java, both interfaces<br />

<strong>and</strong> classes compile into class files <strong>and</strong> hence we model it directly as<br />

such, with a flag within the class metric entity that determines its actual<br />

type.<br />

66

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

Saved successfully!

Ooh no, something went wrong!