SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Programming and
Problem Solving —
Software Engineering
(Read Chap. 2)
1
Problem Solving
A Temperature-conversion problem:
Write a program that, given a temperature in Celsius,
displays that temperature in Fahrenheit.
• Implementation (Coding)
• Testing, Execution and Debugging
• Maintenance
OCD (Object-Centered Design)
2
5 Phases of (Simplified) Software Life Cycle:
• Problem Analysis and Specification
• Design
OCD (Object-Centered Design)
1. Describe the behavior of the program.
2. Identify the problem’s objects and make
a table of information about them.
3. Identify the problem’s operations and
make a table of information about them.
4. Organize the objects and operations into a
sequence of steps, called an algorithm,
to solve the problem.
3
Behavior
A. Describe the desired behavior of the program:
Our program should display program information
to the user and then a prompt for the
Celsius temperature on the screen, read that
temperature from the keyboard, compute the
corresponding Fahrenheit temperature, and
display the result, along with a descriptive
label on the screen.
4
Using
OCD
Problem Objects
B. Identify the nouns in the behavioral description (other than
"non-behavioral" ones like "program" and "user"):
Our program should display program information
to the user and then a prompt for the
Celsius temperature on the screen, read that
temperature from the keyboard, compute the
corresponding Fahrenheit temperature, and
display that temperature, along with a descriptive
label on the screen.
These make up the objects in our problem.
5
Using
OCD
cout
cin
Information about Objects
Determine a type and a name (if necessary) for each
object and whether it is a constant or a variable.
6
Problem Object Type Kind Name
program information text constant none
prompt text constant none
Celsius temperature real
number
variable celsius
screen output variable
keyboard input variable
Fahrenheit temperature real
number
variable fahrenheit
label text constant none
Using
OCD
C++ Type
?
?
double
?
?
double
?
Operations
These make up the operations in our problem.
C. Identify the verbs in the behavioral description:
Our program should display program information
to the user and then a prompt for the
Celsius temperature on the screen, read that
temperature from the keyboard, compute the
corresponding Fahrenheit temperature, and
display that temperature, along with a descriptive
label on the screen.
7
Using
OCD
Information about Operations
Identify the C++ operator to perform
a given operation, if there is one.
To compute the Fahrenheit temperature, we need to
know/find the Celsius to Fahrenheit conversion formula.
8
Operation
Pre-
defined?
C++
Operator Library
Display yes << iostream
Read yes >> iostream
Compute the Fahrenheit
temperature
?? ?? ??
Using
OCD
Celsius-to-Fahrenheit
Formula for converting Celsius to Fahrenheit:
fahrenheit = 1.8 × celsius + 32
Converting the temperature thus adds new
objects and operations to our problem.
9
Using
OCD
Information about Objects
(Revised)
10
Problem Object Type Kind C++ Type Name
program information text constant ? none
prompt text constant ? none
Celsius temperature real
number
variable double celsius
screen output variable ? cout
keyboard input variable ? cin
Fahrenheit temperature real
number
variable double fahrenheit
label text constant ? none
conversion
factor 1.8
real
number
constant double none
conversion
factor 32
integer constant int none
Using
OCD
Information about Operations
(Revised)
11
Operation
Pre-
defined?
C++
Operator Library
Display yes << iostream
Read yes >> iostream
Compute the Fahrenheit
temperature:
Multiply two real values
(1.8 and celsius)
yes * built-in
Add a real value (the result
above) and an integer (32)
yes + built-in
Store a real value (the
result above) in a variable
yes = built-in
Using
OCD
Algorithm
D. Organize the objects and operations into a
sequence of steps that solves the problem,
called an algorithm.
1. Display via cout information about the program
to the user.
2. Display via cout a prompt for the Celsius temperature.
3. Read the temperature from cin.
4. Compute the Fahrenheit temperature from the Celsius
temperature.
5. Display via cout the Fahrenheit temperature and an
informative label.
12
Using
OCD
Coding
Once we have designed an algorithm, the next
step is to translate that algorithm into a high
level language like C++.
This involves writing instructions to
— represent the objects, and
— perform the operations
in C++.
13
14
The Code
When learning
to program, it
is helpful to
just start with
the algorithm
as comments
in main()
/*
John Doe
CS 104X
Input:
Output:
-----------------------------------------------*/
#include <iostream> // cin, cout, <<, >>
using namespace std;
int main()
{
}
/* temperature.cpp converts a Celsius
temperature to Fahrenheit.
John Doe Lab 1 Jan. 5, 2012
CS 104X
Input: A Celsius temperature
Output: Corresponding Fahrenheit temperature
-----------------------------------------------*/
#include <iostream> // cin, cout, <<, >>
using namespace std;
int main()
{
// 1. Display via cout information about the
// program to the user.
// 2. Display via cout a prompt for the Celsius
// temperature.
// 3. Read the temperature from cin.
// 4. Compute the Fahrenheit temperature from the
// Celsius temperature.
// 5. Display via cout the Fahrenheit temperature
// and an informative label.
}
cout << "John Doe CS 104X -- Lab 1nn";
cout << "** Convert Celsius temps to Fahrenheit **n";
cout << "Please enter a temperature in Celsius: "; 15
/* temperature.cpp converts a Celsius
temperature to Fahrenheit.
John Doe Lab 1 Jan. 5, 2012
CS 104X
Input: A Celsius temperature
Output: Corresponding Fahrenheit temperature
-----------------------------------------------*/
#include <iostream> // cin, cout, <<, >>
using namespace std;
int main()
{
// 1. Display via cout information about the
// program to the user.
// 2. Display via cout a prompt for the Celsius
// temperature.
The Code
double celsius;
cin >> celsius;
double fahrenheit = 1.8 * celsius + 32;
cout << celsius << " degrees Celsius is "
<< fahrenheit << " degrees Fahrenheit.n";
16
// 3. Read the temperature from cin.
// 4. Compute the Fahrenheit temperature from the
// Celsius temperature.
// 5. Display via cout the Fahrenheit temperature
// and an informative label.
}
The Code
It’s wise to echo input
data to insure computer
read what you intended.
17
Comments
/* temperature.cpp converts a Celsius
temperature to Fahrenheit.
John Doe Lab 1 Jan. 5, 2012
CS 104X
Input: A Celsius temperature
Output: Corresponding Fahrenheit temperature
-----------------------------------------------*/
#include <iostream> // cin, cout, <<, >>
using namespace std;
int main()
{
// 1. Display via cout information about the
// program to the user.
cout << "John Doe CS 104X -- Lab 1nn";
cout << "** Convert Celsius temps to Fahrenheit **n";
// 2. Display via cout a prompt for the Celsius
// temperature.
cout << "Please enter a temperature in Celsius: ";
Always begin
a program with
opening
documentation
enclosed in
/* and */.
/* temperature.cpp converts a Celsius
temperature to Fahrenheit.
John Doe Lab 1 Jan. 5, 2012
CS 104X
Input: A Celsius temperature
Output: Corresponding Fahrenheit temperature
-----------------------------------------------*/
#include <iostream> // cin, cout, <<, >>
using namespace std;
int main()
{
// 1. Display via cout information about the
// program to the user.
cout << "John Doe CS 104X -- Lab 1nn";
cout << "** Convert Celsius temps to Fahrenheit **n";
// 2. Display via cout a prompt for the Celsius
// temperature.
cout << "Please enter a temperature in Celsius: "; 18
Libraries
This loads the C++
library that we need.
Lab & Proj. 1: #include <cmath>
19
/* temperature.cpp converts a Celsius
temperature to Fahrenheit.
John Doe Lab 1 Jan. 5, 2012
CS 104X
Input: A Celsius temperature
Output: Corresponding Fahrenheit temperature
-----------------------------------------------*/
#include <iostream> // cin, cout, <<, >>
using namespace std;
int main()
{
// 1. Display via cout information about the
// program to the user.
cout << "John Doe CS 104X -- Lab 1nn";
cout << "** Convert Celsius temps to Fahrenheit **n";
// 2. Display via cout a prompt for the Celsius
// temperature.
cout << "Please enter a temperature in Celsius: ";
Each step of the
algorithm is implemented
by one or more C++
program statements
inside main() function.
Why no n ?
20
// 3. Read the temperature from cin.
double celsius;
cin >> celsius;
// 4. Compute the Fahrenheit temperature from the
// Celsius temperature.
double fahrenheit = 1.8 * celsius + 32;
// 5. Display via cout the Fahrenheit temperature
// and an informative label.
cout << celsius << " degrees Celsius is "
<< fahrenheit << " degrees Fahrenheit.n";
}
Each step of the
algorithm is implemented
by one or more C++
program statements
inside main() function.
Note spacing, indentation, & alignment to make
program “look nice” and easier to read.
This will be one criterion used in grading.
Always
a good
idea to
echo
input data
Testing
Run your program using sample data (whose
correctness is easy to check):
John Doe CS 104X -- Lab 1
** Convert Celsius temps to Fahrenheit **
Please enter the temperature in Celsius: 0
0 degrees Celsius is 32 degrees Fahrenheit.
21
John Doe CS 104X -- Lab 1
** Convert Celsius temps to Fahrenheit **
Please enter the temperature in Celsius: 100
100 degrees Celsius is 212 degrees Fahrenheit.
When you are convinced that the program is
correct, run it with the required data values.
John Doe CS 104X -- Lab 1
** Convert Celsius temps to Fahrenheit **
Please enter the temperature in Celsius: -17.78
-17.78 degrees Celsius is -0.004 degrees Fahrenheit.
22
23
For a programming assignment:
Lose a few points or may be lucky and the grader doesn’t
catch it.
For a real-world problem:
Much more may be at stake: money, jobs, and even lives.
Why Testing is Important:
• September,1999: Mars Climate Orbiter
• June, 1996: Ariane 5 rocket
• March,1991: DSC Communications
• February 25, 1991(Gulf War): Patriot missile
Testing is never finished; it is only stopped.
Testing can only show the presence of errors,
not their absence.
See
Other Course
Information
(CS 104 page):
• Importance of
Program Testing
— Horror Stories
Maintenance
24
• Large % of computer center budgets
• Large % of programmer's time
• Largest % of software development cost
Why?
Poor structure, poor documentation, poor style
⇒ less likely to catch bugs before release
⇒ fixing of bugs difficult and time-consuming
⇒ impede implementation of enhancements
See
Other Course
Information
(CS 104 page):
• Time Spent on
Program
Maintenance

Más contenido relacionado

Similar a 02.softwareengr.ppt

Comp 122 lab 4 lab report and source code
Comp 122 lab 4 lab report and source codeComp 122 lab 4 lab report and source code
Comp 122 lab 4 lab report and source codepradesigali1
 
Labsheet1 stud
Labsheet1 studLabsheet1 stud
Labsheet1 studrohassanie
 
Irite a SPIM assembly language program convertF2C-s- he program will d.pdf
Irite a SPIM assembly language program convertF2C-s- he program will d.pdfIrite a SPIM assembly language program convertF2C-s- he program will d.pdf
Irite a SPIM assembly language program convertF2C-s- he program will d.pdfEvanpZjSandersony
 
Lec1_EENG112-Introduction.pdf
Lec1_EENG112-Introduction.pdfLec1_EENG112-Introduction.pdf
Lec1_EENG112-Introduction.pdfShwetaSaharan8
 
The desired program with readLine() method is given belowusin.pdf
The desired program with readLine() method is given belowusin.pdfThe desired program with readLine() method is given belowusin.pdf
The desired program with readLine() method is given belowusin.pdfarasequ
 
Write an interactive C++ program whose input is a series of 12 temper.pdf
Write an interactive C++ program whose input is a series of 12 temper.pdfWrite an interactive C++ program whose input is a series of 12 temper.pdf
Write an interactive C++ program whose input is a series of 12 temper.pdflanuszickefoosebr429
 
Write a program to take a depth(in Kilometers)inside the earth as in.pdf
Write a program to take a depth(in Kilometers)inside the earth as in.pdfWrite a program to take a depth(in Kilometers)inside the earth as in.pdf
Write a program to take a depth(in Kilometers)inside the earth as in.pdfjibinsh
 
Lecture # 1 - Introduction Revision - 1 OOPS.pptx
Lecture # 1 - Introduction  Revision - 1 OOPS.pptxLecture # 1 - Introduction  Revision - 1 OOPS.pptx
Lecture # 1 - Introduction Revision - 1 OOPS.pptxSanaullahAttariQadri
 
I need this coded with Python please- In this project- you will write.pdf
I need this coded with Python please- In this project- you will write.pdfI need this coded with Python please- In this project- you will write.pdf
I need this coded with Python please- In this project- you will write.pdfbolero3277
 
Lecture # 1 introduction revision - 1
Lecture # 1   introduction  revision - 1Lecture # 1   introduction  revision - 1
Lecture # 1 introduction revision - 1SajeelSahil
 
Introduction to C++ lecture ************
Introduction to C++ lecture ************Introduction to C++ lecture ************
Introduction to C++ lecture ************Emad Helal
 
C++ Overview
C++ OverviewC++ Overview
C++ Overviewkelleyc3
 
C++ programming language basic to advance level
C++ programming language basic to advance levelC++ programming language basic to advance level
C++ programming language basic to advance levelsajjad ali khan
 
Bottom of FormCreate your own FunctionFunctionsFor eac.docx
Bottom of FormCreate your own FunctionFunctionsFor eac.docxBottom of FormCreate your own FunctionFunctionsFor eac.docx
Bottom of FormCreate your own FunctionFunctionsFor eac.docxAASTHA76
 
Practical basics on c++
Practical basics on c++Practical basics on c++
Practical basics on c++Marco Izzotti
 

Similar a 02.softwareengr.ppt (20)

Comp 122 lab 4 lab report and source code
Comp 122 lab 4 lab report and source codeComp 122 lab 4 lab report and source code
Comp 122 lab 4 lab report and source code
 
Labsheet1 stud
Labsheet1 studLabsheet1 stud
Labsheet1 stud
 
Irite a SPIM assembly language program convertF2C-s- he program will d.pdf
Irite a SPIM assembly language program convertF2C-s- he program will d.pdfIrite a SPIM assembly language program convertF2C-s- he program will d.pdf
Irite a SPIM assembly language program convertF2C-s- he program will d.pdf
 
2621008 - C++ 1
2621008 -  C++ 12621008 -  C++ 1
2621008 - C++ 1
 
Lec1_EENG112-Introduction.pdf
Lec1_EENG112-Introduction.pdfLec1_EENG112-Introduction.pdf
Lec1_EENG112-Introduction.pdf
 
The desired program with readLine() method is given belowusin.pdf
The desired program with readLine() method is given belowusin.pdfThe desired program with readLine() method is given belowusin.pdf
The desired program with readLine() method is given belowusin.pdf
 
Write an interactive C++ program whose input is a series of 12 temper.pdf
Write an interactive C++ program whose input is a series of 12 temper.pdfWrite an interactive C++ program whose input is a series of 12 temper.pdf
Write an interactive C++ program whose input is a series of 12 temper.pdf
 
Write a program to take a depth(in Kilometers)inside the earth as in.pdf
Write a program to take a depth(in Kilometers)inside the earth as in.pdfWrite a program to take a depth(in Kilometers)inside the earth as in.pdf
Write a program to take a depth(in Kilometers)inside the earth as in.pdf
 
Lecture # 1 - Introduction Revision - 1 OOPS.pptx
Lecture # 1 - Introduction  Revision - 1 OOPS.pptxLecture # 1 - Introduction  Revision - 1 OOPS.pptx
Lecture # 1 - Introduction Revision - 1 OOPS.pptx
 
Ch02.pdf
Ch02.pdfCh02.pdf
Ch02.pdf
 
Labsheet1stud
Labsheet1studLabsheet1stud
Labsheet1stud
 
I need this coded with Python please- In this project- you will write.pdf
I need this coded with Python please- In this project- you will write.pdfI need this coded with Python please- In this project- you will write.pdf
I need this coded with Python please- In this project- you will write.pdf
 
Lecture # 1 introduction revision - 1
Lecture # 1   introduction  revision - 1Lecture # 1   introduction  revision - 1
Lecture # 1 introduction revision - 1
 
Introduction to C++ lecture ************
Introduction to C++ lecture ************Introduction to C++ lecture ************
Introduction to C++ lecture ************
 
C++ Overview
C++ OverviewC++ Overview
C++ Overview
 
C++ programming language basic to advance level
C++ programming language basic to advance levelC++ programming language basic to advance level
C++ programming language basic to advance level
 
Bottom of FormCreate your own FunctionFunctionsFor eac.docx
Bottom of FormCreate your own FunctionFunctionsFor eac.docxBottom of FormCreate your own FunctionFunctionsFor eac.docx
Bottom of FormCreate your own FunctionFunctionsFor eac.docx
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Apclass
ApclassApclass
Apclass
 
Practical basics on c++
Practical basics on c++Practical basics on c++
Practical basics on c++
 

Más de hesam ahmadian

Jupyter Notebook_CheatSheet.pdf
Jupyter Notebook_CheatSheet.pdfJupyter Notebook_CheatSheet.pdf
Jupyter Notebook_CheatSheet.pdfhesam ahmadian
 
Microsoft PowerPoint - Ch120886.PDF
Microsoft PowerPoint - Ch120886.PDFMicrosoft PowerPoint - Ch120886.PDF
Microsoft PowerPoint - Ch120886.PDFhesam ahmadian
 
Microsoft PowerPoint - Ch120884.PDF
Microsoft PowerPoint - Ch120884.PDFMicrosoft PowerPoint - Ch120884.PDF
Microsoft PowerPoint - Ch120884.PDFhesam ahmadian
 
Microsoft PowerPoint - Ch106606.PDF
Microsoft PowerPoint - Ch106606.PDFMicrosoft PowerPoint - Ch106606.PDF
Microsoft PowerPoint - Ch106606.PDFhesam ahmadian
 
Microsoft PowerPoint - Ch91092.PDF
Microsoft PowerPoint - Ch91092.PDFMicrosoft PowerPoint - Ch91092.PDF
Microsoft PowerPoint - Ch91092.PDFhesam ahmadian
 
Microsoft PowerPoint - Ch90279.PDF
Microsoft PowerPoint - Ch90279.PDFMicrosoft PowerPoint - Ch90279.PDF
Microsoft PowerPoint - Ch90279.PDFhesam ahmadian
 
آشنایی_با_جعبه_ابزار_شبکه_عصبی_در.pdf
آشنایی_با_جعبه_ابزار_شبکه_عصبی_در.pdfآشنایی_با_جعبه_ابزار_شبکه_عصبی_در.pdf
آشنایی_با_جعبه_ابزار_شبکه_عصبی_در.pdfhesam ahmadian
 
5658 2018 10-22-13-55-26
5658 2018 10-22-13-55-265658 2018 10-22-13-55-26
5658 2018 10-22-13-55-26hesam ahmadian
 
Stock management in hospital pharmacy using chance constrained model predicti...
Stock management in hospital pharmacy using chance constrained model predicti...Stock management in hospital pharmacy using chance constrained model predicti...
Stock management in hospital pharmacy using chance constrained model predicti...hesam ahmadian
 

Más de hesam ahmadian (14)

Jupyter Notebook_CheatSheet.pdf
Jupyter Notebook_CheatSheet.pdfJupyter Notebook_CheatSheet.pdf
Jupyter Notebook_CheatSheet.pdf
 
Microsoft PowerPoint - Ch120886.PDF
Microsoft PowerPoint - Ch120886.PDFMicrosoft PowerPoint - Ch120886.PDF
Microsoft PowerPoint - Ch120886.PDF
 
Microsoft PowerPoint - Ch120884.PDF
Microsoft PowerPoint - Ch120884.PDFMicrosoft PowerPoint - Ch120884.PDF
Microsoft PowerPoint - Ch120884.PDF
 
Microsoft PowerPoint - Ch106606.PDF
Microsoft PowerPoint - Ch106606.PDFMicrosoft PowerPoint - Ch106606.PDF
Microsoft PowerPoint - Ch106606.PDF
 
Microsoft PowerPoint - Ch91092.PDF
Microsoft PowerPoint - Ch91092.PDFMicrosoft PowerPoint - Ch91092.PDF
Microsoft PowerPoint - Ch91092.PDF
 
Microsoft PowerPoint - Ch90279.PDF
Microsoft PowerPoint - Ch90279.PDFMicrosoft PowerPoint - Ch90279.PDF
Microsoft PowerPoint - Ch90279.PDF
 
Dr Omidkhah97676.PDF
Dr Omidkhah97676.PDFDr Omidkhah97676.PDF
Dr Omidkhah97676.PDF
 
Dr Omidkhah97677.PDF
Dr Omidkhah97677.PDFDr Omidkhah97677.PDF
Dr Omidkhah97677.PDF
 
Dr Omidkhah97678.PDF
Dr Omidkhah97678.PDFDr Omidkhah97678.PDF
Dr Omidkhah97678.PDF
 
Dr Omidkhah97679.PDF
Dr Omidkhah97679.PDFDr Omidkhah97679.PDF
Dr Omidkhah97679.PDF
 
01.introduction.ppt
01.introduction.ppt01.introduction.ppt
01.introduction.ppt
 
آشنایی_با_جعبه_ابزار_شبکه_عصبی_در.pdf
آشنایی_با_جعبه_ابزار_شبکه_عصبی_در.pdfآشنایی_با_جعبه_ابزار_شبکه_عصبی_در.pdf
آشنایی_با_جعبه_ابزار_شبکه_عصبی_در.pdf
 
5658 2018 10-22-13-55-26
5658 2018 10-22-13-55-265658 2018 10-22-13-55-26
5658 2018 10-22-13-55-26
 
Stock management in hospital pharmacy using chance constrained model predicti...
Stock management in hospital pharmacy using chance constrained model predicti...Stock management in hospital pharmacy using chance constrained model predicti...
Stock management in hospital pharmacy using chance constrained model predicti...
 

Último

ASDFSDFASDFASDFASDFOUIASHDFOIASUD FOIJSADO;IFJOISADJF
ASDFSDFASDFASDFASDFOUIASHDFOIASUD FOIJSADO;IFJOISADJFASDFSDFASDFASDFASDFOUIASHDFOIASUD FOIJSADO;IFJOISADJF
ASDFSDFASDFASDFASDFOUIASHDFOIASUD FOIJSADO;IFJOISADJFJulia Kaye
 
10 Things That Will Shape the Future of Education.pdf
10 Things That Will Shape the Future of Education.pdf10 Things That Will Shape the Future of Education.pdf
10 Things That Will Shape the Future of Education.pdfEducationView
 
Audhina Nur Afifah Resume & Portofolio_2024.pdf
Audhina Nur Afifah Resume & Portofolio_2024.pdfAudhina Nur Afifah Resume & Portofolio_2024.pdf
Audhina Nur Afifah Resume & Portofolio_2024.pdfaudhinafh1
 
wealth_spend_bharatpeVerse_Analysis .pptx
wealth_spend_bharatpeVerse_Analysis .pptxwealth_spend_bharatpeVerse_Analysis .pptx
wealth_spend_bharatpeVerse_Analysis .pptxAnuragBhakuni4
 
127. Reviewer Certificate in BP International
127. Reviewer Certificate in BP International127. Reviewer Certificate in BP International
127. Reviewer Certificate in BP InternationalManu Mitra
 
FAHAD HASSAN NOOR || UCP Business School Data Analytics Head Recommended | MB...
FAHAD HASSAN NOOR || UCP Business School Data Analytics Head Recommended | MB...FAHAD HASSAN NOOR || UCP Business School Data Analytics Head Recommended | MB...
FAHAD HASSAN NOOR || UCP Business School Data Analytics Head Recommended | MB...FaHaD .H. NooR
 
kids gpaddfghtggvgghhhuuuuuhhhgggggy.pptx
kids gpaddfghtggvgghhhuuuuuhhhgggggy.pptxkids gpaddfghtggvgghhhuuuuuhhhgggggy.pptx
kids gpaddfghtggvgghhhuuuuuhhhgggggy.pptxJagrutiSononee
 
Moaaz Hassan El-Shayeb - Projects Portfolio
Moaaz Hassan El-Shayeb - Projects PortfolioMoaaz Hassan El-Shayeb - Projects Portfolio
Moaaz Hassan El-Shayeb - Projects Portfoliomoaaz el-shayeb
 
Fireman Resume Strikuingly Text............................
Fireman Resume Strikuingly Text............................Fireman Resume Strikuingly Text............................
Fireman Resume Strikuingly Text............................calvinjamesmappala
 
STORY OF SUSAN & JUDY - CEREBRAL PALSY.pptx
STORY OF SUSAN & JUDY - CEREBRAL PALSY.pptxSTORY OF SUSAN & JUDY - CEREBRAL PALSY.pptx
STORY OF SUSAN & JUDY - CEREBRAL PALSY.pptxsheenam bansal
 
How to Host a Successful Webinar for Success?
How to Host a Successful Webinar for Success?How to Host a Successful Webinar for Success?
How to Host a Successful Webinar for Success?StrengthsTheatre
 
asdfasdiofujasloidfoia nslkflsdkaf jljffs
asdfasdiofujasloidfoia nslkflsdkaf jljffsasdfasdiofujasloidfoia nslkflsdkaf jljffs
asdfasdiofujasloidfoia nslkflsdkaf jljffsJulia Kaye
 
Chapter-4 Introduction to Global Distributions System and Computerized Reserv...
Chapter-4 Introduction to Global Distributions System and Computerized Reserv...Chapter-4 Introduction to Global Distributions System and Computerized Reserv...
Chapter-4 Introduction to Global Distributions System and Computerized Reserv...Md Shaifullar Rabbi
 
Nashon Holloway - Media/Press Kit - Priv
Nashon Holloway - Media/Press Kit - PrivNashon Holloway - Media/Press Kit - Priv
Nashon Holloway - Media/Press Kit - PrivNashonHolloway
 
Blockchain_TezosDeveloperCommunitySNSCE.pdf
Blockchain_TezosDeveloperCommunitySNSCE.pdfBlockchain_TezosDeveloperCommunitySNSCE.pdf
Blockchain_TezosDeveloperCommunitySNSCE.pdfVISHNURAJSSNSCEAD
 
Chapter-1 IATA, UFTAA, ICAO, FAA, CAA, ATAB, Conventions
Chapter-1 IATA, UFTAA, ICAO, FAA, CAA, ATAB, ConventionsChapter-1 IATA, UFTAA, ICAO, FAA, CAA, ATAB, Conventions
Chapter-1 IATA, UFTAA, ICAO, FAA, CAA, ATAB, ConventionsMd Shaifullar Rabbi
 
reStartEvents March 28th TS/SCI & Above Employer Directory.pdf
reStartEvents March 28th TS/SCI & Above Employer Directory.pdfreStartEvents March 28th TS/SCI & Above Employer Directory.pdf
reStartEvents March 28th TS/SCI & Above Employer Directory.pdfKen Fuller
 

Último (17)

ASDFSDFASDFASDFASDFOUIASHDFOIASUD FOIJSADO;IFJOISADJF
ASDFSDFASDFASDFASDFOUIASHDFOIASUD FOIJSADO;IFJOISADJFASDFSDFASDFASDFASDFOUIASHDFOIASUD FOIJSADO;IFJOISADJF
ASDFSDFASDFASDFASDFOUIASHDFOIASUD FOIJSADO;IFJOISADJF
 
10 Things That Will Shape the Future of Education.pdf
10 Things That Will Shape the Future of Education.pdf10 Things That Will Shape the Future of Education.pdf
10 Things That Will Shape the Future of Education.pdf
 
Audhina Nur Afifah Resume & Portofolio_2024.pdf
Audhina Nur Afifah Resume & Portofolio_2024.pdfAudhina Nur Afifah Resume & Portofolio_2024.pdf
Audhina Nur Afifah Resume & Portofolio_2024.pdf
 
wealth_spend_bharatpeVerse_Analysis .pptx
wealth_spend_bharatpeVerse_Analysis .pptxwealth_spend_bharatpeVerse_Analysis .pptx
wealth_spend_bharatpeVerse_Analysis .pptx
 
127. Reviewer Certificate in BP International
127. Reviewer Certificate in BP International127. Reviewer Certificate in BP International
127. Reviewer Certificate in BP International
 
FAHAD HASSAN NOOR || UCP Business School Data Analytics Head Recommended | MB...
FAHAD HASSAN NOOR || UCP Business School Data Analytics Head Recommended | MB...FAHAD HASSAN NOOR || UCP Business School Data Analytics Head Recommended | MB...
FAHAD HASSAN NOOR || UCP Business School Data Analytics Head Recommended | MB...
 
kids gpaddfghtggvgghhhuuuuuhhhgggggy.pptx
kids gpaddfghtggvgghhhuuuuuhhhgggggy.pptxkids gpaddfghtggvgghhhuuuuuhhhgggggy.pptx
kids gpaddfghtggvgghhhuuuuuhhhgggggy.pptx
 
Moaaz Hassan El-Shayeb - Projects Portfolio
Moaaz Hassan El-Shayeb - Projects PortfolioMoaaz Hassan El-Shayeb - Projects Portfolio
Moaaz Hassan El-Shayeb - Projects Portfolio
 
Fireman Resume Strikuingly Text............................
Fireman Resume Strikuingly Text............................Fireman Resume Strikuingly Text............................
Fireman Resume Strikuingly Text............................
 
STORY OF SUSAN & JUDY - CEREBRAL PALSY.pptx
STORY OF SUSAN & JUDY - CEREBRAL PALSY.pptxSTORY OF SUSAN & JUDY - CEREBRAL PALSY.pptx
STORY OF SUSAN & JUDY - CEREBRAL PALSY.pptx
 
How to Host a Successful Webinar for Success?
How to Host a Successful Webinar for Success?How to Host a Successful Webinar for Success?
How to Host a Successful Webinar for Success?
 
asdfasdiofujasloidfoia nslkflsdkaf jljffs
asdfasdiofujasloidfoia nslkflsdkaf jljffsasdfasdiofujasloidfoia nslkflsdkaf jljffs
asdfasdiofujasloidfoia nslkflsdkaf jljffs
 
Chapter-4 Introduction to Global Distributions System and Computerized Reserv...
Chapter-4 Introduction to Global Distributions System and Computerized Reserv...Chapter-4 Introduction to Global Distributions System and Computerized Reserv...
Chapter-4 Introduction to Global Distributions System and Computerized Reserv...
 
Nashon Holloway - Media/Press Kit - Priv
Nashon Holloway - Media/Press Kit - PrivNashon Holloway - Media/Press Kit - Priv
Nashon Holloway - Media/Press Kit - Priv
 
Blockchain_TezosDeveloperCommunitySNSCE.pdf
Blockchain_TezosDeveloperCommunitySNSCE.pdfBlockchain_TezosDeveloperCommunitySNSCE.pdf
Blockchain_TezosDeveloperCommunitySNSCE.pdf
 
Chapter-1 IATA, UFTAA, ICAO, FAA, CAA, ATAB, Conventions
Chapter-1 IATA, UFTAA, ICAO, FAA, CAA, ATAB, ConventionsChapter-1 IATA, UFTAA, ICAO, FAA, CAA, ATAB, Conventions
Chapter-1 IATA, UFTAA, ICAO, FAA, CAA, ATAB, Conventions
 
reStartEvents March 28th TS/SCI & Above Employer Directory.pdf
reStartEvents March 28th TS/SCI & Above Employer Directory.pdfreStartEvents March 28th TS/SCI & Above Employer Directory.pdf
reStartEvents March 28th TS/SCI & Above Employer Directory.pdf
 

02.softwareengr.ppt

  • 1. Programming and Problem Solving — Software Engineering (Read Chap. 2) 1
  • 2. Problem Solving A Temperature-conversion problem: Write a program that, given a temperature in Celsius, displays that temperature in Fahrenheit. • Implementation (Coding) • Testing, Execution and Debugging • Maintenance OCD (Object-Centered Design) 2 5 Phases of (Simplified) Software Life Cycle: • Problem Analysis and Specification • Design
  • 3. OCD (Object-Centered Design) 1. Describe the behavior of the program. 2. Identify the problem’s objects and make a table of information about them. 3. Identify the problem’s operations and make a table of information about them. 4. Organize the objects and operations into a sequence of steps, called an algorithm, to solve the problem. 3
  • 4. Behavior A. Describe the desired behavior of the program: Our program should display program information to the user and then a prompt for the Celsius temperature on the screen, read that temperature from the keyboard, compute the corresponding Fahrenheit temperature, and display the result, along with a descriptive label on the screen. 4 Using OCD
  • 5. Problem Objects B. Identify the nouns in the behavioral description (other than "non-behavioral" ones like "program" and "user"): Our program should display program information to the user and then a prompt for the Celsius temperature on the screen, read that temperature from the keyboard, compute the corresponding Fahrenheit temperature, and display that temperature, along with a descriptive label on the screen. These make up the objects in our problem. 5 Using OCD
  • 6. cout cin Information about Objects Determine a type and a name (if necessary) for each object and whether it is a constant or a variable. 6 Problem Object Type Kind Name program information text constant none prompt text constant none Celsius temperature real number variable celsius screen output variable keyboard input variable Fahrenheit temperature real number variable fahrenheit label text constant none Using OCD C++ Type ? ? double ? ? double ?
  • 7. Operations These make up the operations in our problem. C. Identify the verbs in the behavioral description: Our program should display program information to the user and then a prompt for the Celsius temperature on the screen, read that temperature from the keyboard, compute the corresponding Fahrenheit temperature, and display that temperature, along with a descriptive label on the screen. 7 Using OCD
  • 8. Information about Operations Identify the C++ operator to perform a given operation, if there is one. To compute the Fahrenheit temperature, we need to know/find the Celsius to Fahrenheit conversion formula. 8 Operation Pre- defined? C++ Operator Library Display yes << iostream Read yes >> iostream Compute the Fahrenheit temperature ?? ?? ?? Using OCD
  • 9. Celsius-to-Fahrenheit Formula for converting Celsius to Fahrenheit: fahrenheit = 1.8 × celsius + 32 Converting the temperature thus adds new objects and operations to our problem. 9 Using OCD
  • 10. Information about Objects (Revised) 10 Problem Object Type Kind C++ Type Name program information text constant ? none prompt text constant ? none Celsius temperature real number variable double celsius screen output variable ? cout keyboard input variable ? cin Fahrenheit temperature real number variable double fahrenheit label text constant ? none conversion factor 1.8 real number constant double none conversion factor 32 integer constant int none Using OCD
  • 11. Information about Operations (Revised) 11 Operation Pre- defined? C++ Operator Library Display yes << iostream Read yes >> iostream Compute the Fahrenheit temperature: Multiply two real values (1.8 and celsius) yes * built-in Add a real value (the result above) and an integer (32) yes + built-in Store a real value (the result above) in a variable yes = built-in Using OCD
  • 12. Algorithm D. Organize the objects and operations into a sequence of steps that solves the problem, called an algorithm. 1. Display via cout information about the program to the user. 2. Display via cout a prompt for the Celsius temperature. 3. Read the temperature from cin. 4. Compute the Fahrenheit temperature from the Celsius temperature. 5. Display via cout the Fahrenheit temperature and an informative label. 12 Using OCD
  • 13. Coding Once we have designed an algorithm, the next step is to translate that algorithm into a high level language like C++. This involves writing instructions to — represent the objects, and — perform the operations in C++. 13
  • 14. 14 The Code When learning to program, it is helpful to just start with the algorithm as comments in main() /* John Doe CS 104X Input: Output: -----------------------------------------------*/ #include <iostream> // cin, cout, <<, >> using namespace std; int main() { } /* temperature.cpp converts a Celsius temperature to Fahrenheit. John Doe Lab 1 Jan. 5, 2012 CS 104X Input: A Celsius temperature Output: Corresponding Fahrenheit temperature -----------------------------------------------*/ #include <iostream> // cin, cout, <<, >> using namespace std; int main() { // 1. Display via cout information about the // program to the user. // 2. Display via cout a prompt for the Celsius // temperature. // 3. Read the temperature from cin. // 4. Compute the Fahrenheit temperature from the // Celsius temperature. // 5. Display via cout the Fahrenheit temperature // and an informative label. }
  • 15. cout << "John Doe CS 104X -- Lab 1nn"; cout << "** Convert Celsius temps to Fahrenheit **n"; cout << "Please enter a temperature in Celsius: "; 15 /* temperature.cpp converts a Celsius temperature to Fahrenheit. John Doe Lab 1 Jan. 5, 2012 CS 104X Input: A Celsius temperature Output: Corresponding Fahrenheit temperature -----------------------------------------------*/ #include <iostream> // cin, cout, <<, >> using namespace std; int main() { // 1. Display via cout information about the // program to the user. // 2. Display via cout a prompt for the Celsius // temperature. The Code
  • 16. double celsius; cin >> celsius; double fahrenheit = 1.8 * celsius + 32; cout << celsius << " degrees Celsius is " << fahrenheit << " degrees Fahrenheit.n"; 16 // 3. Read the temperature from cin. // 4. Compute the Fahrenheit temperature from the // Celsius temperature. // 5. Display via cout the Fahrenheit temperature // and an informative label. } The Code It’s wise to echo input data to insure computer read what you intended.
  • 17. 17 Comments /* temperature.cpp converts a Celsius temperature to Fahrenheit. John Doe Lab 1 Jan. 5, 2012 CS 104X Input: A Celsius temperature Output: Corresponding Fahrenheit temperature -----------------------------------------------*/ #include <iostream> // cin, cout, <<, >> using namespace std; int main() { // 1. Display via cout information about the // program to the user. cout << "John Doe CS 104X -- Lab 1nn"; cout << "** Convert Celsius temps to Fahrenheit **n"; // 2. Display via cout a prompt for the Celsius // temperature. cout << "Please enter a temperature in Celsius: "; Always begin a program with opening documentation enclosed in /* and */.
  • 18. /* temperature.cpp converts a Celsius temperature to Fahrenheit. John Doe Lab 1 Jan. 5, 2012 CS 104X Input: A Celsius temperature Output: Corresponding Fahrenheit temperature -----------------------------------------------*/ #include <iostream> // cin, cout, <<, >> using namespace std; int main() { // 1. Display via cout information about the // program to the user. cout << "John Doe CS 104X -- Lab 1nn"; cout << "** Convert Celsius temps to Fahrenheit **n"; // 2. Display via cout a prompt for the Celsius // temperature. cout << "Please enter a temperature in Celsius: "; 18 Libraries This loads the C++ library that we need. Lab & Proj. 1: #include <cmath>
  • 19. 19 /* temperature.cpp converts a Celsius temperature to Fahrenheit. John Doe Lab 1 Jan. 5, 2012 CS 104X Input: A Celsius temperature Output: Corresponding Fahrenheit temperature -----------------------------------------------*/ #include <iostream> // cin, cout, <<, >> using namespace std; int main() { // 1. Display via cout information about the // program to the user. cout << "John Doe CS 104X -- Lab 1nn"; cout << "** Convert Celsius temps to Fahrenheit **n"; // 2. Display via cout a prompt for the Celsius // temperature. cout << "Please enter a temperature in Celsius: "; Each step of the algorithm is implemented by one or more C++ program statements inside main() function. Why no n ?
  • 20. 20 // 3. Read the temperature from cin. double celsius; cin >> celsius; // 4. Compute the Fahrenheit temperature from the // Celsius temperature. double fahrenheit = 1.8 * celsius + 32; // 5. Display via cout the Fahrenheit temperature // and an informative label. cout << celsius << " degrees Celsius is " << fahrenheit << " degrees Fahrenheit.n"; } Each step of the algorithm is implemented by one or more C++ program statements inside main() function. Note spacing, indentation, & alignment to make program “look nice” and easier to read. This will be one criterion used in grading. Always a good idea to echo input data
  • 21. Testing Run your program using sample data (whose correctness is easy to check): John Doe CS 104X -- Lab 1 ** Convert Celsius temps to Fahrenheit ** Please enter the temperature in Celsius: 0 0 degrees Celsius is 32 degrees Fahrenheit. 21 John Doe CS 104X -- Lab 1 ** Convert Celsius temps to Fahrenheit ** Please enter the temperature in Celsius: 100 100 degrees Celsius is 212 degrees Fahrenheit.
  • 22. When you are convinced that the program is correct, run it with the required data values. John Doe CS 104X -- Lab 1 ** Convert Celsius temps to Fahrenheit ** Please enter the temperature in Celsius: -17.78 -17.78 degrees Celsius is -0.004 degrees Fahrenheit. 22
  • 23. 23 For a programming assignment: Lose a few points or may be lucky and the grader doesn’t catch it. For a real-world problem: Much more may be at stake: money, jobs, and even lives. Why Testing is Important: • September,1999: Mars Climate Orbiter • June, 1996: Ariane 5 rocket • March,1991: DSC Communications • February 25, 1991(Gulf War): Patriot missile Testing is never finished; it is only stopped. Testing can only show the presence of errors, not their absence. See Other Course Information (CS 104 page): • Importance of Program Testing — Horror Stories
  • 24. Maintenance 24 • Large % of computer center budgets • Large % of programmer's time • Largest % of software development cost Why? Poor structure, poor documentation, poor style ⇒ less likely to catch bugs before release ⇒ fixing of bugs difficult and time-consuming ⇒ impede implementation of enhancements See Other Course Information (CS 104 page): • Time Spent on Program Maintenance