Maintaining AMMBER – Lessons Learned from Involving Students in Software Maintenance
Software engineering activities have shifted from building new systems to maintaining 2
code bases. Yet teaching software engineering rarely echoes that reality. It is easier to teach 3
students to develop software from scratch rather than guide them to maintain an existing 4
project by suggesting and implementing modifications and enhancements. We believe that 5
the best way to teach maintenance is through practical experience. This paper describes the 6
evolution of an agent modelling tool called AMMBER. It started as a software engineering 7
team project eight years ago. Tens of students have been involved in the subsequent years 8
in maintaining and extending the software through projects in capstone units, internships 9
and casual employment. The paper authors are the current team maintaining the software. 10
The maintenance activities have included corrective maintenance, adaptive maintenance 11
and perfective maintenance, and we describe lessons learned through our failures and 12
successes. We advocate exposing students to maintenance activities on active code bases 13
and share lessons learned about increasing the capability of software engineering students 14
to usefully perform maintenance activities.