Upload
nolan-avila
View
28
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Planning for the Solution. Lesson 3. Computers are Dumb!. You have to tell them what to do what to use in what order to do itand what to do if your user does not do what you want them to do!. Solutions. Don’t reinvent the wheel! Use solutions that have been - PowerPoint PPT Presentation
Citation preview
COP1006 1
Planning for the Solution
Lesson 3
McManus
COP1006 2
Computers are Dumb!
• You have to tell them – what to do– what to use– in what order to do it and– what to do if your user
does not do what you want them to do!
McManus
COP1006 3
Solutions
• Don’t reinvent the wheel!• Use solutions that have been
– already proven successful – been created just to be reused
McManus
COP1006 4
Solution Trade Offs
• Speed• Readability• Understandability• Maintainability• Reusability
McManus
We take these into consideration every time we create a program.
COP1006 5
How the Computer Stores Data
• Files– Program – set of instructions– Data – raw pieces of facts
McManus
database
records
Data (fields)
files
COP1006 6
Hierarchy of a DBMS
McManus
DBMS
Database Management Systemmade up of one or more databases
DB
A databasemade up of one or more tables, queries, forms, reports, etc
Tableinformation related to one topicmade up of one or more records Rooms Instructors
Record
information related to one specific entitymade up of one or more fields Inventory Classes
Field
information related to one specific part of an entitymade up of one particular data type
Item NameItem Number
Student NameStudent ID
NWF State College
FWB
ExampleDefinition
COP1006 7
Terminology
• Semantics– The concept or idea of the item– Ex. The numeral three is an idea that
humans have established representing the concept of three items
• Syntax– The physical/visible representation of
the idea – Ex. “three” “3”
McManus
COP1006 8
Organizing the Problem
• Tools– Algorithms– Problem Analysis Chart (PAC)– Structure/Interactivity Charts– Input Processing Output (IPO) Chart– Flowcharts– Hierarchy Charts
• But…first we have to understand the Software Life Cycle
McManus
COP1006 9
Software Life Cycle
McManus
Problem Definition
Software & Architectural DesignSystemRequirements Detailed Design
SpecificationsDesign Validation
Coding*Testing/
AcceptanceOperations/
Maintenance
Indicates= reiterative steps after testing and verification of each phase
*Implementation
The Waterfall Model
COP1006 10
Analyzing the Problem
• Understand the Problem• Analyze the Requirements of the
Problem• Figure out what will be the outcome
Very often we’re not given the inputs to a problem, only the desired output.
McManus
COP1006 11
PAC Payroll Example
Given Data Required ResultsHoursPayRate
Gross Pay
Processing Required Solution AlternativesGrossPay = Hours * PayRate Define the Hours Worked and Pay
Rate as constantsDefine the Hours Worked and Pay Rate as variablesDefined the Hours Worked and Pay Rate as input values
McManus
COP1006 12
Structure Charts
McManus
Calculate Gross Pay
ObtainInput Values
Calculate Gross Pay
Print Pay Check
PR
HRS PR
HRSGP
GP
*Includes data flow
COP1006 13
Interactivity Charts
McManus
Calculate Gross Pay
ObtainInput Values
Calculate Gross Pay
Print Pay Check
*Includes data flow
Hourly Rate
Hours Worked
COP1006 14
Input Processing Output (IPO)
Input Processing Output
Hours WorkedPay Rate
1. Enter Hours Worked
2. Enter Pay Rate
3. Calculate Pay
4. Print Pay
Gross Pay (the pay check)
McManus
COP1006 15
Flowchart
• Originally used to describe the entire program.
• Now, used to define – selection (decision) and – repetition (looping) structures
McManus
COP1006 16
Flowchart Symbols
• Flowlines– used when direction is in doubt
• Start/(End/Stop/Exit)• Processing• I(input)/O(output)• Decision
McManus
Begin End
Calculate Gross Pay
Print Pay Check
MoreEmployees?
COP1006 17
Example Flowchart
McManus
Snoozeor Off?
Alarm goes off!
Sleep or Get up?
Zzzzz!
Snooze
Sleep
Get Dressed. . .
Snooze= 9?
< 9
Ignore Alarm, Forget Boss,
Forget Instructor – Probably creating a problem?
COP1006 18
Pseudocode
• Everything is included, but written in English rather than any one language’s syntax
• Useful for debugging• Ex.
McManus
Obtain PayRateObtain HoursWorkedGrossPay equals PayRate Multiplied by HoursWorkedPrint GrossPay
COP1006 19
Documentation
• Internal• External
• Written in different language styles
McManus
COP1006 20
Internal Documentation
• Used to explain what is being done (and why) within the program
• Most often takes the form of comments within the program– Written in Language that Programmer,
not user, will understand
McManus
' Insert a new node in the binary search tree.
' If the root node is null, create the root node here.
' Otherwise, call the insert procedure of class TreeNo
COP1006 21
External Documentation
• Manuals or Help menus to assist the user– Includes
• User Manuals• System Manuals
• User must be able to understand…
McManus
Make text bold
1. Select the text you want to change.
2. Click Bold on the Formatting Toolbar.
COP1006 22
Debugging the Solution
• Walkthroughs– Walking through the process to verify
that the solution • is solving the right problem and • works correctly
– You can use any of the charts or Pseudocode for this step
• Helps find bugs
McManus
COP1006 23
Coding
• After determining that the solution is correct
• Select the appropriate language• Code the program
McManus
COP1006 24
Testing
• Test the coded solution• Best done by someone other than
the programmer
McManus
COP1006 25
60% to 70% of all Faults
• found in large-scale software projects are specification and design faults.
• Where do most of these faults originate?– Not fully understanding the problem and – then creating a specification based on an
erroneous problem definition.• Industry’s high priority
– involves the development and use of techniques that will help find faults during the earliest phases.
McManus
COP1006 26
Where to Place the Blame?
• Nowhere!It is not the
purpose to place blame when a fault is found…
Only to fix the fault!
McManus
COP1006 27
With team development…
• new problems arise, such as:– different styles of writing code, – interface difficulties, – different declared types (integer vs real)– different understandings of the problem caused
by communication problems, and – even something as simple as the order in
which variables are listed within a procedure’s call statement.
McManus
COP1006 28McManus
Next?