Lecture 3 André van der Hoek Todays Lecture What makes software engineering difficult An introduction to software life cycle models Visibility vs Invisibility Software as is cannot be viewed meaningfully ID: 782653
Download The PPT/PDF document "Introduction to Software Engineering" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Introduction to Software EngineeringLecture 3
André
van der
Hoek
Slide2Today’s Lecture
What makes software engineering difficult?
An introduction to software life cycle models
Slide3Visibility vs…
Slide4…Invisibility
Software as is cannot be viewed meaningfully
Stack of paper
Set of files
Software cannot be interpreted easily
How to read source code?How to read a million lines of source code?How to read a part of source code?
Invisibility affects processHow to measure progress?Is a bigger stack of paper closer to the end-result than a smaller stack of paper?
Slide5Manageable Complexity vs…
Slide6…Unmanageable Complexity
Software cannot be easily abstracted
Formulas
Only in very few domains
Diagrams, graphs, and other representations
Typically non-hierarchicalFar too many cross-references
Few concepts are available to use in an abstractionTension between high-level understanding and low-level detailed specificationHigh-level understanding leaves out important detailsAggregation often does not work
Slide7Environment Can Be Changed vs…
Slide8…Environment Cannot Be Changed
Software has to adhere to the “world” in which it is placed
Cannot change the hardware
Cannot change the way people do business
The “world” is often not clearly specified
How can you change something that you cannot specify?Leads to many software changes
Perception is that software is easier to change
Slide9No Major Changes vs…
Slide10…Major Changes
Software is remarkably easy to change
Change the source code, recompile, rerun
“One line here, one line there”
Unfortunately, even small changes can have disastrous consequences
A single wrong character can surreptitiously change the behavior of the softwareThe effects of most changes are only visible in certain circumstances
Sometimes, the environment does changeSoftware is used in different organizationsSoftware is used for different purposes
Slide11Drastic Consequences
Deceased patients
X-ray machine delivered very high doses because of a timing problem in its control software
Crashed planes
Software prevented pilots from performing emergency maneuvers
Software had similar codes for different airportsDecreased national security
NSA computers down for four days due to a “software problem”
Peter Neumann’s Risks Digest: http://catless.ncl.ac.uk/Risks
Slide12High Cost
[Schach]
Slide13Cost of Change Progressively Higher
[Schach]
Slide14Processes as a Remedy
Institute processes through which software is engineered
Cover all steps from initial idea and requirements to delivery, maintenance, and final retirement
Make sure we do the right things/things right
Make sure we do not forget to do anything
Different processes for different kinds of software
Not a silver bullet [Brooks “No Silver Bullet”]Software is still intrinsically difficult to deal withProcesses help, but cannot guarantee anything
Remember: People + Processes + Tools
Product
Slide15Processes
Elements
Activities (“Phases”)
Artifacts
Can include process specifications
Resources
People (their time and their cost)Tools (their time and their cost)Relationships between the elementsPrecedence, requires, provides, refines to, …Constraints
TimeCostQualities (repeatable process?)
Slide16Software Life Cycle Models
Build-and-fix
Waterfall
Rapid prototyping
Incremental
Synchronize-and-stabilizeSpiral
A software life cycle model is a high-level process
Slide17Build-and-Fix
Build first
version
Modify until
client is satisfied
Operations mode
Retirement
Development
Maintenance
Slide18Build-and-Fix
Build first
version
Modify until
client is satisfied
Operations mode
Retirement
Development
Maintenance
Slide19Build-and-Fix
Build first
version
Modify until
client is satisfied
Operations mode
Retirement
Development
Maintenance
Slide20Build-and-Fix
Build first
version
Modify until
client is satisfied
Operations mode
Retirement
Development
Maintenance
Slide21Build-and-Fix
Build first
version
Modify until
client is satisfied
Operations mode
Retirement
Development
Maintenance
Slide22Build-and-Fix
Build first
version
Modify until
client is satisfied
Operations mode
Retirement
Development
Maintenance
Slide23Build-and-Fix
Build first
version
Modify until
client is satisfied
Operations mode
Retirement
Development
Maintenance
Slide24Build-and-Fix
Build first
version
Modify until
client is satisfied
Operations mode
Retirement
Development
Maintenance
Slide25Build-and-Fix
Build first
version
Modify until
client is satisfied
Operations mode
Retirement
Development
Maintenance
Slide26Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide27Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide28Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide29Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide30Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide31Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide32Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide33Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide34Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide35Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide36Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide37Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide38Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide39Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide40Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide41Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide42Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide43Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide44Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide45Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide46Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide47Waterfall
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide48Rapid Prototyping
Operations mode
Retirement
Build and discard
simple prototype
Verify
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
phase
Test
Changed
requirementsVerify
Development
Maintenance
Slide49FOR EACH BUILD
Perform detailed design,
implementation, and
integration. Test.
Deliver to client.
Incremental
Operations mode
Retirement
Requirements
phase
Verify
Specification
phase
Verify
Architectural
design
Verify
Development
Maintenance
Slide50Synchronize-and-Stabilize
Specifications
Implementation,
Integration
Deliver to
client (version 1)
Specifications
Design
Implementation,
Integration
Deliver to
client (version 2)
Specifications
Design
Implementation,
Integration
Deliver to
client (version 3)
Specifications
Design
Implementation,Integration
Deliver toclient (version n)
...
.....
.
Specification team
Design team
Implementation/integration team
Design
Slide51Synchronize-and-Stabilize
Specifications
Implementation,
Integration
Deliver to
client (version 1)
Specifications
Design
Implementation,
Integration
Deliver to
client (version 2)
Specifications
Design
Implementation,
Integration
Deliver to
client (version 3)
Specifications
Design
Implementation,Integration
Deliver toclient (version n)
...
.....
.
Specification team
Design team
Implementation/integration team
Design
Slide52Synchronize-and-Stabilize
Specifications
Implementation,
Integration
Deliver to
client (version 1)
Specifications
Design
Implementation,
Integration
Deliver to
client (version 2)
Specifications
Design
Implementation,
Integration
Deliver to
client (version 3)
Specifications
Design
Implementation,Integration
Deliver toclient (version n)
...
.....
.
Specification team
Design team
Implementation/integration team
Design
Slide53Synchronize-and-Stabilize
Specifications
Implementation,
Integration
Deliver to
client
version 1
Specifications
Design
Implementation,
Integration
Deliver to
client version 2
Specifications
Design
Implementation,
Integration
Deliver to
client version 3
Specifications
DesignImplementation,Integration
Deliver toclient version n
...
....
..
Specification team
Design team
Implementation/integration team
Design
Slide54Synchronize-and-Stabilize
Specifications
Implementation,
Integration
Deliver to
client
version 1
Specifications
Design
Implementation,
Integration
Deliver to
client
version 2
Specifications
Design
Implementation,
Integration
Deliver to
client version 3
SpecificationsDesignImplementation,
IntegrationDeliver toclient version n
...
...
...
Specification team
Design team
Implementation/integration team
Design
Slide55Synchronize-and-Stabilize
Specifications
Implementation,
Integration
Deliver to
client
version 1
Specifications
Design
Implementation,
Integration
Deliver to
client
version 2
Specifications
Design
Implementation,
Integration
Deliver to
client version 3
SpecificationsDesignImplementation,
IntegrationDeliver toclient version n
...
...
...
Specification team
Design team
Implementation/integration team
Design
Slide56Spiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Rapid
prototype
Specification
Design
Implementation
Verify
Verify
Verify
Verify
Slide57Spiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Rapid
prototype
Specification
Design
Implementation
Verify
Verify
Verify
Verify
Slide58Spiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Rapid
prototype
Specification
Design
Implementation
Verify
Verify
Verify
Verify
Slide59Spiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Rapid
prototype
Specification
Design
Implementation
Verify
Verify
Verify
Verify
Slide60Spiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Rapid
prototype
Specification
Design
Implementation
Verify
Verify
Verify
Verify
Slide61Spiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Rapid
prototype
Specification
Design
Implementation
Verify
Verify
Verify
Verify
Slide62Spiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Rapid
prototype
Specification
Design
Implementation
Verify
Verify
Verify
Verify
Slide63Spiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Rapid
prototype
Specification
Design
Implementation
Verify
Verify
Verify
Verify
Slide64Spiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Rapid
prototype
Specification
Design
Implementation
Verify
Verify
Verify
Verify
Full spiral model is discussed in Sommerville
Slide65Boehm’s Top Ten Software Risks
Personnel shortfalls
Unrealistic schedules and budgets
Developing the wrong software functions
Developing the wrong user interface
“Gold plating”
Continuing stream of requirements changes
Shortfalls in externally furnished componentsShortfalls in externally performed tasks
Real-time performance shortfallsStraining computer-science capabilities
Slide66A Comparison of Life Cycle Models
Model
Strengths
Weaknesses
Build-and-Fix
Fine for small programs that do not require much maintenance
Totally unsatisfactorily for nontrivial programs
Waterfall
Disciplined approach
Document driven
Delivered product may not meet client’s needs
Rapid
Prototyping
Ensures that delivered product meets client’s needs
A need to build twice
Cannot always be used
Incremental
Maximizes early return on investment
Promotes maintainability
Requires open architecture
May degenerate into build-and-fix
Synchronize-
and-stabilize
Future user’s needs are met
Ensures components can be successfully integrated
Has not been widely used other than in Microsoft
Spiral
Incorporates features of all the above models
Can be used only for large-scale products
Developers have to be competent at risk-analysis
Slide67Homework
Read
Chapter
3 of van
Vliet