Upload
msaki6665803
View
217
Download
0
Embed Size (px)
Citation preview
7/28/2019 SE Chapter01
1/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 1
Chapter 1
Software & Software Engineering
Slide Set to accompany
Software Engineering: A Practitioners Approach, 7/eby Roger S. Pressman
Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman
For non-profit educational use only
May be reproduced ONLY for student use at the university level when used in conjunctionwith Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is
prohibited without the express written permission of the author.
All copyright information MUST appear if these slides are posted on a website for student
use.
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 2
What is Software?
Software is: (1) instructions(computerprograms) that when executed provide desiredfeatures, function, and performance; (2) data
structuresthat enable the programs toadequately manipulate information and (3)documentationthat describes the operationand use of the programs.
7/28/2019 SE Chapter01
2/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 3
What is Software?
Software is developed or engineered, it isnot manufactured in the classical sense.
Software doesn't "wear out."
Although the industry is moving towardcomponent-based construction, mostsoftware continues to be custom-built.
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 4
Wear vs. Deterioration
idealized curve
change
actual curve
Failurerate
Time
increased failurerate due to side effects
7/28/2019 SE Chapter01
3/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 5
Software Applications
system software
application software
engineering/scientificsoftware
embedded software
product-line software
WebApps (Web
applications) AI software
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 6
SoftwareNew Categories
Open world computingpervasive,distributed computing
Ubiquitous computingwireless networks
Netsourcingthe Web as a computingengine
Open sourcefree source code open tothe computing community (a blessing, butalso a potential curse!)
7/28/2019 SE Chapter01
4/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 7
Legacy Software
software must be adapted to meet the needsof new computing environments ortechnology.
software must be enhanced to implement newbusiness requirements.
software must be extended to make itinteroperable with other more modernsystems or databases.
software must be re-architected to make itviable within a network environment.
Why must it change?
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 8
Software Engineering
Some realities:
a concerted effort should be made to understand theproblem before a software solution is developed
design becomes a pivotal activity
software should exhibit high quality
software should be maintainable
The seminal definition:
[Software engineering is] the establishment and useofsound engineering principlesin order to obtaineconomicallysoftware that isreliable and worksefficientlyonreal machines.
7/28/2019 SE Chapter01
5/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 9
Software Engineering
The IEEE definition: Software Engineering: (1) The application of a
systematic, disciplined, quantifiable approachto thedevelopment, operation, and maintenanceofsoftware; that is, the application of engineering tosoftware. (2) The study of approaches as in (1).
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 10
A Layered Technology
Software Engineering
aa qualityquality focusfocus
process modelprocess model
methodsmethods
toolstools
7/28/2019 SE Chapter01
6/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 11
A Process Framework
Process frameworkProcess framework
Framework activitiesFramework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella ActivitiesUmbrella Activities
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 12
Framework Activities Communication
Planning
Modeling
Analysis of requirements Design
Construction Code generation
Testing
Deployment
7/28/2019 SE Chapter01
7/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 13
Umbrella Activities Software project management
Formal technical reviews
Software quality assurance
Software configuration management
Work product preparation and production
Reusability management
Measurement Risk management
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 14
The Essence of Practice
Polya suggests:
1. Understand the problem(communication and analysis).
2. Plan a solution(modeling and software design).
3. Carry out the plan(code generation).
4. Examine the result for accuracy(testing and qualityassurance).
7/28/2019 SE Chapter01
8/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 15
Understand the Problem
Who has a stake in the solution to theproblem?That is, who are the stakeholders?
What are the unknowns?What data, functions,and features are required to properly solve theproblem?
Can the problem be compartmentalized?Is itpossible to represent smaller problems thatmay be easier to understand?
Can the problem be represented graphically?Can an analysis model be created?
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 16
Plan the Solution
Have you seen similar problems before?Are therepatterns that are recognizable in a potential solution? Isthere existing software that implements the data,functions, and features that are required?
Has a similar problem been solved?If so, are elementsof the solution reusable?
Can subproblems be defined?If so, are solutions readilyapparent for the subproblems?
Can you represent a solution in a manner that leads toeffective implementation?Can a design model becreated?
7/28/2019 SE Chapter01
9/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 17
Carry Out the Plan
Does the solution conform to the plan?Issource code traceable to the design model?
Is each component part of the solution provablycorrect?Has the design and code beenreviewed, or better, have correctness proofs
been applied to algorithm?
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 18
Examine the Result
Is it possible to test each component part of thesolution?Has a reasonable testing strategybeen implemented?
Does the solution produce results that conformto the data, functions, and features that arerequired?Has the software been validated
against all stakeholder requirements?
7/28/2019 SE Chapter01
10/10
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 19
Software Myths
Affect managers, customers (andother non-technical stakeholders)and practitioners
Are believable because they oftenhave elements of truth,
but
Invariably lead to bad decisions,
therefore
Insist on reality as you navigate your
way through software engineering