freeshell live final presenation

32
FreeShell Live FreeShell Live Final Presenation Final Presenation Jonathan Birch | Greg Chabala | Bryan Kimbro | Mark Jonathan Birch | Greg Chabala | Bryan Kimbro | Mark Sparks Sparks

Upload: wyatt-macias

Post on 30-Dec-2015

61 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: FreeShell Live Final Presenation

FreeShell LiveFreeShell LiveFinal PresenationFinal Presenation

Jonathan Birch | Greg Chabala | Bryan Kimbro | Mark SparksJonathan Birch | Greg Chabala | Bryan Kimbro | Mark Sparks

Page 2: FreeShell Live Final Presenation

OverviewOverview

IntroductionIntroduction Expert systemsExpert systems Expert system shellsExpert system shells Original FreeShellOriginal FreeShell

RequirementsRequirements Project design and planProject design and plan DemoDemo RetrospectiveRetrospective

Page 3: FreeShell Live Final Presenation

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.

Page 4: FreeShell Live Final Presenation

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

Page 5: FreeShell Live Final Presenation

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

Page 6: FreeShell Live Final Presenation

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.

Page 7: FreeShell Live Final Presenation

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

Page 8: FreeShell Live Final Presenation

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.

Page 9: FreeShell Live Final Presenation

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.

Page 10: FreeShell Live Final Presenation

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

Page 11: FreeShell Live Final Presenation

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

Page 12: FreeShell Live Final Presenation

Functional RequirementsFunctional Requirements

Completeness CheckingCompleteness Checking Contradiction CheckingContradiction Checking Ability to ask “Why?”Ability to ask “Why?”

Page 13: FreeShell Live Final Presenation

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

Page 14: FreeShell Live Final Presenation

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

Page 15: FreeShell Live Final Presenation

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»

Page 16: FreeShell Live Final Presenation

Design - ToolsDesign - Tools

SoftwareSoftware Microsoft Visual Studio .NETMicrosoft Visual Studio .NET

LanguagesLanguages Visual Basic .NETVisual Basic .NET Visual C++ .NETVisual C++ .NET JavaScriptJavaScript HTMLHTML

Page 17: FreeShell Live Final Presenation

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

Page 18: FreeShell Live Final Presenation

Design - InterfaceDesign - Interface

Knowledge Base EditorKnowledge Base Editor

Page 19: FreeShell Live Final Presenation

Design - InterfaceDesign - Interface

Page 20: FreeShell Live Final Presenation

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

Page 21: FreeShell Live Final Presenation

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

Page 22: FreeShell Live Final Presenation

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

Page 23: FreeShell Live Final Presenation

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)

Page 24: FreeShell Live Final Presenation

What we producedWhat we produced

Demonstrate system here.Demonstrate system here.

Page 25: FreeShell Live Final Presenation

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

Page 26: FreeShell Live Final Presenation

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

Page 27: FreeShell Live Final Presenation

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

Page 28: FreeShell Live Final Presenation

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

Page 29: FreeShell Live Final Presenation

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

Page 30: FreeShell Live Final Presenation

Interface DesignInterface Design

Page 31: FreeShell Live Final Presenation

TestingTesting

Code readingCode reading Acceptance testingAcceptance testing Usability testingUsability testing Tyler ran the system and broke itTyler ran the system and broke it

Page 32: FreeShell Live Final Presenation

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.