AS Computing – F452 Designing Solutions to Problems.

23
AS Computing – F452 AS Computing – F452 Designing Solutions to Designing Solutions to Problems Problems

Transcript of AS Computing – F452 Designing Solutions to Problems.

AS Computing – F452AS Computing – F452

Designing Solutions to ProblemsDesigning Solutions to ProblemsDesigning Solutions to ProblemsDesigning Solutions to Problems

3 Key Stages to Program Design3 Key Stages to Program Design3 Key Stages to Program Design3 Key Stages to Program Design

• Designing the User Interface

• Designing the Data

• Designing the Processing

• The method where the user tells the The method where the user tells the device what to do and the device device what to do and the device responds.responds.

– ComputerComputer– Mobile PhoneMobile Phone– ATMATM– Sat NavSat Nav

User InterfaceUser Interface

• Command Line Interface (CLI)

• Menu Driven

• Natural Language

• Graphical User Interface (GUI)

Types of InterfaceTypes of Interface

• Purely based on command setsPurely based on command sets• Difficult to learnDifficult to learn• Technically orientated systemsTechnically orientated systems

Command Line InterfaceCommand Line Interface

DOSDOSUNIXUNIX

Menu DrivenMenu Driven

• Easy to useEasy to use• Require little technical Require little technical

knowledgeknowledge• Limited to the options Limited to the options

availableavailable

• Enter commands in sentence structureEnter commands in sentence structure

• ““Hello computer, create a spreadsheet with income and expenditure to calculate Hello computer, create a spreadsheet with income and expenditure to calculate my monthly outgoings…“my monthly outgoings…“

• Difficult to construct. Human language is very ambiguousDifficult to construct. Human language is very ambiguous

• Artificial Intelligence of computer systems is not developed enoughArtificial Intelligence of computer systems is not developed enough

• Is used to some extent in Sat Nav car systemsIs used to some extent in Sat Nav car systems

Natural LanguageNatural Language

• First developed commercially by Apple in the early 1980’s

Graphical User InterfaceGraphical User Interface

WWindowsindows

Graphical User InterfaceGraphical User Interface

IIconscons MMenuenu PPointersointers

`̀̀̀AdvantagesAdvantages

• Commonly usedCommonly used• Easy to learnEasy to learn• Require limited trainingRequire limited training• IntuitiveIntuitive• Fewer mistakes can be made when using the program• Use of GUI objects such as drop downs, option buttons,

dialogue boxes to alert on validation errors • User can associate icons with real world objects – eg Filing

Cabinet and recycle bin

Advantages of GUIAdvantages of GUI

Disadvantages of GUIDisadvantages of GUIDisadvantages of GUIDisadvantages of GUI

DisadvantagesDisadvantages

• Require more processing power and Require more processing power and system resourcessystem resources

• Not always suitable for the environment it Not always suitable for the environment it is being used inis being used in

• Can be restrictive for more advanced Can be restrictive for more advanced usersusers

Factors to consider when designing a user interface…Factors to consider when designing a user interface…

• The userThe user• Screen layoutScreen layout• ValidationValidation• Online helpOnline help• ReadabilityReadability• Choice of fonts and coloursChoice of fonts and colours• Technology PlatformTechnology Platform

Designing a User InterfaceDesigning a User Interface

• HelpHelp• ConsistencyConsistency• Clear LayoutClear Layout• ClarityClarity• NavigationNavigation• CustomisingCustomising

Well designed user interfaceWell designed user interface

Designing Report LayoutsDesigning Report LayoutsDesigning Report LayoutsDesigning Report Layouts

• Similar factors to a user interface

Data RequirementsData RequirementsData RequirementsData Requirements

• When designing software you need to specify what data is needed and who it will be stored.

Data DictionaryData DictionaryData DictionaryData Dictionary

• Data Dictionary

• Contains descriptions and details of data used Eg. Field Name, Field Data Type, Size, Validation

Modular DesignModular DesignModular DesignModular Design

• Top-Down

• Stepwise Refinement

• Advantages to Top-Down modular design

• Smaller modules – each one is easy to write and test individually

• Different programmers can work on different modules each

• Modules can be reused easily

FlowchartsFlowchartsFlowchartsFlowcharts

• Useful to design algorithms

Pseudo CodePseudo CodePseudo CodePseudo Code

• Structured English

• Half English – Half programming

• Useful to get order of events before beginning coding

x=0x=0RepeatRepeat x = x + 1x = x + 1 Print xPrint xUntil x = 10Until x = 10

x=0x=0RepeatRepeat x = x + 1x = x + 1 Print xPrint xUntil x = 10Until x = 10

Rapid Application DevelopmentRapid Application DevelopmentRapid Application DevelopmentRapid Application Development

• RAD• Method for designing and programming software.• RAD is a method for designing software • Where a prototype with reduced functionality is produced • Then tested and evaluated by end user• Next prototype is refined• This process is repeated (with a more refined prototype

each time) • Until Prototype is accepted by end user• Final product is produced based on prototype

RADRADRADRAD

• Spiral Method of system life cycle

• Iterative Development

• End user is more involved in software development, so it should be more suited to their requirements

Advantages of RADAdvantages of RADAdvantages of RADAdvantages of RAD

• Involvement of end user

• Programmers can tailor make the software specifically for the end user. More feedback.

• Prototyping irons out any bugs or flaws in the requirements of the software

• Quicker to develop final product

Disadvantages of RADDisadvantages of RADDisadvantages of RADDisadvantages of RAD

• Not always suitable for large scale software projects. Prototype maybe very different to what is actually required.

• May not produce the most efficient solution if processing large volumes of data

• Software produced often inefficient due to over-emphasis on the end result.