Software systems are not static, but evolve. Fluctuating user requirements, commercial pressures, organisational transition and demands for interoperability (e.g. the Internet) all contribute to volatility in the software process. Increasingly, today's software engineers need systematic and methodical approaches for change management (CM). Other researchers have addressed the issue of change management in a number of ways, for example through developing dynamic software process models, developing configuration management and version control tools, provision of heuristic support to assist in change management and developing logic languages to help reason formally about change and its impact. However, most current techniques for change management in the software engineering literature have no explicit notion for re-using past history. We propose an approach, INKCA (Incremental Knowledge-Based approach to Change Analysis), which is concerned with the processes for capturing change information on software projects, and abstracting from this change information reusable change knowledge that can be reapplied on future projects. We emphasise the incremental nature of our approach as it is recognised that a body of reusable change knowledge will evolve and be refined over time as more change information is collected. We are carrying out our research in the context of a real -world problem in collaboration with SDS (Software Development Services) which is a small commercial organisation that specialises in the development of Customer Complaints Systems (CCSs). In this paper we present a brief overview of the INKCA approach and then focus on the tool support for the INCKA process using case-based reasoning (CBR) technique. The proposed tool architecture is also presented with some examples.