As the development and use of open source software (OSS) becomes prominent, the issue of its outreach in an educational context arises. The practices fundamental to software engineering, including those related to management, process, and workflow deliverables, are examined in light of OSS. Based on a pragmatic framework, the prospects of integrating OSS in a traditional software engineering curriculum are outlined, and concerns in realizing them are given. In doing so, the cases of the adoption of an OSS process model, the use of OSS as a computer-aided software engineering (CASE) tool, OSS as a standalone subsystem, and open source code reuse are considered. The role of openly accessible content in general is discussed briefly.
Key Terms in this Chapter
Agile Development: A philosophy that embraces uncertainty, encourages team communication, values customer satisfaction, vies for early delivery, and promotes sustainable development.
Coding Standard: A documented agreement that addresses the use of a formal (such as markup or programming) language.
Software Pattern: A reusable entity representing knowledge and experience aggregated by an expert in solving a recurring problem in a domain.
Software Engineering: A discipline that advocates a systematic approach of developing high-quality software on a large scale while taking into account the factors of sustainability and longevity as well as organizational constraints of time and resources.
Pair Programming: A practice that involves two people such that one person (the primary person or the pilot) works on the artifact while the other (the secondary person or the copilot) provides support in decision-making and provides input and critical feedback on all aspects of the artifact as it evolves.
Domain Model: A simplified abstraction from a certain viewpoint of an area of software interest.
Formal Specification: A software representation with well-defined syntax and semantics that is usually used to express software requirements or detailed software design.
Quality: The totality of features and characteristics of a product or a service that bear on its ability to satisfy stated or implied needs.
Complete Chapter List
Kirk St.Amant, Brian Still
Kirk St.Amant, Brian Still
Brian D. Ballentine
Francesca da Rimini
Andrea Bosin, Nicoletta Dessi, Maria Grazia Fugini
Victor van Reijswoud
M. Cameron Jones
Karin van den Berg
Vanessa P. Braganholo, Bernardo Miranda
Alessandro Nuvolari, Francesco Rullani
Marcus Vinicius Brandão Soares
Beatrice A. Boateng, Kwasi Boateng
Ralf Carbon, Marcus Ciolkowski
Bruno Rossi, Barbara Russo, Giancarlo Succi
Daniel Poulin, Andrew Mowbray
Kwei-Jay Lin, Yi-Hsuan Lin, Tung-Mei Ko
Stefano Comino, Fabio M. Manenti
Laurence Favier, Joël Mekhantar
R. Todd Stephens
Wouter Stam, Ruben van Wendel de Joode
Christoph Schlueter Langdon, Alexander Hars
Mikko Puhakka, Hannu Jungman, Marko Seppänen
Risto Rajala, Jussi Nissilä
Thomas Tribunella, James Baroody
Jacobus Andries du Preez
Leila Lage Humes
David J. Solomon
Dick B. Simmons, William Lively, Chris Nelson