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 3. Data Selection Methodology<br />

tems, 1057 unique versions <strong>and</strong> approximately 55000 classes (in total<br />

over all the various systems <strong>and</strong> releases). Our data comprises three<br />

broad types <strong>of</strong> s<strong>of</strong>tware systems: (a) Applications, (b) Frameworks, <strong>and</strong><br />

(c) Libraries. In our selection, we aimed to select a similar number <strong>of</strong><br />

systems for each <strong>of</strong> the types.<br />

Applications are s<strong>of</strong>tware systems that can be considered st<strong>and</strong>-alone<br />

<strong>and</strong> tend to perform a specific set <strong>of</strong> tasks. Examples from our data<br />

set include a Bit-torrent client, a role playing game, an image editor,<br />

<strong>and</strong> a text editor. These systems <strong>of</strong>ten tend to have a graphical user<br />

interface component. Frameworks <strong>and</strong> Libraries, on the other h<strong>and</strong><br />

are systems that provide generic/reusable abstractions with a well defined<br />

API. There is one key distinction between a framework <strong>and</strong> library.<br />

Frameworks tend to impose a much stricter flow <strong>of</strong> control in the program.<br />

However, when we classified the systems, we used the terminology<br />

that has been used by the development team. So, if a development<br />

team classifies their system as a framework, we use the same term.<br />

Examples <strong>of</strong> frameworks in our data set are the Spring framework (an<br />

inversion <strong>of</strong> control framework) <strong>and</strong> Hibernate Object Relational mapping<br />

framework. Some <strong>of</strong> the libraries that we investigated are popular<br />

XML processors like Apache Xerces <strong>and</strong> Saxon. A full list <strong>of</strong> all <strong>of</strong> the<br />

systems is provided in Table 3.3, <strong>and</strong> the meta data that we capture<br />

for each system is presented in Appendix A. Our data set contains 14<br />

Applications, 12 Frameworks <strong>and</strong> 14 Libraries.<br />

A set <strong>of</strong> projects in our data (for instance Hibernate, Spring Framework,<br />

Acegi <strong>and</strong> Saxon) though open source, are developed by engineers that<br />

get paid for their effort as these projects are managed by commercial<br />

(for-pr<strong>of</strong>it) enterprises. All <strong>of</strong> these systems originally started as traditional<br />

open-source projects <strong>and</strong> over time adopted business models that<br />

generate revenue while the source code is still made available under a<br />

range <strong>of</strong> open source licenses. We tagged a system as commercially<br />

backed based on information provided on the project web site which<br />

indicated the name <strong>of</strong> the sponsoring company <strong>and</strong> the developers that<br />

work for that entity.<br />

51

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

Saved successfully!

Ooh no, something went wrong!