Expert System Development Life Cycles

Defining Important Terms

Tools

Models

Methodology

Techniques

Is comprehensive plan to be followed, covers all the necessary activities in SDLC

Supporting software that are used to create models or other components

A graphical presentation which can represent a real situation or a real world

A strategy which can be used for implementing a specific system development activity

Include models, tools and techniques that need to be used

ES Development Team

There are 5 members of the expert system development team

  1. The domain expert
  1. The knowledge engineer
  1. The programmer
  1. The project manager
  1. The end-user

The success of their expert system entirely depends on how well the members work together

Intelligence vs Expertise

Expertise

Requires long time to learn

Is a large amount of knowledge

Is easily recalled

Enables you to find solution much faster

Intelligence

Allows you to use your expertise (apply the knowledge)

Human Experts

Domain expert

Knowledgeable and skilled person capable of solving problems in a specific area or domain

Has the greatest expertise in a given domain. This expertise is to be captured in the expert system

Knowledge engineer

Capable of designing, building and testing an expert system

Establishes what reasoning methods the expert uses to handle facts and rules and decides how to represent them in the expert system

Chooses some development software or an expert system shell, or looks at programming languages for encoding the knowledge

Responsible for testing, revising and integrating the expert system into the workplace

Programmer

Responsible for the actual programming, describing the domain knowledge in terms that a computer can understand

Have skills in symbolic programming in such AI languages and also some experience in the application of different types of expert system shells

Know conventional programming languages like C, Pascal, FORTRAN and Basic

Project manager

Leader of the expert system development team, responsible for keeping the project on track

Makes sure that all deliverables and milestones are met, interacts with the expert, knowledge engineer, programmer and end-user

ES Development Methodology

End-user (User)

Uses the expert system when it is developed

Confident in the expert system performance but also feel comfortable using it

The user interface of the expert system is vital for the project's success; the end-user's contribution here can be crucial

Commercial quality systems require a systematic development approach

Ad hoc approaches may be suitable for research prototypes or personal use, but not for widely used or critical systems

Some software engineering methods are suitable for the development of expert systems

Problem Identification

The development of an expert system should be based on a specific problem to be addressed by the system

It should be verified that expert systems are the right paradigm to solve that type of problem: not all problems are amenable to ES-based solutons

Availability of resources for the development

  1. Experts/expertise
  1. Hardware/software
  1. Users
  1. Sponsors/Funds

Cyclical Development

Rapid Application Development Approach (RAD)

Starting with the ideas of Barry Boehm and others, James Martin developed the rapid application development approach during the 1980s at IBM and finally formalized it by publishing a book in 1991 - Rapid Application Development

Martin's development philosophy focused on speed and used strategies such as prototyping

He believed that software products can be developed faster and of higher quality through: Gathering requirements using workshops or focus groups and Less formality in reviews and other team communication

Rapid Prototyping / Cyclical Development / Evolutionary Prototyping - 1980s favourite approach

Essential Principles:

  1. Get a prototype: A small, preliminary version of the final system - up and running at an early stage
  1. Present this to the domain expert for criticism
  1. Proceed to refine this prototype with repeated debugging and knowledge accretion stages
  1. Continue with this cycle until the knowledgebase is finished

Cyclical Development Cyclical Development

Advantages of Cyclical Development

Show early progress in the knowledge elicitation task

Generates enthusiasm in the domain expert