+ All Categories
Home > Documents > AMINAT ABIOLA SHOWOLE - Universiti Teknologi...

AMINAT ABIOLA SHOWOLE - Universiti Teknologi...

Date post: 22-Feb-2018
Category:
Upload: dodan
View: 218 times
Download: 0 times
Share this document with a friend
39
i AN ONION PROCESS MODEL TO SUPPORT OPEN SOURCE DEVELOPMENT AMINAT ABIOLA SHOWOLE UNIVERSITI TEKNOLOGI MALAYSIA
Transcript

i

AN ONION PROCESS MODEL TO SUPPORT

OPEN SOURCE DEVELOPMENT

AMINAT ABIOLA SHOWOLE

UNIVERSITI TEKNOLOGI MALAYSIA

i

ii

i

ii

AN OPEN ONION PROCESS MODEL TO SUPPORT

OPEN SOURCE DEVELOPMENT

AMINAT ABIOLA SHOWOLE

A thesis submitted in fulfilment of the

requirements for the award of the degree of

Doctor of Philosophy (Computer Science)

Faculty of Computer Science and Information Systems

Universiti Teknologi Malaysia

JANUARY 2011

ii

DECLARATION

I declared that this thesis entitled “An Open Onion Process Model to Support

Open Source Development” is the result of my own research except as cited in the

references. The thesis has not been accepted for any degree and is not concurrently

submitted in candidature of any other degree.

Signature: …………………………

Name: Aminat Abiola Showole

Date: 31ST January, 2011

iii

To

My late father, Alhaji G.S. Alamutu

My sweet mother Alhaja Safiat Atoke Alamutu,

My beloved Children Mubarak, Teslim, Hikmat & Yusrah

My darling husband and best friend, Abdul Wasiu Showole

iv

ACKNOWLEDGEMENT

All Praises belong to Allah (SWT) for making it possible for me to get to this

phase of my research. This PhD research is sponsored by Islamic Development Bank

(IDB) Jeddah, Saudi Arabia and Federal University of Abuja, Nigeria, to both whom

I am very grateful.

My deepest appreciation goes to my principal supervisor Professor Dr. Hj.

Shamsul Sahibuddin, for his persistent support in terms of guidance, encouragements

and inspiration especially at the times when this research seemed unworkable. He has

always given me the much needed courage to forge ahead and build high-level of

confidence in me. All these have really taken me to this level. My profound

gratitude goes to my co-supervisor, Associate Professor Dr. Ibrahim Suhaimi, for his

guidance and motivation in the course of this research. He is an ever-listening,

willing to help co-supervisor. My sincere appreciation goes to members of the

faculty of computer science and information system (FSKSM), UTM; and in

particular, Associate Prof. Dr. Ali Selamat for his assistance especially at the early

stages of this research and Professor Bob Colomb for guiding me, with his elderly

expertise, towards the appropriate data analysis technique for this research.

Furthermore, I appreciate the open source community and open source

repository providers (SourceForge.net, flossmole.org). They have indeed facilitated

this research by providing free and up to date project activity details which have

eased the data collection processes for this research. Mr. Nicholas, open source

community, Malaysia. Industry-based practitioner though, he granted me audience

and provided positive responses as I provoked his thoughts on open source academic

issues.

v

My appreciation goes to my family friends particularly, Abd-Gafar and

Kifayah Fahm and the entire Nigerian communities in Malaysia, for their support and

care of my children during the course of this research.

My appreciation goes to people who have assisted me through my academic

ladder climbing. Mr. Agosu was my wonderful mathematics secondary school

teacher who gave me a solid foundation in mathematics and statistics. Engineer Bayo

Adeola is a fantastic brother to me, Dr A.K. Ojo is my mentor and Professor Olaide

Abass of University of Lagos is a father-figure.

My deepest appreciation and humility goes to my late father, Alhaji ‘Ganiu S.

Alamutu and my mother Alhaja Safiat A. Alamutu for their parental care, endless

support and perpetual prayers over me. My love goes to Alhaja R.Titilayo Oguntola,

Engineer Wale Q. Alamutu, Mrs. Mariam A. Ibrahim and Late Mrs. Barakat Adebiyi

of blessed memory; they are my wonderful and worthy siblings indeed. My Mother-

in-law, late Alhaja Sidiqat Showole of blessed memory, was a one-in-a-million

mother in law who had always showered her blessings and prayers upon me on a

daily basis throughout her 8 years of stay with me; although I tried my best to be

kind to her on a daily basis as well. I am convinced that her long years of prayers

over me have indeed contributed to my success in this research.

My love and appreciation goes to my beloved children, Mubarak, Teslim,

Hikmat and Yusrah, who have all shown adequate understanding and cooperation.

They provided a balancing environment for my brain to operate in the course of this

research. My love goes to my darling husband, Abdul Wasiu Abiodun Showole most

encouraging, highly committed with persistent determination towards my success.

vi

ABSTRACT

The need for technologies to building high quality software faster and

