Teaching software engineering from a maintenance-centric view

  • Authors:
  • Swapna Gokhale;Robert McCartney;Thérèse Smith

  • Affiliations:
  • University of Connecticut, Storrs, CT;University of Connecticut, Storrs, CT;University of Connecticut, Storrs, CT

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software engineering (SE) careers are overwhelmingly devoted to maintenance and evolution of existing large software systems, rather than building such systems from ground up. Code comprehension, especially in the face of inadequate documentation and support, is a key challenge in efficiently conducting these maintenance activities. Therefore, SE courses in the computing curricula must adequately prepare the students to meet this challenge. We believe that Open Source Software (OSS) furnishes a useful source of realistic, sizeable projects for inculcating the appreciation and skills useful for comprehension and maintenance. We evaluate and observe that an OSS-based SE course emphasizing maintenance and evolution expanded students' appreciation of the difficulty in comprehending existing code and designs, especially when not well documented. We hope that this learned appreciation will encourage them to value and adopt a systematic, disciplined approach in building and documenting software systems.