The main objective of this short paper is to describe the relationship between software maintenance and logic programming (both declarative and procedural), and to show how ideas and methods from logic programming (in particular, methods invented by M. Gelfond) can be used in software maintenance. The material presented in this paper partly appeared in (Luqi and Cooke,
1995). The main difference is that (Luqi and Cooke, 1995) is aimed mainly at software engineers, so
it only briefly touches on the software engineering problems, while describing in great detail the
basics of logic programming. In contrast, in this paper, we assume that the corresponding logic
programming notions are well known, but describe the corresponding software engineering
applications in greater detail