cheaper has led to the advances in software development techniques such as software

component, object orientation, software reuse and open source methodologies.

Ability to revamp existing codes is the leading edge of open source over other

methodologies. Interestingly, literature has often described open source development

with onion. However, the previous open source onion descriptions have not been put

to test. This research presents an improved onion model that has streamlined four

prominent open source onion models into a newly evolved five layered open onion

model whose layers are distinctively modeled diagrammatically, evaluated

statistically and validated with Delphi’s approach. Relevant parameters, such as

programming language support, user interface, and natural language support, were

extracted from ten highly ranked SourceForge case studies and statistically evaluated

using correlation, regression and averages; while a cross verification was performed

by statistical analysis based on extracted details of 1104 open source software

projects details. The support for Pareto (80/20) principle in open source shows that

80% of project developers’ activities are actually regulated and controlled by 20%

project administrators’ activities. The development and validation of open source

user satisfaction equation as well as the newly evolved open source success tree

provide excellent measure; such as 100% Delphi experts’ support for ability to avoid

fatal errors and 100% for ability to build strong support for the project; to which an

open source success rate largely depends. Major contributions of this study are that

the open onion model evolves to improve the existing onion models of open source

through the modeling, verification and the 4-round open onion Delphi validation

stages.

vii

ABSTRAK

Keperluan teknologi bagi pembinaan perisian berkualiti tinggi dengan lebih

cepat dan murah telah membawa kepada kemajuan dalam teknik pembangunan

perisian seperti komponen perisian, orientasi objek, penggunaan semula perisian dan

metodologi sumber terbuka. Kemampuan mengubah kod sedia ada merupakan

kelebihan utama sumber terbuka melebihi metodologi lain. Apa yang menarik,

pelbagai kertas kajian menggambarkan perkembangan sumber terbuka dengan

bawang. Namun, gambaran bawang ini belum pernah diuji. Penyelidikan ini

menawarkan suatu pembaharuan model bawang yang menggabungkan empat model

bawang sumber terbuka terkemuka ke dalam suatu model evolusi baru lima lapisan

bawang terbuka dimana setiap lapisan digambarkan dengan model berbeza, dinilai

secara statistik dan disahkan melalui pendekatan Delphi. Parameter yang berkaitan,

seperti sokongan bahasa pengaturcaraan, antara muka pengguna, dan sokongan

bahasa tabii, diekstrak dari sepuluh kedudukan tertinggi kajian kes SourceForge dan

dinilai secara statistik menggunakan korelasi, regresi dan purata; manakala

pengesahan yang menyeluruh dilakukan dengan analisa statistik butiran yang diambil

dari 1104 projek perisian sumber terbuka. Sokongan bagi prinsip Pareto (80/20)

dalam sumber terbuka menunjukkan bahawa 80% dari kegiatan pemaju projek

sebenarnya diselaraskan oleh 20% kegiatan pentadbir projek. Pembangunan dan

pengesahan persamaan kepuasan pengguna sumber terbuka serta pokok kejayaan

sumber terbuka evolusi baru menyediakan pengukuran unggul seperti sokongan

100% pakar Delphi bagi keupayaan mengelakkan kesilapan besar dan 100% bagi

kemampuan membina sokongan kuat projek; kadar kejayaan sumber terbuka sangat

bergantung kepada ukuran-ukuran tersebut. Sumbangan utama dari kajian ini adalah

bahawa model bawang terbuka berkembang bagi memperbaharui model bawang

sumber terbuka sedia ada melalui pemodelan, penentusahan dan tahap pengesahan

bawang terbuka Delphi 4-pusingan.

viii

TABLE OF CONTENTS

CHAPTER TITLE PAGE

DECLARATION ii

ACKNOWLEDGEMENT iv

ABSTRACT vi

ABSTRAK vii

TABLE OF CONTENTS viii

LIST OF TABLES xiv

LIST OF FIGURES xviii

LIST OF DEFINITIONS xxi

LIST OF ACRONYMS xxii

LIST OF APPENDICES xxiv

1 INTRODUCTION 1

1.1. Problem Background 1

1.1.1. Conventional Software Development Paradigms 2

1.1.2. Open Source Approach to Software Development 6

1.1.3. Issues in Open Source Software Development 9

1.1.4. Varying Characteristics of Open Source Projects 11

1.2. Statement of the Problem 12

1.3. Research Questions 14

1.4. Objective of the Study 14

1.5. Scope of Research 14

ix

1.6. Significance of Research 16

1.7. Thesis Organization 17

2 LITERATURE REVIEW 20

2.1. Open Source Definition 20

2.2. Historical Background Of Open Source Software 22

2.3. The Philosophy of Open Source 24

2.3.1. Individual developer’s views 25

2.3.2. Corporate Organization’s views of Open Source 27

2.4. Software Process Models Vs. Open Source Models 29

2.4.1. Traditional Software Engineering 29

2.4.2. Open Source Models 36

