Abstract: | The maintenance of a software system requires a tool for impact analysis and the propagation of change. This paper presents a knowledge-based model for both. This model is generic because it is not based on any language or design method. Therefore, it can be applied on the basis of ‘problem’ to be solved. It also captures four life-cycle phases: requirement, specification, design and programming. We also provide a domain-specific view that allows the dependency analysis of fine-grain objects. Two kinds of dependencies are identified: inter-phase dependencies, these are dependency relations between the objects of the one phase and another; and intra-phase dependencies, these are dependency relations between the objects of the same phase. In order to validate this model, we also present a prototype based on two life-cycle phases: design and programming. |