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
There are 5 members of the expert system development team
- The domain expert
- The knowledge engineer
- The programmer
- The project manager
- 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
- Experts/expertise
- Hardware/software
- Users
- 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:
- Get a prototype: A small, preliminary version of the final system - up and running at an early stage
- Present this to the domain expert for criticism
- Proceed to refine this prototype with repeated debugging and knowledge accretion stages
- Continue with this cycle until the knowledgebase is finished
Advantages of Cyclical Development
Show early progress in the knowledge elicitation task
Generates enthusiasm in the domain expert