2.5. Related Open Source Onion Models 42

2.6. Software Quality In Relation to User Satisfaction 46

2.6.1. Software Quality Models 46

2.6.2. Software Quality Assurance (SQA) Perspectives 48

2.6.3. Statistical Software Quality Assurance (SQA) 49

2.6.4. Open Source Approach to SQA 49

2.7. Review Summary 51

3 RESEARCH METHODOLOGY 53

3.1. Research Methods 54

3.1.1. Quantitative Research in Software Engineering 55

3.1.2. Open onion Research Approach 56

3.1.3. Research Framework 56

3.2. Research Design and Procedure 58

3.2.1. Modeling 58

3.2.2. Units of Analysis 59

x

3.2.3. Case Study Selection Criteria 60

3.2.4. Research Settings 61

3.2.5. Data Collection 63

3.2.6. Case Study Selection Size 64

3.3. Research Hypotheses 65

3.4. Open onion validation Method 67

3.4.1. Selection of the Delphi Method 67

3.4.2. Selection of Panel of Experts Participants 68

3.4.3. Panel Qualifications 69

3.4.4. The Panel Size 70

3.5. Assumptions and Limitation 70

4 CASE STUDIES 72

4.1. The scope of the Case Studies 74

4.2. Presentation of Case Studies 74

4.2.1. Openbravo ERP 75

4.2.2. ZK-Simply Ajax and Mobile 79

4.2.3. Adempiere ERP 83

4.2.4. Notepad ++ 86

4.2.5. ScummVM 90

4.2.6. WinMerge 94

4.2.7. Eclipse Checkstyle Plug-in 96

4.2.8. MinGW-Minimalist GNU for Windows 98

4.2.9. XOOPS Web Application Platform 101

4.2.10. SW Test Automation Framework 103

4.3. ANALYSIS OF CASE STUDIES 108

4.3.1. Detailed Findings 108

4.3.2. Unit Parametric Quantitative Analysis 109

xi

4.4. Summary of Case Studies 120

5 OPEN ONION MODELING 123

5.1. Open Onion Motivation 123

5.2. Open Onion Description 124

5.3. The Open Onion Framework 127

5.3.1. Why Onion and Not Carrot or Garlic? 128

5.3.2. Open Onion Acronym 129

5.4. Open Onion Layers Modeling 129

5.4.1. Project initiation layer 130

5.4.2. Developers Layer 133

5.4.3. Maintenance Layer 136

5.4.4. User layer Modeling 140

5.4.5. External Layer Descriptive Model 141

5.5. Open Source Success Criteria 143

5.5.1. Open Source User Satisfaction 145

5.5.2. Comparative Evaluation of Open Onion Model 146

6 STATISTICAL EVALUATION 149

6.1. Initiation Layer 149

6.2. Developer Layer 153

6.3. Maintenance Layer 158

6.4. User Layer 162

6.5. External Layer 166

6.6. Cross – Layer Evaluation 171

6.6.1. Result Summary on Source Forge Case studies 174

6.7. Verification with Flossmole Project 176

6.7.1. Open Source Projects Distribution on Flossmole 179

xii

6.7.2. Project Environment 183

6.7.3. Intended Audience (Domain Audience) 184

6.7.4. License Description Analysis 186

6.7.5. Summary of Operating Systems (OS) 187

6.7.6. Programming Lang vs. Dev. Status (Flossmole) 188

6.7.7. Flossmole Project Result Summary 190

6.8. Summary of Experimental Evaluations 191

7 DELPHI’S VALIDATION OF OPEN ONION MODEL 194

7.1. The Delphi’s Open onion validation Process 195

7.2. Instrument Design and Implementation 197

7.2.1. Delphi Round-1: Initial survey 197

7.2.2. Delphi Round-2: Questionnaire One: 198

7.2.3. Delphi Round-3: Questionnaire Two 199

7.2.4. Delphi Round-4: Questionnaire Three 199

7.3. Delphi Validation Results and Analysis 200

7.3.1. Delphi Round-1 Results (14 respondents) 200

7.3.2. Analysis of Delphi round-1 results 201

7.3.3. Round-2 Results (11 Respondents) 203

7.3.4. Analysis of Delphi Round-2 Results 208

7.3.5. Delphi Round-3: Open Source User Satisfaction 218

7.3.6. Analysis of Delphi Round-3 Results 220

7.3.7. Delphi Round-4 (11 Respondents) 221

7.3.8. Analysis of Delphi Round-4 Results 224

8 RESEARCH FINDINGS 225

8.1. The Pareto principle in Open onion 226

8.2. Open Source User satisfaction metrics 227

xiii

8.3. Statistical Evaluation Findings 228

8.3.1. Results from SourceForge Case Studies 228

8.3.2. Results from Flossmole Projects 229

8.4. Case Studies Findings 230

8.5. Delphi’s validation findings 233

8.6. Findings on Hypotheses 235

9 CONCLUSION 238

9.1. Research Summary 238

