Providing students with genuine software maintenance experiences can be a challenge. Practical considerations often mean that the software chosen is small and that defects are artificially introduced. This paper describes a software maintenance exercise designed to provide students with genuine experiences.
The exercise was valued at 10 percent of the course and took four weeks. The software comprised 11,000 lines of code and was the result of a previous year’s group project. A buggy version of the software was downloaded from the version control system so defects were real and not artificial. Students were required to add a new feature, which also meant they had to fix bugs. The students performed adaptive and corrective maintenance.
Each student was asked to write a report describing the process, performed changes, testing strategy, and lessons learned. These reports were analyzed by systematically coding all student comments. Table 1 shows that students commented on the recognized phases of software maintenance (for example, software understanding) and the recognized factors influencing maintenance (for example, tool support). Table 2 provides a detailed breakdown of comments about software quality as a factor influencing maintenance. Several insightful comments made by students in their reports are recounted. Most readers will be convinced that the exercise provided students with genuine software maintenance experiences.
Both tables should have had an additional column detailing the numbers of students involved in making particular comments. This would have allowed for a more precise discussion of the results.
This paper is recommended to software engineering faculty.