An expert system is "a knowledge-based reasoning system that captures and replicates the problem-solving ability of human experts" (Boose 1986) and typically has three basic components:

  • a knowledge base,
  • an inference engine, and
  • a working memory.

The knowledge base is "the repository for information that is static and domain-wide" (Baffaut et al 1987). The knowledge base may contain not only static data that will not change from one problem to the next, but may also contain empirical and theoretical rules, and provide advice on models that may be employed as part of the solution.

The inference engine is "the reasoning mechanism containing all the procedures for manipulating, searching, and exercising the knowledge base" (Baffaut et al 1987).

The working memory is used to solve a specific problem using the expert system.  It consists of the user interface to the expert system and the storage of specific problem information.  The working memory also serves as the explanation device for the expert system indicating legal and illegal data and suggesting parameters.

A computer-based expert system has advantages over a human expert that include:

  • An expert may retire and knowledge is lost.
  • There may be better uses of an expert's time than answering user questions.
  • Expertise may be expensive to deliver.
  • An expert may not be available when needed.
  • An expert is not always consistent.

In any particular application these reasons or others may be important in deciding to use an expert system. 

Expert systems development has created the need for a specialist called a knowledge engineer.  Knowledge engineering is "the extraction, articulation and computerisation of expert knowledge. Knowledge consists of descriptions, relationships, and procedures in the domain of interest" (Boose 1986).  The knowledge engineer provides the interface between the human expert and the computer. 

It is generally agreed that one of the largest, if not the largest, problem in expert systems development is knowledge acquisition and knowledge engineering.  

 XP diverges from the traditional expert system by allowing the continuous accumulation of localised expertise to be used within its shell with little assistance necessary from the software developer.  The coupling of the Storm Water Management Model to the XP interface with all of its graphical tolls has created a Decision Support System (DSS) for storm and wastewater management.