9.2. Contributions 240

9.2.1. The 5-layered Open Onion Model 240

9.2.2. Open Source Success Tree 241

9.2.3. Statistical Quantitative Improvement 241

9.2.4. Open Source User Satisfaction Metrics 242

9.2.5. Validation of Open Onion Model 242

9.2.6. Pareto Principles in Open Source Development 243

9.3. Future Work 244

REFERENCES 245

APPENDICES A-H 276 - 343

xiv

LIST OF TABLES

TABLE NO. TITLE PAGE

2.1 Comparative Evaluation of Software Process Models 34

2.2 Open Source Maintenance Matrix 41

3.1 Case Study Selection Criteria 61

4.1 Case Study Highlights 73

4.2 Openbravo project details 78

4.3 ZK-Project Details 80

4.4 Adempiere Project details on SourceForge.net 84

4.5 Notepad ++ Programming Syntax Highlights 87

4.6 Notepad ++ description 88

4.7 ScummVM project details 91

4.8 WinMerge project details 95

4.9 Eclipse Checkstyle Plug-in activity 97

4.10 MinGW-Minimalist GNU for Windows 99

4.11 XOOPS Web Application Platform 102

4.12 Software Test Automation Framework Details 104

4.13 Onion Layers Parameters 106

xv

4.14 Case Study Summary 107

4.15 Domain Audience Analysis across the case studies 111

4.16 Domain Audience Analysed 112

4.17 Open Source License Properties 113

4.18 Frequency Analysis of Open Source Licenses 114

4.19 License Coding 115

4.20 User interface frequency analysis 116

4.21 Further analysis of user interface 117

4.22 Topics Covered frequency analysis 118

4.23 Programming Language Analysis (SourceForge) 119

5.1 Open Onion Layers Description 125

5.2 Open Onion Details 126

5.3 Comparative Evaluation of Open Source Onions 148

6.1 Data for Project initiation layer 150

6.2 AVG for Initiation layer Table 152

6.3 Correlations Matrix for Project Initiation Layer 153

6.4 Developer Layer data 154

6.5 Developer License Relationships 155

6.6 Averages at Developer Layer 155

6.7 Developer Rank Correlation Matrix 156

6.8 Correlation Matrix for developer layer 157

xvi

6.9 Maintenance Layer Data 158

6.10 Correlation on Maintenance Layer (stable release) 159

6.11 Correlation for Maintenance Layer for Mature Projects 161

6.12 User Layer Data 164

6.13 Natural Language support - license 164

6.14 Downloads-topics covered 164

6.15 Correlation for User Layer 165

6.16 External Layer Data 167

6.17 Project Maturity Vs Downloads 168

6.18 Natural Language Correlations for External Layer 168

6.19 Project Age Correlations for External Layer 169

6.20 Further Correlations on External Layer 170

6.21 Correlation Matrix for Domain Audience 172

6.22 Licenses Analyzed on Average 172

6.23 Analysis by Project Rank by Group Average 173

6.24 Further Cross Correlations 173

6.25 Project Age vs. Downloads 174

6.26 Forges on Flossmole Projects 176

6.27 Project Environment Frequency Analysis 184

6.28 Intended Audience description 185

6.29 Position of Contributors 186

xvii

6.30 License description 187

6.31 Operating system description 188

6.32 Programming Language Analysis (Flossmole) 189

6.33 Development Status 189

6.34 Comparative Study of SourceForge and Flossmole 191

7.1 Summary of Open Onion Delphi Validation Process 196

7.2 Delphi Round 1: Initial Survey 201

7.3 Delphi Round 1 Onion Layers Survey 201

7.4 Delphi Round-2 Result for Project Initiation Layer 204

7.5 Delphi Round-2 Result for developer layer 205

7.6 Delphi Round-2 Result for maintenance layer 206

7.7 Delphi Round-2 Result for user layer 207

7.8 Delphi Round-2 Result for external layer 208

7.9 Analysis of Delphi Round-2 (initiation layer) 211

7.10 Analysis of Delphi Round-2 (developer layer) 212

7.11 Analysis of Delphi Round-2 (maintenance layer) 214

7.12 Analysis of Delphi Round-2 (user layer) 215

7.13 Analysis of Delphi Round-2 (external layer) 217

7.14 Delphi Round-3: User Satisfaction Survey 219

7.15 Delphi round-4 Experts’ Responses 222

xviii

LIST OF FIGURES

FIGURE NO TITLE PAGE

2.1 Market Share for Top Servers (Netcraft, 2008) 23

2.2 Waterfall Model Adapted from Royce (1987) 31

2.3 Spiral Model of Software Development (Boehm, 1996) 32

2.4 task_struct in Linux Kernel (Johnson and Troan, 2005) 37

2.5 Apache incubation process (Wahyudin and Tjoa, 2007) 40

2.6 Open source projects organization (Crowston 2003) 43

2.7 General Structure of an OSS Community (Kumiyo et al., 2002) 43

