A disturbing result on the knowledge used during software maintenance

As part of a long term project aiming at empowering software maintainers with knowledge based tools, we conducted an empirical study on the knowledge they use when doing maintenance. The study was intended as a preliminary work to get initial data on the type on knowledge used and the importance of each type of knowledge. For example, it is commonly assumed that application domain knowledge is important when doing maintenance. However nobody can tell exactly how much more important it is than Computer Science knowledge. We monitored six software engineers in two different organizations and analyzed the knowledge they used in their maintenance activity. In this paper we present and discuss some results and propose research directions from these. Our results include: the fact that software engineers rarely "search for" some new knowledge and rather work from what they already know; or the acknowledgment of a variation of the knowledge used depending on the organization one is working in. The most disturbing result is that, contrary to what is commonly assumed, the software engineers we studied seemed to make little use of application domain knowledge.

[1]  Thomas W. Reps,et al.  Identifying Modules via Concept Analysis , 1999, IEEE Trans. Software Eng..

[2]  Spencer Rugaber,et al.  On the knowledge required to understand a program , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[3]  N. Schneidewind,et al.  Towards an Ontology of software maintenance , 1999 .

[4]  Spencer Rugaber,et al.  Domain analysis and reverse engineering , 1994, Proceedings 1994 International Conference on Software Maintenance.

[5]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[6]  Timothy Lethbridge,et al.  What knowledge is important to a software professional? , 2000, Computer.

[7]  Keith H. Bennett,et al.  An agent-based approach to rapid software evolution based on a domain model , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[8]  Anneliese Amschler Andrews,et al.  Dynamic code cognition behaviors for large scale code , 1994, Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94.

[9]  Nicolas Anquetil Characterizing the KnowledgeContained in DocumentationSources , 2001 .

[10]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem : Reverse engineering , 1994 .