Academic journal article Journal of Information Technology Education

On the Prospects and Concerns of Integrating Open Source Software Environment in Software Engineering Education

Academic journal article Journal of Information Technology Education

On the Prospects and Concerns of Integrating Open Source Software Environment in Software Engineering Education

Article excerpt

Introduction

The steady rise of Open Source Software (OSS) (Raymond, 1999) over the last few decades has made a noticeable impact on many sectors of society where software has a role to play. Indeed, the current information technology movement could be safely attributed to the relatively inexpensive, easily installable, and readily available OSS for a variety of computing devices.

The GNU is Not UNIX (GNU) software, the TeX mathematical typesetting system, the X Window System, the Linux, OpenBSD and their utilities, the K Desktop Environment (KDE), and more recently the Apache Software Project and the SourceForge, are some of the prime examples through which OSS is changing the way software is developed and used.

The discipline of software engineering (Ghezzi, Jazayeri, & Mandrioli, 2003) was born out of the need of introducing order and predictability in large-scale software development. Software engineering advocates a systematic approach to the development of high-quality software within the given time, budget, and other organizational constraints. Over the last few decades, software engineering has been also playing an increasingly prominent role in computer science and engineering curricula of institutions around the world.

This paper examines the interplay between traditional software engineering and Open Source Software Development (OSSD) from an educational standpoint.

The rest of the paper is organized as follows. We first outline the background and motivation necessary for the discussion that follows and state our position. This is followed by a detailed treatment of core software engineering practices in the light of OSS. Based on that, we then discuss the use of OSS in software engineering education (SEE). Next, some challenges and directions for future research are outlined. Finally, concluding remarks are given.

Background and Related Work

In this section, we review the definition and basic characteristics of open source, and provide motivation for the interplay of OSS and SEE.

Definition of Open Source

The concept of open source can mean different things in different contexts (Gacek & Arief, 2004; Perens, 1999) and it is therefore crucial to articulate a precise definition.

For the purposes of this paper, we will use "open source" as a single encompassing term that satisfies the following conditions: (1) non-time delimited, complete software whose source is publicly available for (re)distribution without cost to the user, (2) imposes minimal, non-restrictive licensing conditions, and (3) is itself either based on non-proprietary technologies or on proprietary technologies that conform to (1) and (2).

For example, the Java programming language is itself proprietary but its specification is publicly available and there is software based on Java that would satisfy (1) and (2). Any software that does not fall into this category is termed as non-OSS. As an example, freeware may not completely satisfy (1) and therefore is non-OSS.

OSS encourages intellectual "freedom". The notion that software should be isolated from control by a small group of vendors was pioneered under the auspices of the Free Software Foundation (FSF). Since then this idea has been adopted and extended in many ways, including that by the Open Source Initiative (OSI) and by Creative Commons.

The freedom of examination, modification, and redistribution; reduction of vendor reliance; reduction of production costs; and augmentation/flexibility in the number of software options available to users from which to choose from, are some of the advantages commonly touted of the OSS.

In the following, by an "OSS environment" we will mean the situation or mindset that includes project, process, product, and people involved in the development of an OSS.

The Engineering of Open Source Software

As the use of OSS increases, the question of how they are actually engineered garners interest. …

Search by... Author
Show... All Results Primary Sources Peer-reviewed

Oops!

An unknown error has occurred. Please click the button below to reload the page. If the problem persists, please try again in a little while.