2.8 Linux Kernel Onion Adapted from (Antikainen et al., 2007) 44

2.9 Linux Kernel - Google Image 44

2.10 Onion Model (Herraiz et al., 2006) 45

3.1 Research Approach 57

4.1 Openbravo’s Architecture 77

4.2 ZK on Android 81

4.3 ZK spreadsheet component 82

4.4 Adempiere Application Framework (SourceForge) 85

4.5 Adempiere System Migration Architecture (SourceForge) 86

xix

4.6 Notepad ++ Arabic window screenshot 89

4.7 Notepad++ prints source codes in colors 89

4.8 Scripts on ScummVM 92

4.9 WinMerge File compare window 94

4.10 Eclipse Checkstyle plug-in screenshots 98

4.11 STAX Monitor showing a STAX Job Executing Testcases 105

4.12 STAFProc Daemon Output on Windows 105

4.13 Starting STAFProc (a daemon) on Linux 106

4.14 Project Rank Calculation (SourceForge) 110

5.1 Open Onion Model 125

5.2 Conceptual Framework 127

5.3 Initiation layer Modeling 131

5.4 Open Source Project Planning Phase 132

5.5 Developer Layer Modeling 135

5.6 Maintenance Layer Activities Phases 137

5.7 Maintenance Layer Flowchart Diagram 138

5.8 Sequence Diagram for Open Source Bug tracking system 139

5.9 A model of User Layer 140

5.10 Open Source Adoption and Implementation in Malaysia 142

5.11 Synthesized Open source success tree** 144

6.1 Main Schema for Flossmole Data Sources (Flossmole) 178

xx

6.2 Flossmole Project Environment Distribution Chart 179

6.3 Flossmole Skilled Vs Unskilled Developer Chart 180

6.4 Distribution of Open Source Project community 181

6.5 Flossmole Project Development Status 181

6.6 Flossmole Stable Vs Unstable Projects 182

xxi

LIST OF DEFINITIONS

DEFINITION TITLE PAGE

2.1 Quality Means User Satisfaction (Glass, 1998) 47

2.2 Quality from Line of Code perspective 48

4.1 Total Rank Score (SourceForge) 109

5.1 Proposed Open Source User Satisfaction Metrics 146

6.1 Regression for User Interface against Topics Covered 156

6.2 Regression for User Interface against Operating System 157

xxii

LIST OF ACRONYMS

ACRONYM TITLE

RANK Open source project rank on SourceForge

DA Domain audience

UI No of User Interface

TC Topics Covered

DS Development Status

ND No of Developers

NA No of Admin

%CD % Core admin/ developers

OS Operating system support

NF No of Forums

LT License Types

PL Programming Language

NL Natural Lang. Support

ML No of Mailing List

%BO % of bug open total bug

YR Year registered

xxiii

DD Download volume

FM No of forum messages

%CC % of CVS commit to the total submissions

FR No of feature requests

TB Total bug posted

RDA Relative downloads per age (age calculated from year

registered to Dec 2009)

BO Bugs open

BC Bugs closed

COTS commercial off the shelf software

FOSS Free/open source software

OSS open source software

CATHEDRAL Commercial software development model

BAZAAR Open Source development model (freedom to share)

xxiv

LIST OF APPENDICES

APPENDIX TITLE PAGE

A INTERNATIONAL PUBLICATIONS 276

B OPEN ONION CODING AND ANALYSIS 278

C OSS ADOPTION IN MALAYSIA 283

D OPENBRAVO ERP SAMPLE REPOSITORIES LIST 284

E ANALYSIS OF FLOSSMOLE PROJECT 284

F LIST OF EXPERTS 296

G DELPHI VALIDATION ROUNDS 297

H DELPHI EXPERT’S BACKGROUND 315

1

1. Introduction

CHAPTER 1

INTRODUCTION

This chapter introduces the current research. It is organized into three major

parts. First, the research background which states the problem, research assumptions,

questions, objectives and scope of research. This is followed by, significance of the

research. The final part spells out the thesis organization.

1.1. Problem Background

Today, software developments are faced with steadily increasing

expectations: software has to be developed faster, cheaper and better. There are also

urgent quests for what makes some software succeed over another despite the fact

that user requirements usually change middle way and at the same time, application

complexity increases. Meeting all these demands requires an ability to continuously

reuse past available and compatible codes in order to evolve high quality software. It

could be deduced from Charles (1992) that quality software is not achievable within

reasonable costs and budget time except it is able to reuse past “reusables”. A

software artifact that is used in more than one context (projects) with or without

modification is considered reusable.

2

1.1.1. Conventional Software Development Paradigms

The pursuit of technologies for building systems faster, with lower cost and

higher quality has led to the advances in software technologies such as component

based system development, object orientation, service oriented architecture, software

reuse and open source. One of the most important benefits that reuse or revamp

delivers is quality. Software reuse is a fundamental approach to accelerate the

production of high quality software and this is achievable by its ability to provide the

