Journal of Information Technology Education on the Prospects and Concerns of Integrating Open Source Software Environment in Software Engineering Education Prospects and Concerns of Integrating Open Source Software Environment Background and Related Work

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. …

[1]  Karl Weigers Creating a Software Engineering Culture , 1996 .

[2]  Shoaib Qureshi How Practical is a Code of Ethics for Software Engineers Interested in Quality? , 2004, Software Quality Journal.

[3]  D. Spinellis,et al.  How is open source affecting software development? , 2004, IEEE Software.

[4]  P. Krutchen,et al.  The Rational Unified Process: An Introduction , 2000 .

[5]  Winfried Seidel,et al.  Open Source Software: Leveraging Software Quality in the Industrial Context , 2022 .

[6]  Paul Kavanagh,et al.  The Open Source Definition , 2004 .

[7]  Sameer Verma Software Quality and the Open Source Process , 2009 .

[8]  Ivar Jacobson,et al.  The Unified Modeling Language Reference Manual, Second Edition , 2005 .

[9]  Tim O'Reilly,et al.  What is Web 2.0: Design Patterns and Business Models for the Next Generation of Software , 2007 .

[10]  Rudy Rucker,et al.  Software Engineering And Computer Games , 2002 .

[11]  Hanan Lutfiyya,et al.  Experiences with a software maintenance project course , 2000, IEEE Trans. Educ..

[12]  Douglas C. Schmidt,et al.  Leveraging Open-Source Communities To Improve the Quality & Performance of Open-Source Software , 2001 .

[13]  Karim R. Lakhani,et al.  Perspectives on Free and Open Source Software , 2005 .

[14]  Shari Lawrence Pfleeger,et al.  Software metrics (2nd ed.): a rigorous and practical approach , 1997 .

[15]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[16]  Jesús M. González-Barahona,et al.  Libre Software for Computer Science Classes , 2000, IEEE Softw..

[17]  John Long Software reuse antipatterns , 2001, SOEN.

[18]  James A. Landay,et al.  The Design of Sites: Patterns, Principles, and Processes for Crafting a Customer-Centered Web Experience , 2002 .

[19]  Alex Koohang,et al.  Open Source: A Metaphor for E-Learning , 2005, Informing Sci. Int. J. an Emerg. Transdiscipl..

[20]  S. B. Kiselev,et al.  The capability maturity model: guidelines for improving the software process , 1995 .

[21]  Mary Shaw,et al.  Software engineering education: a roadmap , 2000, ICSE '00.

[22]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[23]  David Probert,et al.  Quality practices and problems in free software projects , 2005 .

[24]  Benno Luthiger Fun and Software Development , 2005 .

[25]  Pekka Abrahamsson,et al.  Is Open Source Software Development Essentially an Agile Method , 2003 .

[26]  Michael Weiss,et al.  Evolution of Open Source Communities , 2006, OSS.

[27]  Roger S. Pressman,et al.  Web Engineering , 2001, Lecture Notes in Computer Science.

[28]  Eugene Miya,et al.  On "Software engineering" , 1985, SOEN.

[29]  Norman L. Kerth,et al.  Project Retrospectives: A Handbook for Team Reviews , 2001 .

[30]  Dave Thomas,et al.  Open Source Ecosystems , 2004, IEEE Softw..

[31]  Bonnie Lee Appleton Patterns and Software: Essential Concepts and Terminology , 1997 .

[32]  Ulf Asklund,et al.  Configuration Management for Open Source Software , 2001 .

[33]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[34]  Nik Boyd,et al.  Using Natural Language in Software Development , 1999, J. Object Oriented Program..

[35]  Robert L. Glass,et al.  Facts and fallacies of software engineering , 2002 .

[36]  Vangalur S. Alagar,et al.  Specification of Software Systems , 1998, Graduate Texts in Computer Science.

[37]  Michael A. Cusumano Reflections on free and open software , 2004, CACM.

[38]  Bernard Wong Different Views of Software Quality , 2006 .

[39]  Kevin Crowston,et al.  The social structure of free and open source software development , 2005, First Monday.

[40]  Robert T. Clemen,et al.  Making Hard Decisions: An Introduction to Decision Analysis , 1997 .

[41]  Mark Aberdour A people-focused , 2022 .

[42]  J. Edwards Genetic Epistemology , 1971 .

[43]  Budi Arief,et al.  focus developing with open source software The Many Meanings of Open Source , 2022 .

[44]  Esther Derby,et al.  Agile Retrospectives: Making Good Teams Great , 2006 .

[45]  Ken Martin,et al.  An Open Source Approach to Developing Software in a Small Organization , 2007, IEEE Software.

[46]  Aniruddha S. Gokhale,et al.  Techniques and processes for improving the quality and performance of open-source software , 2006, Softw. Process. Improv. Pract..

[47]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[48]  T.C. Lethbridge,et al.  Guide to the Software Engineering Body of Knowledge (SWEBOK) and the Software Engineering Education Knowledge (SEEK) - a preliminary mapping , 2001, 10th International Workshop on Software Technology and Engineering Practice.

[49]  Eric S. Raymond,et al.  The Art of Unix Programming , 2003 .

[50]  A. J. Cowling,et al.  The role of modelling in the software engineering curriculum , 2005, J. Syst. Softw..

[51]  Bernard Golden,et al.  Succeeding with Open Source , 2004 .

[52]  Eric S. Raymond,et al.  The Cathedral & the Bazaar , 1999 .

[53]  Norman E. Fenton,et al.  Point-Counterpoint: Do Standards Improve Quality? , 1996, IEEE Softw..

[54]  Ellis Horowitz,et al.  Software Cost Estimation with COCOMO II , 2000 .

[55]  Chris DiBona,et al.  Open Sources: Voices from the Open Source Revolution , 1999 .

[56]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .