Teaching software maintenance with open source software: Experiences and lessons
Swapna S. Gokhale, Thérèse Smith, Robert McCartney · 2013
Software Engineering (SE) careers are overwhelmingly devoted to the maintenance and evolution of existing, large software systems, where the key challenge is code comprehension especially in the face of inadequate documentation and support. SE courses must thus prepare students to meet this challenge. Open Source Software (OSS) furnishes a valuable source of realistic, sizeable projects for inculcating the appreciation and skills involved in code comprehension and evolution. This paper describes experiences and lessons learnt in using OSS projects to teach an introductory, sophomore/junior-level SE course with an emphasis on comprehension, maintenance, and evolution. Students' reactions and undertakings, acquired through participant observation and homework assignments, suggest that OSS can meaningfully illustrate comprehension and evolution difficulties. Finally, it describes the characteristics of OSS projects that are conducive to highlighting maintenance challenges.