benefit of faster, better and cheaper software development processes. Reuse

standards are emphasized in McClure (2001). It is a process of building or

assembling software applications and systems from previously developed software

parts designed for reuse. Software reusability saves time to market; reduces software

development cost and improves quality of the resulting software; (IEEE STD 1517,

2004, Fichman and Kemerer, 1997 and George, 1997).

Interestingly, most of the earlier software development technologies have

some shortcomings which could be addressed with open source. For example, in

component technology, level of component cohesion and coupling actually affect

customization and project integration, architectural mismatch/complexities are real

issues.

In object orientation, inheritance, high cost and risk of early adoption of

object orientation are real issues (Kai et al., 1999). With software reuse

methodologies, lack of tools to support the problem solving process of locating

relevant reuse components hinders the effectiveness of the approach. Open Source on

the other hand, provides availability of source codes at “Zero-cost” which is a

leading edge in developing cheaper, faster and high quality software systems.

Object-oriented software development methodologies have been around for

close to two decades, but many of the problems associated with these methodologies

at the beginning still remain unresolved (Raman and Richard, 2008). With object

orientation, there is need for compositionality; that is, OO languages do not support

the specification of an explicit typed “Inheritance Interface” for programmers who

3

develop subclasses (Meijler and Nierstrasz, 1995). Often, object oriented problems

are complete specifications of objects, attributes, structures, services, subjects as well

as the degree to which members within a class are related to one another is often

difficult to identify.

Another short coming of object orientation is that system modification,

maintenance and testing can be difficult because of inheritance and behavior

overriding. Replacement of object with a new object that implements changes to the

business may impact all other objects that have inherited properties of the replaced

object and this may lead to excessive testing of the whole system; (Fichman and

Kemerer, 1997 and Gregor and Erik, 2001). Object oriented approach could only

support reuse of object type definition (classes) at implementation (runtime) level as

described in Fichman and Kemerer (1997) and in Qureshi and Hussain (2008).

Various case studies have also illustrated the high cost and risk of early

adoption of object orientation. This includes the difficulty of achieving systematic

reuse in practice by Fichman and Kemerer (199) and as presented in Kai et al.,

(1999). Clearly, there are problems of which neither procedural nor object oriented

programming techniques are sufficient. Moreover, the degree to which members

within a class are related to one another is often difficult to identify (Kiczales et al.,

1997).

In the IEEE software reuse guide IEEE-STD 1517 (2004), it was stated that

major shortcoming of objects is that they do not scale up well when used to build

large, complex systems because they are too fine-grained and at too low an

abstraction level.

Furthermore, component technology suggests that components could easily

be acquired and integrated together or with some other ‘components’ or within an

on-going software development projects and then have much better application being

developed. However, the cornerstone of a component based development

technology is its underlying software component model, which defines components

and their composition mechanisms. However, current models use objects or

4

architectural units as components; which are not ideal for component reuse or

systematic composition (Kung-Kiu and Zheng, 2007).

Object oriented languages and models do not support concurrency and

distribution while actual component model such as Common Object Request Broker

Architecture (CORBA) is designed to support interoperability rather than software

composition and is not intended to support application evolution (Nierstrasz, 1995).

Component technology on the other hand encourages the design of pluggable

individual software units. These component units were to be plugged into an

application easily to enhance the operations of such application or probably to

develop an entirely new application. According to Meijler and Nierstrasz (1995),

such components comprise simulation components, as well as visualization,

animation and statistical components. Component technology offers advantages of

being easily customized to meet current business needs and modifiable to meet

changing business needs over time. Software components contains valuable existing

functionality wrapped into ‘reusable’ components, this makes it possible to compose

a mixture of pre-developed components that preserve a business’ core functionality

and new components that take advantage of the newest technologies, such as the

internet. Paradigm examples of software components are objects written in

programming languages such as Smalltalk, C++, Java and some other parts like

Active X controls (IEEE-STD 1517, 2004).

However, component technology also exhibits certain setbacks in the area of

determining the level of cohesion and coupling of components. It is also difficult for

developers to adapt a component to a new platform if it were not developed for that

platform (Qureshi and Hussain, 2008). Other difficulties associated with the

component technology are the architectural mismatch or architectural complexity

which results in some other component disadvantages. For example, customization

and integration of already developed software components according requirement of

new application is a major issue in component technology. It is also difficult for

developers to adapt a component to a new platform if it were not developed for that

platform.

5

In Staringer (1994) it was made known that component libraries are probably

the dominant paradigm for software reuse, and that they suffer from lack of tools that

support the problem-solving process of locating relevant components. This explains

why the it is difficult to agree with the abstract of Gill and Grover (2003) where in,

after identifying the urgency for Software industries to strive for new techniques and

approaches that could improve software developer productivity, reduce time-to-

market, deliver excellent performance and produce systems that are flexible,

scalable, secure, and robust., then it was added: “Only software components can

meet these demands”. This research disagrees with Gill on this part going by the

