|Authors||A. Karahasanovic and R. Thomas|
|Title||Difficulties Experienced by Students in Maintaining Object-Oriented Systems: an Empirical Study|
|Publication Type||Proceedings, refereed|
|Year of Publication||2007|
|Conference Name||Australasian Computing Education Conference ACE 2007|
|Date Published||December 2006|
|Publisher||Australian Computer Society Inc., Vol 66|
It is widely accepted that software maintenance absorbs a significant amount of the effort expended in software development. Proper training of both university students and professional developers is required in order to improve software maintenance. Understanding cognitive difficulties the students have while maintaining objectoriented systems is a prerequisite for improving their university education and preparing them for jobs in industry. The goal of the experiment reported in this paper is to explore the difficulties of students who maintain an unfamiliar object-oriented system. The subjects were 34 students in their third year of study in computer science. They used a professional Java tool to perform several maintenance tasks on a medium-size Java application system in a seven-hour long experiment. The major difficulties were related to understanding program logic, algorithms, finding change impacts, and inheritance of the functionality. Based on these results we suggest teaching the basics of impact analysis and introducing examples of modifying larger object-oriented programs in courses on object-oriented programming.