Logic programming and software maintenance

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.

[1]  Ann Q. Gates,et al.  Languages for the specification of software , 1996, J. Syst. Softw..

[2]  Michael Gelfond,et al.  Logic Programs with Classical Negation , 1990, ICLP.

[3]  Thomas Weigert,et al.  A knowledge-based approach for checking software information using a non-monotonic reasoning system , 1990, Knowl. Based Syst..

[4]  C. V. Ramamoorthy,et al.  Maintaining the Truth of Specifications in Evolutionary Software , 1993, Int. J. Artif. Intell. Tools.

[5]  Alan M. Davis,et al.  A comparison of techniques for the specification of external system behavior , 1988, CACM.

[6]  Krzysztof R. Apt,et al.  Arithmetic classification of perfect models of stratified programs , 1991, Fundam. Informaticae.

[7]  C.V. Ramamoorthy,et al.  The correspondence between methods of artificial intelligence and the production and maintenance of evolutionary software , 1991, [Proceedings] Third International Conference on Tools for Artificial Intelligence - TAI 91.

[8]  Chitta Baral,et al.  Logic Programming and Knowledge Representation , 1994, J. Log. Program..

[9]  K. Apt Fundamenta informaticae on Logic Programming , 1990 .

[10]  Luqi,et al.  How to Combine Nonmonotonic Logic and Rapid Prototyping to Help Maintain Software , 1995, Int. J. Softw. Eng. Knowl. Eng..

[11]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[12]  Victor R. Basili,et al.  Viewing maintenance as reuse-oriented software development , 1990, IEEE Software.