afore-mentioned weaknesses of component technology.

In the conventional software reuse, the lack of incentive is a significant

discouraging factor impending on reuse investors which invariably implies that

customers would have to pay more if reuse is eventually implemented without

adequate financial compensations in terms of incentives from the stakeholders

(James and Chester, 1991). The studies carried out by Karma and Ajay, (1999)

revealed that reuse in practice is more demanding than the perceived benefit of reuse

such as ease of use and code compatibility and this they said has led to some of the

barriers to software reuse adoption.

In software development firms, it is required to commit an initial investment

to reuse in order to incorporate the needed software reuse programs, as observed in

Isoda (1995), so as to generate long-term savings including life-cycle benefits such

as maintenance (Banker and Kauffman, 1992) and (Basili, 1990). However, the reuse

program success depends on standards and tools provided to developers, on the

certification of software Knight and Dunn (1998), as well as on the incentives for

developers to reuse (Poulin, 1995).

Ironically, it implies that none of these paradigms (component technology,

object orientation and software reuse) have been able to effectively independently

justify its capabilities of evolving high quality software cheaper and quicker. The

edged which open source has over all is its capability to avail the source codes at

relatively no cost in an easy-to-use format.

6

Notable academic research activities have been conducted in the field of open

source. It was observed from Madey et al.(2003); Gao and Madey (2007); Jin et al.

(2005); Jin Xu and Madey (2006), Oostendorp (2009); Rajdeep et al. (2006) and

Zheng et al. (2008) that most of the open source research activities are based on the

social network analysis of open source development. Feitelson et al. (2006)

conducted a research based on the distribution downloads as a yardstick for

measuring a successful open source project. Timo and Virpi (2005) were focused on

the maintenance process of open source as a way of mapping the maintenance

activities of the chosen open source case studies to the existing ISO/IEC maintenance

standards. Scotto et al. (2007) conducted a research on mining the open source

repository.

In Zhao and Elbaum, (2003), survey on open source quality assurance

activities were mainly based on testing phases of the software development where it

was reported that there is need for more research on identifying the most efficient

procedure to deploy and carry out quality assurance activities in open source.

Presently, most investors do not fully understand the open source model. The

commercial models have well-defined profit motive, yet they are still developing and

consequently unpredictable (Peeling and Satchell, 2001).

However, numerous issues could be identified within the context of the open

source development model. Some of which are the Profitability, Security,

collaborative, testing, interoperability, legal issues and acceptable software process

model for open source development. For the purpose of defining the research

boundary, the development of a layered software process model to support open

source development would be focused in this research.

1.1.2. Open Source Approach to Software Development

Basically, there are two broad developmental paradigms of software

development methodologies. Software could either fall under the category of

commercial off the shelf software (COTS) or Free/open source software (FOSS),

7

henceforth referred to as open source software (OSS). This dichotomy results in a

sharp difference between OSS development process and the traditional COTS

models. According to Hansen (1999) both COTS and the advent of open source

distributions have placed new requirements on software deployment by introducing

new complexities to configuration management.

In the corporate COTS model, development is done under the aegis of COT

vendor who views the codes as valuable intellectual property and controls when

versions of the software are released. The open source, in contrast is a community-

based development which thrives with or without the presence of the original

initiator of the project (Mockus et al., 2002), (Ferenc et al., 2004), (Jack, 2001) and

(Kavanagh, 2004). Open source is an alternative paradigm, which encourages open

access to source codes for further reuse and modifications. This goes a long way in

addressing most of the core issues in software crisis such as software development

time frame and software exceeding budgets. Attempts to handle some of the crisis

have led to advances in research in the areas of perceptions on software quality.

In traditional software development paradigms, there is little evidence of

developer views being sought or incorporated into specific quality initiatives (Wilson

and Hall, 1998). This has a direct impact however, on the quality of software that the

practitioner produces. Early measurement of users’ perception, which usually

changes with time as they progressively become more acquainted with the software

product, was suggested in Stavrinoudis et al. (2005) with a view to improving

software quality and reducing the common software crisis.

The success of Linux and Apache has strengthened the opinion that the open

source paradigm is one of the most promising strategies to enhance the maturity,

quality, and efficiency of software development activities (Fuggetta, 2003). In open

source development methodology, developers who are geographically dispersed

usually work together to produce software. It is a collaborative development

paradigm characterized by various developers (usually volunteers) and users broadly

geographically dispersed.

8

However, open source mode of operation and robust functioning also poses

novel and fundamental questions for research on principles by which productive

open source work can best be organized since the open source community is mostly

comprised of ‘volunteer’ developers, with differing styles and agendas, who develop

and debug the codes in parallel (Georg and Eric, 2003).

The success of several open source software systems has recently generated

interest in studying and emulating the software engineering principles underlying this

innovative development. Paradigm examples of successful open source development

projects include: Apache web server, Bind provides DNS (Domain Name Service)

for the Internet, Sendmail is the widely used e-mail transport software on the

