se lecture1 ch1 software and sw engineering
DESCRIPTION
Software EngineeringTRANSCRIPT
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 1
Chapter 1
Software and Software Engineering
Slide Set to accompany
Software Engineering: A Practitioner’s Approach, 7/e by 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 conjunction with 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.
2
3
Scope of Software Scope of Software EngineeringEngineering
always with complaints like why does it take so long to get software
finished? why are development costs so high? why can’t we find all the errors before we give
to customers? why do we continue to have difficulty in
measuring progress as software is being developed?
why we always need to restart during installation?
4
Scope of Software Scope of Software Engineering (contd)Engineering (contd)
Why cannot bridge-building techniques be used to build operating systems? Attitude to collapse Imperfect engineering Complexity Maintenance
5
Bridge Collapse vs. S/W Bridge Collapse vs. S/W Failure Failure
Frequency
bridges sometimes collapse, but considerably less often than OS
Attitude to the problems
when a bridge collapses, redesign and rebuild from scratch, and,
in the same time, other bridges to be carefully inspected or even
redesigned and rebuilt
when an OS crashes, only simply to reboot in the hope that the set
of circumstances that caused the crash will not recur and there
is usually no evidence as to the cause of the crash
6
Bridge Collapse vs. S/W Bridge Collapse vs. S/W Failure (Cont.)Failure (Cont.)
Maintenance bridges: with restricted maintenance activities
software: more than 50% of the source codes rewritten over 5
years usually changed due to the changes of customers’ needs
Complexity bridges: continuous (analog) systems (time-variant)
software: discrete systems (state transition)
7
What is Software?What is Software?
an information transformer that produces, manages, acquires, modifies, displays, or transmits information
both a product and a vehicle for delivering a product the basis for the control of the computer (OS), the
communication of information (networks), the creation and control of other programs (S/W tools)
instructions (computer programs) that when executed provide desired function and performance
data structures that enable the programs to adequately manipulate information
documents that describe the operation and use of the programs
8
What is Software?What is Software?
Software is a set of items or objects that form a “configuration” that includes • programs • documents • data ...
9
Software CharacteristicsSoftware Characteristics
software is engineered software doesn’t wear out software is complex software is a ‘differentiator’ software is like an ‘aging factory’ Software is intangible
10
Software CharacteristicsSoftware Characteristics a logical rather than a physical system
element being developed or engineered, but not being
manufactured software cost concentrating in engineering, not
in materials software not “wearing out” but “deteriorating” without “spare parts” in software maintenance most software continuing to be custom built
11
CS vs SECS vs SE
Differences b/w computer science and software engineering CS: to investigate a variety of ways to produce
S/W, some good and some bad SE: to be interested in only those techniques that
make sound economic sense
12
Maintenance AspectsMaintenance Aspects
Software Life Cycle The way we produce software, including
• The life-cycle model• The individuals• CASE tools
13
Life-cycle modelLife-cycle model
1. Requirements phase2. Specification phase3. Design phase4. Implementation phase5. Integration phase (in parallel with 4)6. Maintenance phase7. Retirement
14
Approximate Relative Cost Approximate Relative Cost of Each Phaseof Each Phase Maintenance constitutes 67% of total cost
15
Comparative Relative Cost Comparative Relative Cost of Each Phaseof Each Phase
16
Good and Bad SoftwareGood and Bad Software
Good software is maintained—bad software is discarded
Different types of maintenance Corrective maintenance [about 20%] Enhancement
• Perfective maintenance [about 60%]• Adaptive maintenance [about 20%]
17
Specification and Specification and Maintenance FaultsMaintenance Faults
60 to 70 percent of faults are specification and design faults
Data of Kelly, Sherif, and Hops [1992] 1.9 faults per page of specification 0.9 faults per page of design 0.3 faults per page of code
Data of Bhandari et al. [1994]
18
Specification and Maintenance Specification and Maintenance Faults (contd.)Faults (contd.)
Faults at end of the design phase of the new version of the product 13% of faults from previous version of product 16% of faults in new specifications 71% of faults in new design
19
Cost to Detect and Correct a FaultCost to Detect and Correct a Fault
20
The Cost of ChangeThe Cost of Change
Definition Development After release
1x
1.5-6x
60-100x
21
Product Bathtub Curve ModelProduct Bathtub Curve ModelFa
ilure
Rat
e
Time
“Infant Mortality” --due to design or manufacturing defects
“Wear Out” --due to cumulative affects of environments
22
Software Idealized CurveSoftware Idealized CurveFa
ilure
Rat
e
Time
Idealized Curve
23
Software Actual Failure CurveSoftware Actual Failure CurveFa
ilure
Rat
e
Time
Idealized CurveChange
Actual Curve
Increased failure ratesdue to side effects
24
What is software What is software engineering? engineering?
Software Engineering: -- technologies that make it easier, faster, and less expensive
to build high-quality computer programs
-- a discipline aiming to the production of fault-free software,
delivered on time and within budget, that satisfies the
users’ needs
-- an engineering-like activity in software production
-- the philosophy and paradigm of established engineering
disciplines to solve what are termed software crisis
25
Software ApplicationsSoftware Applications
system software real-time software business software engineering and scientific software embedded software personal computer software web-based software artificial intelligence software
26
Software Myths Software Myths (Management)(Management)
Myth1: We already have a book that’s full of standards and procedures for building s/w, won’t that provide my people with everything they need to know?
Myth2: My people have state-of-the-art software development tools, after all, we buy them the newest computers.
Myth3: If we get behind schedule, we can add more programmers and catch up.
Myth4: If I decide to outsource the software project to a third party, I can just relax and let that firm build it.
27
Software Myths Software Myths (Customer)(Customer)
Myth1: A general statement of objectives is sufficient to begin writing programs – we can fill in the details later.
Myth2: Project requirements continually change, but change can be easily accommodated because software is flexible.
28
Software Myths (Practitioner)Software Myths (Practitioner)
Myth1: Once we write the program and get it to work, our job is done. Fact: the sooner you begin writing code, the longer it
will take you to get done. Myth2: Until I get the program “running,” I have no way
of assessing its quality. Myth3: The only deliverable work product for a
successful project is the working program. Myth4: Software engineering will make us create
voluminous and unnecessary documentation and will invariable slow us down.