freeshell live final presenation
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
FreeShell LiveFreeShell LiveFinal PresenationFinal Presenation
Jonathan Birch | Greg Chabala | Bryan Kimbro | Mark SparksJonathan Birch | Greg Chabala | Bryan Kimbro | Mark Sparks
OverviewOverview
IntroductionIntroduction Expert systemsExpert systems Expert system shellsExpert system shells Original FreeShellOriginal FreeShell
RequirementsRequirements Project design and planProject design and plan DemoDemo RetrospectiveRetrospective
IntroductionIntroduction
FreeShell LiveFreeShell Live is an upgrade of is an upgrade of FreeShellFreeShell, an expert system shell , an expert system shell program developed as a senior program developed as a senior project in 2003.project in 2003.
Client / ManagementClient / Management
Client - Dr. Xudong YuClient - Dr. Xudong Yu Uses expert system shell to teach Uses expert system shell to teach
CS 490 – Expert SystemsCS 490 – Expert Systems Upper Management – Dr. Upper Management – Dr.
Bernard Waxman / Dr. Bryon Bernard Waxman / Dr. Bryon EhlmannEhlmann
What is an Expert System?What is an Expert System?
Software that contains a Software that contains a collection of rules collection of rules
Helps users to form conclusions Helps users to form conclusions from known factsfrom known facts
Used to stand in for trained Used to stand in for trained experts in situations where it experts in situations where it would be inconvenient to use a would be inconvenient to use a humanhuman
Here’s an example:Here’s an example:
User: Should I carry an umbrella?User: Should I carry an umbrella? System: Is it raining?System: Is it raining? User: NoUser: No System: What does the sky look like?System: What does the sky look like? User: CloudyUser: Cloudy System: What is the barometric System: What is the barometric
pressure in µPa?pressure in µPa? User: 1000User: 1000 System: There is a 90% chance you System: There is a 90% chance you
should carry an umbrella.should carry an umbrella.
How do they work?How do they work?
Expert systems have two main Expert systems have two main parts:parts: The The Knowledge BaseKnowledge Base - a - a
database of variables and rules database of variables and rules relating to a problemrelating to a problem
The The Inference EngineInference Engine - software - software that uses logic techniques to that uses logic techniques to “solve” the knowledge base“solve” the knowledge base
How do they work?How do they work?
When a question is answered, When a question is answered, the software uses the rules to the software uses the rules to forward chainforward chain and deduce new and deduce new information.information.
Afterwards, the inference engine Afterwards, the inference engine backward chainsbackward chains to decide what to decide what new information would be most new information would be most useful. The system then asks useful. The system then asks the user for this information.the user for this information.
What does FreeShell What does FreeShell do?do?
FreeShell is an FreeShell is an expert systemexpert system shellshell. It provides an interface . It provides an interface for users to build knowledge for users to build knowledge bases.bases.
Once a knowledge base is Once a knowledge base is complete, users can complete, users can runrun the the system through the interface.system through the interface.
Why make FreeShell Live?Why make FreeShell Live?
Old interface was hard to useOld interface was hard to use Wanted ability to publish expert Wanted ability to publish expert
systems as web pagessystems as web pages Old program had major bugsOld program had major bugs Limited editing abilityLimited editing ability
Functional RequirementsFunctional Requirements
Knowledge base editor with a GUI Knowledge base editor with a GUI that allows expert users to create that allows expert users to create knowledge basesknowledge bases
Web-based GUI that allows casual Web-based GUI that allows casual users to run the expert systemusers to run the expert system
Certainty factor algebra to deal Certainty factor algebra to deal with uncertainty and probabilitywith uncertainty and probability
Functional RequirementsFunctional Requirements
Completeness CheckingCompleteness Checking Contradiction CheckingContradiction Checking Ability to ask “Why?”Ability to ask “Why?”
Design system must run on Design system must run on Windows (2000/NT/XP) platform Windows (2000/NT/XP) platform
Web-based GUI must run in Web-based GUI must run in Internet Explorer 6.0 or higherInternet Explorer 6.0 or higher
GUIs must be designed for ease GUIs must be designed for ease of useof use
System must be designed to System must be designed to respond quickly to usersrespond quickly to users
Non-FunctionalNon-Functional Requirements Requirements
Non-Functional Non-Functional RequirementsRequirements
System must be well System must be well documented and easy to modifydocumented and easy to modify
Documentation must include a Documentation must include a tutorial and sample knowledge tutorial and sample knowledge basesbases
Use Case ModelUse Case Model
ExpertSystemDesigner
AddRule
RemoveRule
PrintRules
SaveKnowledgeBase
OpenKnowledgeBase
PreviewSystem
SystemUser
SkipQuestion
EditKnowledgeBaseExternally
Publish
ConsultExpertSystem
Why
System
CreateExpertSystem
UseExpertSystem
Creation
UsageCheckIfComplete
Edit Rule
«uses»
ContradictionChecking
«uses»
Add VariableEdit Variable
Remove Variable
«uses»
Design - ToolsDesign - Tools
SoftwareSoftware Microsoft Visual Studio .NETMicrosoft Visual Studio .NET
LanguagesLanguages Visual Basic .NETVisual Basic .NET Visual C++ .NETVisual C++ .NET JavaScriptJavaScript HTMLHTML
Design – SystemDesign – System
Interface designInterface design Largely carried over from previous Largely carried over from previous
systemsystem Some major screen changes and Some major screen changes and
additionsadditions Persistent dataPersistent data
Flat text file corresponding to Flat text file corresponding to knowledge baseknowledge base
HTML file for Publish-to-Web HTML file for Publish-to-Web functionalityfunctionality
Design - InterfaceDesign - Interface
Knowledge Base EditorKnowledge Base Editor
Design - InterfaceDesign - Interface
Design – Test PlanDesign – Test Plan
Module TestingModule Testing Integration TestingIntegration Testing
After the knowledge base editor and After the knowledge base editor and publish-to-web functionality is publish-to-web functionality is completed, integration testing will be completed, integration testing will be performedperformed
System TestingSystem Testing After each development cycle, the After each development cycle, the
system will be testing using HCI system will be testing using HCI methodsmethods
Acceptance TestingAcceptance Testing Throughout the development cycle, the Throughout the development cycle, the
system will be exhibited to our client to system will be exhibited to our client to ensure his needs are metensure his needs are met
Team OrganizationTeam Organization
Mark SparksCo-Lead
Bryan KimbroCo-Lead
Testing
Web Publishing Development
Mark SparksAssistant
Jonathan BirchLead
Knowledge Base Editor
Development
Greg ChabalaLead
Jonathan BirchAssistant
Planned Project LifecyclePlanned Project Lifecycle
Software Concept
Preliminary Requirements Analysis
Design of Architecture and System Core
Develop a Version Develop a Version
Incorporate Customer Feedback
Deliver a VersionIncorporate Customer
Feedback
Elicit Customer Feedback
Deliver a Version
Elicit Customer Feedback
Integration
Deliver Final Version
Integration Testing
Modified Evolutionary Delivery
Planned SchedulePlanned ScheduleID Task Name Start Finish Duration
Dec 2005Oct 2005 Nov 2005Sep 2005
9/258/28 9/18 10/23 11/2711/610/169/11 10/910/2 12/48/21 9/4 11/2010/30 11/13
1 10d9/2/20058/22/2005Code initial version of publish-to-web
8d9/14/20059/5/2005Test and elicit feedback for initial publish-to-web version
10d9/2/20058/22/2005Fix Bugs in KBE
10d9/16/20059/5/2005Code additional desired KBE features
8d9/28/20059/19/2005Test and elicit feedback for Initial version of KBE
5d9/23/20059/19/2005Code second version of publish-to-web
8d10/5/20059/26/2005Test and elicit feedback for second publish-to-web version
5d10/7/200510/3/2005Code second version of KBE
5
5d8/26/20058/22/2005Develop test plan for initial publish-to-web
7
5d9/23/20059/19/2005Develop test plan for second version of publish-to-web
3
2
6
5d9/2/20058/29/2005Develop test plan for initial version of KBE
9
10
11
18
17
15
13
12
5d10/14/200510/10/2005Code third version of publish-to-web
5d10/14/200510/10/2005Develop test plan for third version of publish-to-web
5d10/21/200510/17/2005Test third publish-to-web version
14
19
5d10/7/200510/3/2005Develop test plan for second version of KBE
5d10/14/200510/10/2005Test second version of KBE
20
21
22
23
10d11/4/200510/24/2005Integrate publish-to-web into KBE
10d9/30/20059/19/2005Develop initial product documentation
5d10/28/200510/24/2005Develop test plan for complete system
5d11/11/200511/7/2005Test complete system
24 10d11/25/200511/14/2005Fix errors in complete system
25 5d11/11/200511/7/2005Revise product documentation
26 5d12/2/200511/28/2005Perform final delivery activities
2d9/16/20059/15/2005Revise initial publish-to-web design4
2d9/30/20059/29/2005Revise initial KBE design16
2d10/7/200510/6/2005Revise second publish-to-web design8
- Full Team
- Web Publishing Development (Jonathan Birch, Mark Sparks)- KBE Development (Greg Chabala, Jonathan Birch)
-Testing (Bryan Kimbro, Mark Sparks)
- Integration (Jonathan Birch, Greg Chabala)
- Documentation Team (Greg Chabala)
What we producedWhat we produced
Demonstrate system here.Demonstrate system here.
Actual ScheduleActual Schedule
ID Task Name Start Finish DurationDec 2005Oct 2005 Nov 2005Sep 2005
9/258/28 9/18 10/23 11/2711/610/169/11 10/910/2 12/48/21 9/4 11/2010/30 11/13
1 45d10/21/20058/22/2005Code initial version of publish-to-web
2d10/25/200510/24/2005Test and elicit feedback for initial publish-to-web version
36d10/10/20058/22/2005Change save, open and print to new format
5d8/26/20058/22/2005Develop test plan for initial publish-to-web
3
2
5d9/2/20058/29/2005Develop test plan for KBE
5
6
7
8
6d11/9/200511/2/2005Code second version of publish-to-web
5d10/14/200510/10/2005Develop test plan for second version of publish-to-web
5d11/16/200511/10/2005Test second publish-to-web version
9
10 4d10/31/200510/26/2005Integrate publish-to-web into KBE
6d11/16/200511/9/2005Develop initial product documentation
5d11/7/200511/1/2005Test complete system
10d11/14/200511/1/2005Fix errors in complete system
16 5d11/23/200511/17/2005Revise product documentation
5d11/21/200511/15/2005Perform final delivery activities
5d11/7/200511/1/2005Revise initial KBE design
2d10/27/200510/26/2005Revise publish-to-web design4
- Full Team
- Web Publishing Development (Jonathan Birch, Mark Sparks)- KBE Development (Greg Chabala, Jonathan Birch)
-Testing (Bryan Kimbro, Mark Sparks)
- Integration (Jonathan Birch, Greg Chabala)
- Documentation Team (Greg Chabala)
13
15
12
11
14
Retrospective – PublishRetrospective – Publish
Implemented using Dynamic Implemented using Dynamic HTMLHTML No experienced team membersNo experienced team members Unable to find useful reference – Unable to find useful reference –
what we were doing was originalwhat we were doing was original Tried to use a self-submitting form Tried to use a self-submitting form
- this was impossible- this was impossible Found a solution using Found a solution using
Document.InnerHTML, but time Document.InnerHTML, but time was lostwas lost
Retrospective – PublishRetrospective – Publish
Intended to use inference Intended to use inference engine logic from FreeShellengine logic from FreeShell FreeShell code was poorly FreeShell code was poorly
commented / formattedcommented / formatted Once code was understood, it was Once code was understood, it was
discovered to be incorrectdiscovered to be incorrect Successfully coded a new Successfully coded a new
inference engine from scratch, but inference engine from scratch, but more time lostmore time lost
Retrospective - InterfaceRetrospective - Interface
Planned interface was found to Planned interface was found to lack necessary features, this lack necessary features, this forced a redesignforced a redesign
After review of interface, a more After review of interface, a more significant overhaul was found significant overhaul was found to be necessaryto be necessary
What is an expert system?What is an expert system?
Expert SystemExpert System Emulates the knowledge of real Emulates the knowledge of real
expertexpert Consists of a knowledge base and Consists of a knowledge base and
an inference enginean inference engine Often used for diagnosis – a nurse Often used for diagnosis – a nurse
can use an expert system to make can use an expert system to make a diagnosis that would normally a diagnosis that would normally require a doctorrequire a doctor
Interface DesignInterface Design
TestingTesting
Code readingCode reading Acceptance testingAcceptance testing Usability testingUsability testing Tyler ran the system and broke itTyler ran the system and broke it
ReflectionsReflections
We used the old KBE to start We used the old KBE to start developing. We should have developing. We should have scrapped it.scrapped it.