A knowledge-based system for Ada® software development

In this article, we present a knowledge-based system using the concept of knowledge representation and data abstraction to support Ada software development. This article uses logic-based specification with object-oriented features to facilitate Ada software development. The Ada source code will be obtained through knowledge-based transformation. This system includes a frame-and-rule-oriented requirements language (FRORL), a predominance/particular methodology, and a knowledge base. FRORL uses frame representations for object-oriented modeling, applies production rules for specifying actions and constraints of real world domains, and provides a set of abstract mechanisms for the practical description of abstract relations. The predominance/particular methodology is used to support Ada software developers in performing object-oriented modeling of application domains. The knowledge base provides rules for specification checking, prototype validation, and transformation of specifications into Ada code. A real problem is given to illustrate the system.

[1]  Karl Lieberherr,et al.  Contributions to teaching object-oriented design and programming , 1989, OOPSLA 1989.

[2]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[3]  Thomas Weigert,et al.  A declarative approach to software requirement specification languages , 1988, Proceedings. 1988 International Conference on Computer Languages.

[4]  William F. Clocksin,et al.  Programming in Prolog , 1981, Springer Berlin Heidelberg.

[5]  Richard C. Waters The Programmer's Apprentice: A Session with KBEmacs , 1985, IEEE Transactions on Software Engineering.

[6]  David S. Touretzky,et al.  The Mathematics of Inheritance Systems , 1984 .

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

[8]  Werner Dilger,et al.  Semantic Networks as Abstract Data Types , 1983, IJCAI.

[9]  John Mylopoulos,et al.  Generalization/Specialization as a Basis for Software Specification , 1982, On Conceptual Modelling.

[10]  Richard Wiener,et al.  MODULAR SOFTWARE CONSTRUCTION AND OBJECT-ORIENTED DESIGN USING MODULA-2. , 1984 .

[11]  Nancy Martin,et al.  Programming Expert Systems in OPS5 - An Introduction to Rule-Based Programming(1) , 1985, Int. CMG Conference.

[12]  Narain H. Gehani,et al.  Ada, an advanced introduction , 1983 .

[13]  Peter Wegner On the unification of data and program abstraction in Ada , 1983, POPL '83.

[14]  Barbara Liskov,et al.  Abstraction and Specification in Program Development , 1986 .

[15]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[16]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[17]  Dallas E. Webster Mapping the design information representation terrain , 1988, Computer.

[18]  Robert Balzer,et al.  Principles of good software specification and their implications for specification languages , 1981, AFIPS '81.

[19]  Richard Fikes,et al.  The role of frame-based representation in reasoning , 1985, CACM.

[20]  Marvin Minsky,et al.  A framework for representing knowledge" in the psychology of computer vision , 1975 .

[21]  Juris Hartmanis,et al.  The Programming Language Ada Reference Manual American National Standards Institute, Inc. ANSI/MIL-STD-1815A-1983 , 1983, Lecture Notes in Computer Science.

[22]  Thomas Weigert,et al.  An explication of reasoning in multiple inheritance systems through non-monotonic horn clause logic , 1992, Inf. Sci..

[23]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[24]  O. J. Dahl,et al.  Simula Begin , 1979 .

[25]  Martin S. Feather Constructing Specifications by Combining Parallel Elaborations , 1989, IEEE Trans. Software Eng..

[26]  Oscar Nierstrasz,et al.  A Survey of Object-Oriented Concepts , 1989, Object-Oriented Concepts, Databases, and Applications.

[27]  Ed Seidewitz Object-oriented programming in Smalltalk and ADA , 1987, OOPSLA 1987.

[28]  R. Fisher Mathematics of Inheritance , 1933, Nature.

[29]  Narain H. Gehani,et al.  C: An advanced introduction , 1985 .

[30]  Mike Stark,et al.  General object-oriented software development , 1986 .

[31]  William W. Agresti,et al.  New Paradigms for Software Development , 1986 .

[32]  Alan Snyder,et al.  Encapsulation and inheritance in object-oriented programming languages , 1986, OOPLSA '86.

[33]  Bertrand Meyer,et al.  Genericity versus inheritance , 1986, OOPLSA '86.

[34]  R. Kowalski,et al.  The relation between logic programming and logic specification , 1984, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.

[35]  Alan Liu,et al.  Knowledge-based system for rapid prototyping , 1989, Knowl. Based Syst..

[36]  Tadao Murata,et al.  Detection of Ada Static Deadlocks Using Petri Net Invariants , 1989, IEEE Trans. Software Eng..

[37]  B. Dasarathy,et al.  Timing Constraints of Real-Time Systems: Constructs for Expressing Them, Methods of Validating Them , 1989, IEEE Transactions on Software Engineering.

[38]  John Mylopoulos,et al.  Capturing more world knowledge in the requirements specification , 1982, ICSE '82.

[39]  Robert A. Kowalski,et al.  Logic for problem solving , 1982, The computer science library : Artificial intelligence series.

[40]  Jeffrey J. P. Tsai,et al.  A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging , 1990, IEEE Trans. Software Eng..

[41]  Grady Booch,et al.  Software engineering with Ada , 1983 .

[42]  Jeffrey J. P. Tsai A knowledge-based system for software design , 1988, IEEE J. Sel. Areas Commun..

[43]  Marvin Minsky,et al.  A framework for representing knowledge , 1974 .

[44]  Bruce G. Buchanan,et al.  Design of Knowledge-Based Systems with a Knowledge-Based Assistant , 1988, IEEE Trans. Software Eng..

[45]  Thomas Weigert,et al.  HCLIE: a logic-based requirement language for new software engineering paradigms , 1991, Softw. Eng. J..