Software maintenance support for knowledge-based systems

With the increasing use of knowledge-based systems in public and private organizations, maintenance of these systems is becoming crucial. However, the main knowledge representation paradigms have not been carefully examined in terms of maintainability. In this article, we provide a synthesis of software engineering literature on software maintenance, review the state of knowledge-based systems development in practice, and, using a case study along with a number of real-world examples, explain why many practitioners are encountering problems in maintaining large knowledge-based systems. The results of the case study demonstrate that broader spectrum, mixed-representation languages are more in line with the software engineering maintenance principles than are single-paradigm languages.

[1]  Reind P. van de Riet Problems with expert systems? , 1987, Future Gener. Comput. Syst..

[2]  Ruth E. Davis Logic Programming and Prolog: A Tutorial , 1985, IEEE Software.

[3]  Timothy Koschmann,et al.  Bridging the gap between object-oriented and logic programming , 1988, IEEE Software.

[4]  Koichi Fukunaga,et al.  An experience with a Prolog-based object-oriented language , 1986, OOPSLA 1986.

[5]  Setrag Khoshafian,et al.  Object identity , 1986, OOPSLA 1986.

[6]  Leon Sterling,et al.  The Art of Prolog - Advanced Programming Techniques , 1986 .

[7]  Norman F. Schneidewind,et al.  The State of Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[8]  R. Wilensky,et al.  Common LISPcraft , 1986 .

[9]  X. Li Quality time-What's so bad about rule-based programming? , 1991 .

[10]  David S. Prerau,et al.  Knowledge acquisition in expert system development , 1987 .

[11]  Willem Jonker,et al.  Yet Another Formalisation of KADS Conceptual Models , 1992, EKAW.

[12]  Meilir Page-Jones,et al.  The practical guide to structured systems design , 1980 .

[13]  John D. McGregor,et al.  Understanding object-oriented: a unifying paradigm , 1990, CACM.

[14]  Frederick Hayes-Roth,et al.  The state of knowledge-based systems , 1994, CACM.

[15]  Sandra Marcus,et al.  Automating Knowledge Acquisition for Expert Systems , 1988 .

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

[17]  Brian R. Gaines,et al.  Modeling as framework for knowledge acquisition methodologies and tools , 1993 .

[18]  Terry Winograd,et al.  FRAME REPRESENTATIONS AND THE DECLARATIVE/PROCEDURAL CONTROVERSY , 1975 .

[19]  Daniel G. Bobrow,et al.  Expert systems: perils and promise , 1986, CACM.

[20]  Craig K. Tyran,et al.  The implementation of expert systems: a survey of successful implementations , 1993, DATB.

[21]  David Garlan,et al.  Using tool abstraction to compose systems , 1992, Computer.

[22]  M. Smith,et al.  Understanding causal feedback using the Strategic Planning System (SPS) , 1991, [1991] Proceedings. The Seventh IEEE Conference on Artificial Intelligence Application.

[23]  Ronald J. Brachman,et al.  An overview of the KL-ONE Knowledge Representation System , 1985 .

[24]  Frederick Hayes-Roth,et al.  Building expert systems , 1983, Advanced book program.

[25]  Mary Shaw,et al.  Abstraction Techniques in Modern Programming Languages , 1984, IEEE Software.

[26]  Russ Abbott,et al.  Knowledge abstraction , 1987, CACM.

[27]  William B. Gevarter The Nature and Evaluation of Commercial Expert System Building Tools , 1987, Computer.

[28]  William Mettrey,et al.  A comparative evaluation of expert system tools , 1991, Computer.

[29]  Atul Prakash,et al.  Programming in the large , 1986, IEEE Transactions on Software Engineering.

[30]  Virginia E. Barker,et al.  Expert systems for configuration at Digital: XCON and beyond , 1989, Commun. ACM.

[31]  Daniel G. Bobrow,et al.  Objects in concurrent logic programming languages , 1986, OOPSLA 1986.

[32]  Robert L. Glass,et al.  Editor's corner A tabulation of topics where software practice leads software theory , 1994, J. Syst. Softw..

[33]  Larry Press,et al.  The global diffusion of the Internet: patterns and problems , 1994, CACM.

[34]  Koichi Fukunaga,et al.  An experience with a Prolog-based object-oriented language , 1986, OOPLSA '86.

[35]  Enrico Motta,et al.  Constructing knowledge-based systems , 1993, IEEE Software.

[36]  H. Dieter Rombach,et al.  A Controlled Expeniment on the Impact of Software Structure on Maintainability , 1987, IEEE Transactions on Software Engineering.

[37]  Jeffrey M. Bradshaw,et al.  Knowledge acquisition as a constructive modeling activity , 1993, Int. J. Intell. Syst..

[38]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[39]  Roger Schultz,et al.  Selecting a shell , 1987 .

[40]  D. Diaper,et al.  Knowledge Elicitation: Principles, Techniques and Applications , 1989 .

