Title: Problem%20Solving%20and%20Software%20Engineering
1Problem Solving and Software Engineering
2Objectives
- Indicate uses of computers
- First look at a C program
- Basic phases of software life cycle
- Object-centered design
- Issues, ethical principles
- First look classes and object-oriented design
3Uses of Computers
- Industry
- Robots, CAD, project management and control
- Government
- Defense, space, compile data, weather
- Medicine
- Medical records, life support systems, CAT scan,
MR scan - Entertainment
- Animation, colorization, special effects
- Science
- Simulations, molecule analysis, food quality
testing - Information Technology
- Digital libraries, online art
4What is Programming?
- Computer Program
- A sequence of statements that instruct a computer
in how to solve a problem. - Programming
- The act of designing, writing and maintaining a
program - Programmers
- People who write programs
5The World of C
/ greeting.cpp greets its user. Input The
name of the user Output A personalized
greeting
/ include ltiostreamgt // cin,
cout, ltlt, gtgt include ltstringgt // string using
namespace std int main() cout ltlt "Please enter
your first name " string firstName cin gtgt
firstName cout ltlt "\nWelcome to the world of
C, " ltlt firstName ltlt "!\n"
6The World of C
int main() cout ltlt "Please enter your first
name " string firstName cin gtgt firstName cout
ltlt "\nWelcome to the world of C, " ltlt firstName
ltlt "!\n"
7Problem Solving through Software Engineering
Phases
- Design
- Analysis, specify algorithms to solve problem
- Coding
- Write solution in syntax of language
- Testing, Execution, Debugging
- Get rid of bugs
- Maintenance
- Update, modify to meet changing needs
8Problem
- Worlds largest ball of twine found in Cawker
City, Ks. - How much does the ball weigh?
- How many mileswould the twinereach ifunrolled?
9Object-Centered Design Steps
- State how you want the program to behave
- Identify real-world objects, categorize
- Identify operations needed to solve the problem
- Develop algorithm arrange objects, operations
in an order which solve the problem
10Behavior
To find the weight of a ball of stringEnter
radius of sphere 9 Now computing . . . Weight
of ball of string 999.99
11Objects
Description Software Objects Software Objects Software Objects
Description Type Kind Name
prompt for radius of sphere string constant none
screen ostream variable cout
radius of sphere double variable radius
keyboard istream variable cin
weight of ball double variable weight
12Operations
- Output prompt for radius of sphere to cout
- Input real value from cin
- Store it in radius
- Compute weight
- Output weight to cout
13More Objects
- Computation of weight requires additional
objects Wdensity 4 (p r3 )/3
Description Software Objects Software Objects Software Objects
Description Type Kind Name
density of sphere double variable density
4.0 double constant
p double constant PI
3 integer constant
3.0 double constant
14Algorithm
- Initialize constant PI
- Output prompt for radius to cout
- Input real value from cin, store in radius
- Output prompt for density to cout
- Input real value from cin, store in density
- Compute
- Output weight to cout
15Coding
- First, create a program stub that contains
opening documentation - Compiler directives that add items in libraries
needed for some of the - Objects and operations
- An empty main function
- Convert each step of the algorithm into code.
- If it uses a software object that hasnt already
been declared, add a declaration statement that
specifies the objects type and name.
16Coding
/ sphereWeight.cpp computes the weight of a
sphere. Input The radius (feet) and the
density (pounds/cubic foot) of a sphere Output
The weight of the sphere (pounds)
/ include
ltiostreamgt // cin, cout, ltlt, gtgt include ltcmathgt
// pow() using namespace std int main()
17Coding
- int main()
-
- const double PI 3.14159
- cout ltlt "Enter the sphere's radius (feet) "
- double radius
- cin gtgt radius
- cout ltlt "Enter its density (pounds/cubic feet)
" - double density
- cin gtgt density
- double weight density 4.0 PI pow(radius,
3) / 3.0 - cout ltlt "\nThe weight of the sphere is
approximately " - ltlt weight ltlt " pounds.\n"
18Testing
Enter radius of sphere (feet) 6.5 Enter its
density (pounds/cubic feet) 14.6 The weight of
the sphere is approximately 16795 pounds
19Testing, Execution, Debugging
- Common error sources
- Violations of grammar rules of the high level
language - Errors that occur during execution
- Errors in the design of the algorithm
20Syntax Errors
- Exampledouble radius
- Missing semi-colon
- Compiler finds most of these kinds of errors
- Different compilers give varying degrees of
helpful diagnostics
21Run Time Errors
- Not detected until program runs
- Examples
- Division by zero causes program to crash
- Taking square root of negative causes program
crash - Program must be modified to keep such events from
happening
22Logic Errors
- Program compiles, runs without crashing, but
gives incorrect results - These are hardest errors to find
- Find by using sample data and hand calculating
the correct results, comparing - Note Testing grows increasingly more difficult
with larger programs - Some will run for years without logic error
appearing
23Maintenance
- Student programs run only a few times
- Real-world programs used for many years
- Due to significant investment of resources
- New features may be required during life of
program usage - Upgrading called maintenance
24Problem
- Sam Splicer installs coax cable for Metro Cable
Co. - Basic service charge 25.00
- Additional 2.00 for each foot of cable
- Company Pres. wants to compute revenue generated
by Sam for given month - Example263 yards of cable at 27 locations
generates 2253.00 in revenue
25Describe Behavior of Program
- Program should display prompt for number of
installations performed and total number of yards
of cable installed - User enters values from keyboard
- Program computes, displays on screen total amount
of revenue resulting from these installations
26Behavior Envisioned
To determine revenue generated, Enter number of
installations 27 Enter number of yards of cable
installed 263 Total revenue generated is
2253.00
27Objects
- Use description to fill in chart for objects.
Description Software Objects Software Objects Software Objects
Description Type Kind Name
28Operations
- Use description to fill in chart for operations.
Description Name Predefined? Library Operator
29Algorithm and Coding
- Work together to determine the steps necessary to
have the objects manipulated by the operations - Write the source code
- Compile and Link
- Test the program
30Ethics and Issues
- Consider the essay by Professor Anne Marchant
(see web site of text) - Ethics and Society
- Computer Crime and Security
- Health Concerns and the Environment
- Information Ownership
- Netiquette and Hoaxes
- Internet Content and Free Speech
- Privacy
- Quality Control and Risk Reduction
- The Future