Facilitating Software Maintenance and Reuse Activities with a Concept-oriented Approach

A major activity in software development is to obtain knowledge and insights about the application domain. Even though this is supported by a wide range of tools and techniques, a lot of knowledge remains implicit in the resulting artefacts (e.g. class diagrams). Examples of such implicit knowledge are amongst others the links between the different artefacts, the knowledge that is lost as a result of iterative refinements, and the knowledge that is regarded common sense by the involved parties. Most of this knowledge resides in the heads of the stakeholders, the domain experts, and the developers. As it is likely that they can no longer remember it or that they are no longer available when software reuse and maintenance activities are initiated, this poses a problem. In this paper we present a part of ongoing research in which we focus on our use of an ontology as a medium to tackle this problem. Making the different kinds of knowledge explicit will be accomplished by representing them as concepts in the ontology. Subsequently we will link these concepts to the artefacts created during analysis, design and implementation. This enables a bi-directional navigation between the concepts and the artefacts which consequently will serve as a vehicle to start reuse and maintenance activities.