Michael Wilson, David Duce Informatics Dept., Rutherford Appleton Laboratory
Dan Simpson Dept. of Computer Science, Brighton Polytechnic.
ABSTRACT Developments in software engineering have led to models of the system life cycle incorporating the use of prototyping and formal methods of program veriﬁcation. These are becoming supported by integrated project support environments and permit the planning and monitoring of software development projects. In contrast, Knowledge Based Systems (KBS) are developed using informal views of the system life cycle. Tools have been developed to support some stages of the life cycle in an undisciplined manner. The commercial use of KBS needs development projects to be planned and monitored. This requires methods and tools based on systematic life cycle models to be established for KBS. This paper reviews the current state of life cycle approaches to software engineering and KBS development projects in order to provide a direction for the development of methodical KBS life cycle models.
-2Introduction Over the past 20 years it has become accepted in the software engineering community that software development should be undertaken using a model of the software life cycle. The beneﬁts of such an approach include: the ability to plan the project; the ability to estimate resource requirements for the development; the ability to size the likely software product; the ability to estimate hardware requirements; the ability to update estimates on the basis of real ﬁgures during monitoring; the availability of documents for monitoring and control; the ability to ﬁt the development process into a Quality Management System; a development structure which may be audited for quality. The result of using life cycle approaches is that the development process is made visible to the project management, project controller, quality controller, the project sponsor and users of the system. The major beneﬁt is that potential problems can be caught early within the development with substantial savings in effort and resources used in rework and correction. The traditional life cycle model used in software engineering has provided some of the above advantages, although it has been shown not to apply to all styles of product development; particularly where the program requirements are initially ill speciﬁed. This paper outlines the state of life cycle models in software engineering and Knowledge Based Systems (KBS) as a foundation for the development of KBS life cycle models and associated development techniques which will allow the KBS builder to develop software in a way which will accrue the beneﬁts listed above. Current Commercial Practice and KBS life cycles.
-3Expert systems have now penetrated the commercial market not only in that tools are being bought to enable industry to explore their potential but also to develop practical systems which are now being used. Some individual organisations have now accumulated considerable experience in the development of KBS, however, there is no consensus in industrial practice on a development method for them. Most KBS currently developed are stand-alone systems that ask users questions and reason through a hierarchical classiﬁcation in order to explain solutions. The problems addressed involve the diagnosis of symptoms or fault ﬁnding. A majority of these systems are small and are based as much on the regulations and theory that describe how decisions should be reached as on human expertise. The development of these systems in industrial practice is led by a colloquial life cycle model based on early experience with KBS development which has been outlined, but not formalised (e.g. Hayes-Roth, Waterman and Lenet, 1983; Frieling et al, 1985). This generally follows the stages described below. 1) Problem description This usually divides into three sub parts: A) The identiﬁcation of...