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

Once a pattern was established to identify specific libraries, we used the<br />

same pattern across all projects in our data set. The regular expression<br />

based external library identification lists created for each s<strong>of</strong>tware system<br />

in our data set was also manually checked to ensure that it was not<br />

selecting classes that can be considered to be part <strong>of</strong> the core s<strong>of</strong>tware<br />

system (cf. Section 3.6 for a description <strong>of</strong> core s<strong>of</strong>tware system).<br />

In the final stage <strong>of</strong> this step, we determined the release date for the<br />

version from the JAR files that have been determined to be part <strong>of</strong> the<br />

core s<strong>of</strong>tware system. All Java archives contain a Manifest file that is<br />

created as part <strong>of</strong> the JAR construction process. We use the creation<br />

date timestamp <strong>of</strong> this Manifest file to determine the release date for<br />

the Version. Where a version contains multiple JAR files, we apply<br />

the maximum function <strong>and</strong> take the latest date to represent the release<br />

date for the entire version. This was needed since certain projects tend<br />

to constructed JAR files for their distribution over multiple days rather<br />

than build it all on a single date.<br />

Once the release date for a version was established, we ordered all versions<br />

by release date <strong>and</strong> compute the Release Sequence Number (RSN)<br />

for each version. We started the RSN numbers at 1 for the oldest version<br />

<strong>and</strong> incremented it by 1 for each subsequent version.<br />

4.5.2 Class Metric Extraction<br />

After the classes files are extracted from the JAR file, we process each<br />

class file using ASM, a Java Bytecode manipulation framework [9], in<br />

order to extract information from the compiled Java class (Table 4.1<br />

highlights the information that is available to be extracted from a compiled<br />

Java class). In this step we compute direct measures such as<br />

the Number <strong>of</strong> Fields for a class as well as extracting its additional information<br />

such as the fully qualified class name (i.e. class name includes<br />

the package name; an example <strong>of</strong> a fully qualified class name is<br />

java.lang.String, where java.lang is the package name).<br />

74

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

Saved successfully!

Ooh no, something went wrong!