[41]  J. Keyes,et al.  Why expert systems fail , 1989 .

[42]  Peter A. Swaby Knowledge‐based systems for management decisions , 1990 .

[43]  A. L. Kidd,et al.  Knowledge acquisition for expert systems: a practical handbook , 1987 .

[44]  Jay Liebowitz,et al.  Expert systems for business and management , 1990 .

[45]  Valdis Berzins,et al.  Abstraction-based software development , 1986, CACM.

[46]  Guus Schreiber,et al.  KADS : a principled approach to knowledge-based system development , 1993 .

[47]  Sol J. Greenspan On the role of domain knowledge in knowledge-based approaches to software development. , 1985 .

[48]  Premkumar T. Devanbu,et al.  LaSSIE: a knowledge-based software information system , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[49]  Terry Anthony Byrd,et al.  Implementation and Use of Expert Systems in Organizations: Perceptions of Knowledge Engineers , 1992, J. Manag. Inf. Syst..

[50]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[51]  Bertrand Meyer,et al.  Reusability: The Case for Object-Oriented Design , 1987, IEEE Software.

[52]  Alessandra Cherubini,et al.  An integrated expert-system builder , 1989, IEEE Software.

[53]  Robert A. Kowalski,et al.  The early years of logic programming , 1988, CACM.

[54]  Enrico Motta,et al.  The Emerging VITAL Workbench , 1993, EKAW.

[55]  Ragui Kamel,et al.  Effect of Modularity on System Evolution , 1987, IEEE Software.

[56]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[57]  Margaret M. Burnett,et al.  Operational versus definitional: a perspective on programming paradigms , 1992, Computer.

[58]  John J. Sviokla An examination of the impact of expert systems on the firm: the case of XCON , 1990 .

[59]  P. A. Subrahmanyam,et al.  The "Software Engineering" of Expert Systems: Is Prolog Appropriate? , 1985, IEEE Transactions on Software Engineering.

[60]  Robert L. Glass,et al.  The software-research crisis , 1994, IEEE Software.

[61]  David S. Prerau,et al.  Knowledge Acquisition in the Development of a Large Expert System , 1987, AI Mag..

[62]  Derek Partridge,et al.  The scope and limitations of first generation expert systems , 1987, Future Gener. Comput. Syst..

[63]  Dean Allemang,et al.  Acquiring Knowledge of Knowledge Acquisition: A Self-Study of Generic Tasks , 1992, EKAW.

[64]  Brian Henderson-Sellers,et al.  The object-oriented systems life cycle , 1990, CACM.

[65]  David A. Moon,et al.  The philosophy of Lisp , 1991, CACM.

[66]  J. L. Bader Knowledge-based systems and Software Engineering , 1988 .

[67]  B. Chandrasekaran,et al.  Generic Tasks in Knowledge-Based Reasoning: High-Level Building Blocks for Expert System Design , 1986, IEEE Expert.

[68]  Ed Stabler,et al.  Object-oriented programming in Prolog , 1986 .

[69]  Judith Bachant,et al.  RIME: Preliminary Work Toward a Knowledge-Acquisition Tool , 1988 .

[70]  Daniel G. Bobrow,et al.  If Prolog is the Answer, What is the Question? or What it Takes to Support AI Programming Paradigms , 1985, IEEE Transactions on Software Engineering.

[71]  James Martin,et al.  Building expert systems: a tutorial , 1988 .

[72]  Vasant Dhar,et al.  Rule-based versus structure-based models for explaining and generating expert behavior , 1987, CACM.

[73]  Robert D. Smith,et al.  Selection criteria for expert system shells: a socio-technical framework , 1992, CACM.

[74]  Shashi Shekhar,et al.  Software Development Support for AI Programs , 1987, Computer.

[75]  Colin Potts,et al.  Software-engineering research revisited , 1993, IEEE Software.

[76]  C. Lawrence Meador,et al.  Choosing an expert systems game plan , 1993 .

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

[78]  Paul Harmon,et al.  Creating Expert Systems for Business and Industry , 1990 .

[79]  Elliot Soloway,et al.  Assessing the Maintainability of XCON-in-RIME: Coping with the Problems of a VERY Large Rule-Base , 1987, AAAI.

[80]  R. Mockler Knowledge-based Systems for Management Decisions , 1988 .

[81]  Alan R. Hevner,et al.  The Analysis and Design of Embedded Knowledge-Based Systems Using Box Structure Methods , 1992, J. Manag. Inf. Syst..

[82]  W. Lewis Johnson,et al.  Developing formal specifications from informal requirements , 1993, IEEE Expert.

[83]  John P. McDermott,et al.  The Taming of R1 , 1986, IEEE Expert.

[84]  Daniel G. Bobrow,et al.  CLOS: integrating object-oriented and functional programming , 1991, CACM.

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

[86]  Nancy E. Johnson Mediating representations in knowledge elicitation , 1989 .