![Page 1: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/1.jpg)
James Tam
A High-Level Model For Software Development
What is involved in the process of designing, writing and maintaining computer programs?
![Page 2: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/2.jpg)
James Tam
What Is Computer Science?
Review: Solving problems with the computer
![Page 3: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/3.jpg)
James Tam
Limitation: The Computer Is Not Very "Smart"
My taxes returns are
being audited. Help me!
I don't understand.
![Page 4: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/4.jpg)
James Tam
The Computer Must Be Told Exactly What To Do
Print my 1999 tax return.
Print my 2000 tax return.
: : : :
0010001000010000001000000..
Software: The instructions that tell the computer what to do to.
![Page 5: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/5.jpg)
James Tam
A Model For Creating Computer Software
Specify the problem
Develop a design
Implement the design
Maintain the design
![Page 6: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/6.jpg)
James Tam
Specifying The Problem
Determining what problem will be solved by the software
Bringing up important issues
![Page 7: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/7.jpg)
James Tam
Develop A High-Level Design
How to solve this problem? (algorithm)
Check the algorithm
Can be specified through flowcharts and pseudo-code (next section of notes)
![Page 8: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/8.jpg)
James Tam
Developing An Algorithm: Top-Down Approach
General approach
Approach to part of problem
Specific steps
Specific steps
Specific steps
Specific steps
Approach to part of problem
Approach to part of problem
Abstract
Particular
Top
Bottom
Figure extracted from Computer Science Illuminated by Dale N. and Lewis J.
![Page 9: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/9.jpg)
James Tam
Implement The Design
Translating the high level to design to an actual programming language (e.g., Pascal)
Test the program design
Balance of this course (and the next course, CPSC 233)
![Page 10: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/10.jpg)
James Tam
Maintaining The Design
Modify the program according to changing needs and problems that have been found
Some in CPSC 233 (more in CPSC 333)
![Page 11: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/11.jpg)
James Tam
Why Bother With Computers: Speed
Start!Done!
Did we start yet?
![Page 12: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/12.jpg)
James Tam
Why Bother With Computers: Repetition
Repetition
…999, 1000, 1001,
13…
Repeat a billion times
No problemo!
![Page 13: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/13.jpg)
James Tam
Why Bother With Computers: Repetition
Repetition
Oops!
![Page 14: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/14.jpg)
James Tam
Why Bother With People?
Creativity
Intelligence
![Page 15: James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?](https://reader036.vdocument.in/reader036/viewer/2022081516/56649d2a5503460f949fe9b7/html5/thumbnails/15.jpg)
James Tam
Summary
What are the major steps involved in creating software• Specification• Design• Implementation• Maintenance
What are the strengths of computers vs. people