How to Combine Nonmonotonic Logic and Rapid Prototyping to Help Maintain Software

This paper explores the possibility of automated support for detecting inconsistencies in software systems and requirements. The inconsistencies are introduced when the environment of the software system changes. We refer to the software environment as its context. We review the recent research progress on nonmonotonic logics, pointing out the significance of these results to software maintenance. We explain how a practical implementation of such logics can be obtained via a simple extension to logic programming in the form of an answer procedure that realizes the Extended Logic Semantics [7] for nonmonotonic logic programs that have a unique answer set (which is a large and useful class of logic programs). We augment the existing automated capabilities of the Computer-Aided Prototyping System (CAPS) for rapid prototyping via the extension to logic programming to provide an improved automated capability for detecting certain kinds of inconsistencies created by implicit requirements changes. We illustrate the significance of this capability via an example prototype for a problem originally suggested by Lehman.

[1]  Raymond Reiter,et al.  A sound and sometimes complete query evaluation algorithm for relational databases with null values , 1986, JACM.

[2]  Luqi,et al.  A Prototyping Language for Real-Time Software , 1988, IEEE Trans. Software Eng..

[3]  John McCarthy,et al.  Circumscription - A Form of Non-Monotonic Reasoning , 1980, Artif. Intell..

[4]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

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

[6]  Luqi,et al.  A computer-aided prototyping system , 1988, IEEE Software.

[7]  Harlan D. Mills Software Development , 1976, IEEE Transactions on Software Engineering.

[8]  Luqi,et al.  The management of uncertainty in software development , 1992, [1992] Proceedings. The Sixteenth Annual International Computer Software and Applications Conference.

[9]  Drew McDermott,et al.  Nonmonotonic Logic II: Nonmonotonic Modal Theories , 1982, JACM.

[10]  David D. McDonald,et al.  Programs , 1984, CL.

[11]  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.

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

[13]  Robert C. Moore Semantical Considerations on Nonmonotonic Logic , 1985, IJCAI.

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

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