320 likes | 471 Views
FreeShell Live Final Presenation. Jonathan Birch | Greg Chabala | Bryan Kimbro | Mark Sparks. Overview. Introduction Expert systems Expert system shells Original FreeShell Requirements Project design and plan Demo Retrospective. Introduction.
E N D
FreeShell LiveFinal Presenation Jonathan Birch | Greg Chabala | Bryan Kimbro | Mark Sparks
Overview • Introduction • Expert systems • Expert system shells • Original FreeShell • Requirements • Project design and plan • Demo • Retrospective
Introduction • FreeShell Live is an upgrade of FreeShell, an expert system shell program developed as a senior project in 2003.
Client / Management • Client - Dr. Xudong Yu • Uses expert system shell to teach CS 490 – Expert Systems • Upper Management – Dr. Bernard Waxman / Dr. Bryon Ehlmann
What is an Expert System? • Software that contains a collection of rules • Helps users to form conclusions from known facts • Used to stand in for trained experts in situations where it would be inconvenient to use a human
Here’s an example: • User: Should I carry an umbrella? • System: Is it raining? • User: No • System: What does the sky look like? • User: Cloudy • System: What is the barometric pressure in µPa? • User: 1000 • System: There is a 90% chance you should carry an umbrella.
How do they work? • Expert systems have two main parts: • The Knowledge Base - a database of variables and rules relating to a problem • The Inference Engine - software that uses logic techniques to “solve” the knowledge base
How do they work? • When a question is answered, the software uses the rules to forward chain and deduce new information. • Afterwards, the inference engine backward chains to decide what new information would be most useful. The system then asks the user for this information.
What does FreeShell do? • FreeShell is an expert systemshell. It provides an interface for users to build knowledge bases. • Once a knowledge base is complete, users can run the system through the interface.
Why make FreeShell Live? • Old interface was hard to use • Wanted ability to publish expert systems as web pages • Old program had major bugs • Limited editing ability
Functional Requirements • Knowledge base editor with a GUI that allows expert users to create knowledge bases • Web-based GUI that allows casual users to run the expert system • Certainty factor algebra to deal with uncertainty and probability
Functional Requirements • Completeness Checking • Contradiction Checking • Ability to ask “Why?”
Non-Functional Requirements • Design system must run on Windows (2000/NT/XP) platform • Web-based GUI must run in Internet Explorer 6.0 or higher • GUIs must be designed for ease of use • System must be designed to respond quickly to users
Non-Functional Requirements • System must be well documented and easy to modify • Documentation must include a tutorial and sample knowledge bases
Design - Tools • Software • Microsoft Visual Studio .NET • Languages • Visual Basic .NET • Visual C++ .NET • JavaScript • HTML
Design – System • Interface design • Largely carried over from previous system • Some major screen changes and additions • Persistent data • Flat text file corresponding to knowledge base • HTML file for Publish-to-Web functionality
Design - Interface Knowledge Base Editor
Design – Test Plan • Module Testing • Integration Testing • After the knowledge base editor and publish-to-web functionality is completed, integration testing will be performed • System Testing • After each development cycle, the system will be testing using HCI methods • Acceptance Testing • Throughout the development cycle, the system will be exhibited to our client to ensure his needs are met
Planned Project Lifecycle Modified Evolutionary Delivery
What we produced Demonstrate system here.
Retrospective – Publish • Implemented using Dynamic HTML • No experienced team members • Unable to find useful reference – what we were doing was original • Tried to use a self-submitting form - this was impossible • Found a solution using Document.InnerHTML, but time was lost
Retrospective – Publish • Intended to use inference engine logic from FreeShell • FreeShell code was poorly commented / formatted • Once code was understood, it was discovered to be incorrect • Successfully coded a new inference engine from scratch, but more time lost
Retrospective - Interface • Planned interface was found to lack necessary features, this forced a redesign • After review of interface, a more significant overhaul was found to be necessary
What is an expert system? • Expert System • Emulates the knowledge of real expert • Consists of a knowledge base and an inference engine • Often used for diagnosis – a nurse can use an expert system to make a diagnosis that would normally require a doctor
Testing • Code reading • Acceptance testing • Usability testing • Tyler ran the system and broke it
Reflections • We used the old KBE to start developing. We should have scrapped it.