software engg. pressman_ch-1
DESCRIPTION
TRANSCRIPT
![Page 1: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/1.jpg)
1
Software Engineering: A Practitioner’s Approach, 6th editionby Roger S. Pressman
![Page 2: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/2.jpg)
Software’s Dual Role Software : is any set of machine-readable
instructions that directs a computer's processor to perform specific operations.
Software is a product Transforms information - produces, manages,
acquires, modifies, displays, or transmits information
Delivers computing potential of hardware and networks
Software is a vehicle for delivering a product Controls other programs (operating system) Effects communications (networking software) Helps build other software (software tools &
environments)2
![Page 3: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/3.jpg)
Software Applications system software( service other
program)- compiler, editor application software- MARIO,
TERACOPY engineering/scientific software
–CAD TOOL embedded software –
automated alarm system, REAL TIME SYSTEM
product-line software-MS OFFICE
web applications-skype AI software- IMAGE
RECOGNITION S/W3
![Page 4: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/4.jpg)
Hardware vs. Software
Hardware Software
Manufactured Wears out Built using components Relatively simple
Developed/engineered Deteriorates Custom built Complex
4
![Page 5: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/5.jpg)
Manufacturing vs. Development Once a hardware product has been
manufactured, it is difficult or impossible to modify. In contrast, software products are routinely modified and upgraded.
In hardware, hiring more people allows you to accomplish more work, but the same does not necessarily hold true in software engineering.
Unlike hardware, software costs are concentrated in design rather than production.
5
![Page 6: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/6.jpg)
Wear vs. DeteriorationHardware wears out over time
6
![Page 7: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/7.jpg)
Wear vs. Deterioration
Software deteriorate over time
7
![Page 8: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/8.jpg)
Component Based vs. Custom Built
Hardware products typically employ many standardized design components.
Most software continues to be custom built. The software industry does seem to be
moving (slowly) toward component-based construction.
8
![Page 9: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/9.jpg)
What is Software Engineering?
9
The application of a systematic, The application of a systematic, disciplined, quantifiable approach to disciplined, quantifiable approach to the development, operation, and the development, operation, and maintenance of softwaremaintenance of software
Engineering approach to develop software
![Page 10: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/10.jpg)
Evolution of an Art into and Engineering
Discipline The early programmers used an exploratory
(also called build and fix) style.
In the build and fix (exploratory) style, normally a `dirty' program is quickly developed.
The different imperfections that are subsequently noticed are fixed.
10
?
![Page 11: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/11.jpg)
Why Study Software Engineering?
To acquire skills to develop large programs. Ability to solve complex programming problems:
How to break large projects into smaller and manageable parts? How to use abstraction?
Also learn techniques of: Specification, design, user interface development, testing, project management, etc.
11
![Page 12: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/12.jpg)
Why study software engineering To acquire skills to be a better
programmer:
Higher Productivity
Better Quality Programs
12
![Page 13: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/13.jpg)
Software engineering phases:
DEFINITION PHASE:This phase focus on
What info to be processed What function and performance are
desired What system behavior expected What interfaces are to be established What design constraints exist What validation criteria are identified 13
![Page 14: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/14.jpg)
S/W ENGINEERING PHASES DEVELOPMENT PHASE
This phase focus on How data is to be structured How function to be implemented How procedural details are
implemented How interfaces are to be characterized How design will be translated into
programming language How test cases are developed
14
![Page 15: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/15.jpg)
s/w engg phases continue..
SUPPORT PHASEThis phase focus on
Change associated with error correction Change associated with enhancement Change associated with adaptations
15
![Page 16: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/16.jpg)
Software Myths
Affect managers, customers (and other non-technical stakeholders) and practitioners
Are believable because they often have elements of truth,
but … Invariably lead to bad decisions,
therefore … Insist on reality as you navigate your way
through software engineering
16
![Page 17: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/17.jpg)
Management Myths
“ We already have a book of standards and procedures for building software. It does provide my people with everything they need to know …”
“If my project is behind the schedule, I always can add more programmers to it and catch up …”
(a.k.a. “The Mongolian Horde concept”)
“If I decide to outsource the software project to a third party, I can just relax: Let them build it, and I will just pocket my profits …”
17
![Page 18: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/18.jpg)
Customer Myths
“ A general statement of objectives is sufficient to begin writing programs - we can fill in the details later …”
“Project requirements continually change but this change can easily be accommodated because software is flexible …”
18
![Page 19: Software engg. pressman_ch-1](https://reader036.vdocument.in/reader036/viewer/2022062511/54cc22e94a79591e0f8b46c0/html5/thumbnails/19.jpg)
Practitioner’s Myths “ Let’s start coding ASAP, because once we
write the program and get it to work, our job is done …”
“Until I get the program running, I have no way of assessing its quality …”
“The only deliverable work product for a successful project is the working program …”
“Software engineering is baloney. It makes us create tons of paperwork, only to slow us down …”
19