A knowledge-based approach for checking software information using a non-monotonic reasoning system

In this paper, the knowledge representation of software component relations using non-monotonic logic to assist the validity and integrity checking of software information is presented. Software components and their interconnection information are represented by axioms. These axioms exhibit the structure and behaviour of the software system. Another set of axioms represents the basic truisms about a software system in general. These axioms can easily be extended to cover a wide variety of software systems architectures. In the software development and maintenance phases, information about the software system can be derived from these axioms using an automated reasoning system, and the software system itself can easily be checked against a specification of the system and compared for validity. The developed knowledge-based system will be able to provide programmers useful software information and assist the software development and maintenance process.

[1]  Raymond Reiter,et al.  A Logic for Default Reasoning , 1987, Artif. Intell..

[2]  Elaine Kant,et al.  On the Efficient Synthesis of Efficient Programs , 1983, Artif. Intell..

[3]  Jeffrey J. P. Tsai A Knowledge-Based Approach to Software Design , 1988 .

[4]  D. Barstow An Experiment in Knowledge-Based Automatic Programming , 1986, Artif. Intell..

[5]  Mehdi T. Harandi,et al.  Intelligent Support for Software Specification and Design , 1986, IEEE Expert.

[6]  Drew McDermott,et al.  Non-Monotonic Logic I , 1987, Artif. Intell..

[7]  Atul Prakash,et al.  Software Engineering: Problems and Perspectives , 1984, Computer.

[8]  Carlo Ghezzi,et al.  Programming language concepts , 1982 .

[9]  Ronald J. Brachman,et al.  What IS-A Is and Isn't: An Analysis of Taxonomic Links in Semantic Networks , 1983, Computer.

[10]  Jeffrey J. P. Tsai,et al.  Intelligent support for specifications transformation , 1988, IEEE Software.

[11]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .

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

[13]  Stephen S. Yau,et al.  A survey of software design techniques , 1986, IEEE Transactions on Software Engineering.

[14]  Frank Harary,et al.  Graph Theory , 2016 .

[15]  Stephen S. Yau,et al.  Knowledge Representation of Software Component Interconnection Information for Large-Scale Software Modifications , 1987, IEEE Transactions on Software Engineering.

[16]  Robert Balzer,et al.  A 15 Year Perspective on Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[17]  Ronald J. Brachman,et al.  "I Lied About the Trees", Or, Defaults and Definitions in Knowledge Representation , 1985, AI Mag..

[18]  John Darlington,et al.  An Experimental Program Transformation and Synthesis System , 1986, Artif. Intell..

[19]  Jeffrey J. P. Tsai,et al.  GRAPH DESCRIPTION LANGUAGE FOR LARGE-SCALE SOFTWARE SPECIFICATION IN A MAINTENANCE ENVIRONMENT. , 1984 .