Internet, Emacs is a program text editor, Linux is an operating system kernel, as well

as other Linux-based operating systems such as Ubuntu and Fedora.

Open source software (OSS) has become the subject of much commercial

interest of late. It addresses most of the core issues in software crisis such as software

development time, software exceeding budget as stated in Caliber (2006) and

Fitzgerald (2005). Open source goes a long way in accelerating the software

development process through ‘software evolution methodology’ and since it is

mostly free, the acquisition cost is close to zero and is affordable.

The major motivation behind open source is that when programmers can

read, distribute, and modify source code for a piece of software, ‘the software

evolves’ (Yunwen and Kishida, 2003). Open source simply is software with its

source code available which may be copied, used and redistributed with or without

modification. Ideally, open source software is software whose source code is openly

published, and is usually available at no charge, and which is often developed by

voluntary efforts. It is a term used to describe the tradition of open standards, shared

source code, and collaborative development. The most common type of reuse in open

source is code reuse (Koch and Neumann, 2008; Mockus, 2007; Stefan, Georg and

Sebastian, 2008). Open source developers reuse codes because they want to integrate

functionality quickly and because they can mitigate development cost through code

reuse.

9

It is therefore not surprising to note that many firms and governments have

adopted open-source software, since this enables these organizations to reduce costs.

However, economists have found it difficult to understand the supply side of open-

source innovation, especially the labour supply (Siegel and Wright, 2007).

However, the open-source approach is the software industry’s most

successful form of large-scale software reuse. Open-source software offers the most

impressive range of reusable assets for any software project. Open-source software is

available for virtually all activities, runs on every platform, and can be used in almost

every business domain for which software is written (Booch, 2002).

1.1.3. Issues in Open Source Software Development

Numerous issues could be identified within the context of the open source

development model. Paradigm examples of such issues are empirical issues Dalle et

al (2008), problems associated with uses of open source by some software vendors as

discussed in Herwig and Kris (2005), architectural issues in Lennerholt et al. (2008)

and issues of trust in Orsila et al. (2009). Other issues are profitability, security,

collaborative, testing, interoperability, legal issues and acceptable software

engineering standards.

It is interesting to note that most software investors do not fully understand

the open source model, its profitability model is still developing and therefore

unpredictable (Satchell, 2001). Most of the problems with some software that fail the

market acceptability is that the development could not have been funded

continuously until the software attains a high level of quality to be readily accepted

by the community. Some proprietary software (e.g. Microsoft Windows NT) has

been continuously supported by the resource and management committee of the

particular software product to continue pushing the products that they believe in for

as long as it takes for them to take off.

10

Open source however solves this problem by having a zero cost base; so

running out of capital (money) is not a problem as long as the group of developers

(community) maintains their interest, the project (software development) keeps on

going. Also, the ability for users to acquire complete software without having to sign

licenses and make financial case to their management; aids initial take off.

In open source development, creativity is more prevalent and the belief that

defects are found and fixed more rapidly in open-source projects were confirmed in

Paulson et al. (2004). The open source is an effective practice which has evolved as a

set of customs, transmitted by imitation and example, without the theory or language

to explain why the practice worked. However, lacking the theory and language

hampered the open source community in two ways: It would be difficult to think

systematically to improve the development method and it would be very difficult to

explain or show the method to anyone else (Raymond, 1999).

Most often, open source development is described based on case studies

(Mockus et al., 2002) and (Gurbani et al., 2006). This is because open source

development does not follow a strict software development methodology unlike the

traditional software development which follows strictly, some software models such

as the water fall and Spiral. However, the necessity to map software development

within open source precepts into some ‘well understood’ software development

stages is therefore indispensable and it is the focus of this research.

Interestingly, the open source phenomenon works, however with lack of

theory to explain why and how the open source model works which hampers the

open source community in two ways according to Raymond (1999), saying that it

becomes difficult to think systematically to improve the model and difficult to

explain or teach how the model works. These imply that there is need for concrete

software process models to support open source development processes which open

onion model presents in this research. Numerous successful open source projects

point at the fact that the open source model is viable; for example, Linux kernel

development, Apache development and Mozilla development.

11

Interestingly, successful open source software (OSS) developments are quite

different from one another. For example, Apache allows for volunteers to take part in

all activities while in Mysql, development is done internally within the company of

Sun Microsystems. An attempt to streamline the development has yielded the issue

of open source being synonymous to “Onion”. Therefore, the Open Source

development is usually described with onions as presented in (Crowston and

Howison (2003); Kumiyo et al. (2002); Antikainen et al (2007) and Herraiz et al.,

(2006).

Major challenge with previous open source onion models was the validation

process as discussed in Crowston et al. (2004) which states: “The onion model of

open source has a good-face validity which requires the onion to be put to further

test”

This research presents the open onion model which has gone a step further in

providing empirical evaluation and Delphi experts’ validation across each layer of

the open source onion model as well as the development and validation of open

source user satisfaction metrics.


Recommended