Software Projects Using Free And Open Source Software: Opportunities, Challenges, And Lessons Learned

Clif Kussmaul · 2020

Software projects play a major role in software engineering (SE) education, have a long history and extensive literature, and present instructors with a variety of pedagogical options.For example, if students build an entire system, they see more of the early development stages and may have more choices, but the scope is limited and they may have to make critical decisions based on insufficient experience.If students extend or enhance an existing system (often from previous terms), they experience larger systems, but see less of the early development stages.Free and Open Source Software (FOSS) can provide useful alternatives.FOSS generally refers to software that is distributed without charge and with the original source code, so that anyone can fix defects, add enhancements, or otherwise modify the software and share their changes with others.FOSS can provide SE projects with several benefits.First, successful FOSS usually has a robust implementation, including high cohesion, low coupling, and effective tests and documentation, since many developers work on them briefly or intermittently.Second, FOSS usually has a varied user community, which demonstrates the role and value of communication and supporting tools, such as discussion forums, version control, and task or defect tracking systems.Third, students may already be familiar with FOSS as users.Faculty can help students by using a five step "USABL" model in which students use FOSS projects, study the project as a worked example, add minor enhancements, build larger components, and finally leverage FOSS for other purposes.This paper describes experiences using FOSS and this approach across a computer science (CS) curriculum and particularly in a sophomore-level SE course and in capstone software projects.First, it briefly reviews SE course and project design, and FOSS.Second, it describes the five step model, and a series of related activities, assignments, and projects.Third, it concludes with benefits and future directions.

Read the paper · More papers on PaperTik