Organizing the Knowledge Used in Software Maintenance

Knowledge engineering emerged as a very promising area to help improve software engineering practice. One of its possible applications would be to help in solving the numerous problems that affect the software maintenance activity. Maintainers of legacy systems developed years ago with obsolete techniques and tools, and not documented, need all kinds of knowledge (application domain, programming skills, software engineering techniques, etc.) It is generally assumed that formalizing all this knowledge and recording it would be a worthwhile effort. However, research is still in a early stage and numerous questions need to be answered: What knowledge should be targeted first? Where to find this knowledge? etc. To answer these questions, one needs a precise unders tanding of what knowledge is at stake here. We, therefore, propose an ontology of the knowledge needed to perform software maintenance. This ontology would be most useful as a framework for future research in knowledge engineering for software maintenance.

[1]  Victor R. Basili,et al.  A change analysis process to characterize software maintenance projects , 1994, Proceedings 1994 International Conference on Software Maintenance.

[2]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[3]  Thomas R. Gruber,et al.  Toward principles for the design of ontologies used for knowledge sharing? , 1995, Int. J. Hum. Comput. Stud..

[4]  Dean Leffingwell,et al.  Managing software requirements: a unified approach , 1999 .

[5]  K. H. Bennett,et al.  Journal of software maintenance : research and practice , 1989 .

[6]  C. V. Ramamoorthy,et al.  An Evaluation of Knowledge Engineering Approaches to the Maintenance of Evolutionary Software , 1998, Int. J. Softw. Eng. Knowl. Eng..

[7]  John Domingue,et al.  Tadzebao and WebOnto: discussing, browsing, and editing ontologies on the Web , 1998 .

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

[9]  Nicolas Anquetil,et al.  A disturbing result on the knowledge used during software maintenance , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[10]  Mark S. Fox,et al.  An organisation ontology for enterprise modeling: preliminary concepts for linking structure and behaviour , 1996 .

[11]  Penny Grubb,et al.  Software maintenance , 1996 .

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

[13]  Carolyn B. Seaman,et al.  Practical Software Maintenance , 2000, J. Softw. Maintenance Res. Pract..

[14]  A Straw,et al.  Guide to the Software Engineering Body of Knowledge , 1998 .

[15]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[16]  Thomas M. Pigoski Practical Software Maintenance: Best Practices for Managing Your Software Investment , 1996 .

[17]  Michael Gruninger,et al.  Methodology for the Design and Evaluation of Ontologies , 1995, IJCAI 1995.

[18]  Salvatore Mamone,et al.  The IEEE standard for software maintenance , 1994, SOEN.

[19]  Janice Singer,et al.  Towards an ontology of software maintenance , 1999, J. Softw. Maintenance Res. Pract..

[20]  Meir M. Lehman,et al.  On understanding laws, evolution, and conservation in the large-program life cycle , 1984, J. Syst. Softw..

[21]  Henrik Eriksson,et al.  Knowledge modeling at the millennium : The design and evolution of Protégé-2000 , 1999 .

[22]  Dirk Deridder Facilitating Software Maintenance and Reuse Activities with a Concept-oriented Approach , 2002 .

[23]  Michael Uschold,et al.  The Enterprise Ontology , 1998, The Knowledge Engineering Review.

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

[25]  A. Gomez-Perez,et al.  Some ideas and examples to evaluate ontologies , 1995, Proceedings the 11th Conference on Artificial Intelligence for Applications.

[26]  M. Lindvall,et al.  Knowledge management in software engineering , 2002, IEEE Software.

[27]  Káthia Marçal de Oliveira,et al.  Using Domain-Knowledge in Software Development Environments , 1999 .

[28]  Steffen Staab,et al.  An extensible approach for modeling ontologies in RDF(S) , 2000 .

[29]  J. Singer Software Anthropology : Performing Field Studies in Software Companies , 1998 .