Download presentation
Presentation is loading. Please wait.
Published byLewis Long Modified over 9 years ago
1
Introduction to Software Engineering Lecture 3 André van der Hoek
2
Today’s Lecture What makes software engineering difficult? An introduction to software life cycle models
3
Visibility vs…
4
…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 process How to measure progress? Is a bigger stack of paper closer to the end-result than a smaller stack of paper?
5
Manageable Complexity vs…
6
…Unmanageable Complexity Software cannot be easily abstracted Formulas Only in very few domains Diagrams, graphs, and other representations Typically non-hierarchical Far too many cross-references Few concepts are available to use in an abstraction Tension between high-level understanding and low-level detailed specification High-level understanding leaves out important details Aggregation often does not work
7
Environment Can Be Changed vs…
8
…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
9
No Major Changes vs…
10
…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 software The effects of most changes are only visible in certain circumstances Sometimes, the environment does change Software is used in different organizations Software is used for different purposes
11
Drastic 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 airports Decreased national security NSA computers down for four days due to a “software problem” Peter Neumann’s Risks Digest: http://catless.ncl.ac.uk/Risks
12
High Cost [Schach]
13
Cost of Change Progressively Higher [Schach]
14
Processes 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 with Processes help, but cannot guarantee anything Remember: People + Processes + Tools Product
15
Processes Elements Activities (“Phases”) Artifacts Can include process specifications Resources People (their time and their cost) Tools (their time and their cost) Relationships between the elements Precedence, requires, provides, refines to, … Constraints Time Cost Qualities (repeatable process?)
16
Software Life Cycle Models Build-and-fix Waterfall Rapid prototyping Incremental Synchronize-and-stabilize Spiral A software life cycle model is a high-level process
17
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
18
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
19
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
20
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
21
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
22
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
23
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
24
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
25
Build-and-Fix Build first version Modify until client is satisfied Operations mode Retirement Development Maintenance
26
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
27
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
28
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
29
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
30
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
31
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
32
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
33
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
34
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
35
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
36
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
37
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
38
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
39
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
40
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
41
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
42
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
43
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
44
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
45
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
46
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
47
Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
48
Rapid Prototyping Operations mode Retirement Build and discard simple prototype Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance
49
FOR 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
50
Synchronize-and-Stabilize Specifications Implementation, Integration Deliver to client (version 1) SpecificationsDesign Implementation, Integration Deliver to client (version 2) SpecificationsDesign Implementation, Integration Deliver to client (version 3) SpecificationsDesign Implementation, Integration Deliver to client (version n).................. Specification teamDesign teamImplementation/integration team Design
51
Synchronize-and-Stabilize Specifications Implementation, Integration Deliver to client (version 1) SpecificationsDesign Implementation, Integration Deliver to client (version 2) SpecificationsDesign Implementation, Integration Deliver to client (version 3) SpecificationsDesign Implementation, Integration Deliver to client (version n).................. Specification teamDesign teamImplementation/integration team Design
52
Synchronize-and-Stabilize Specifications Implementation, Integration Deliver to client (version 1) SpecificationsDesign Implementation, Integration Deliver to client (version 2) SpecificationsDesign Implementation, Integration Deliver to client (version 3) SpecificationsDesign Implementation, Integration Deliver to client (version n).................. Specification teamDesign teamImplementation/integration team Design
53
Synchronize-and-Stabilize Specifications Implementation, Integration Deliver to client version 1 SpecificationsDesign Implementation, Integration Deliver to client version 2 SpecificationsDesign Implementation, Integration Deliver to client version 3 SpecificationsDesign Implementation, Integration Deliver to client version n.................. Specification teamDesign teamImplementation/integration team Design
54
Synchronize-and-Stabilize Specifications Implementation, Integration Deliver to client version 1 SpecificationsDesign Implementation, Integration Deliver to client version 2 SpecificationsDesign Implementation, Integration Deliver to client version 3 SpecificationsDesign Implementation, Integration Deliver to client version n.................. Specification teamDesign teamImplementation/integration team Design
55
Synchronize-and-Stabilize Specifications Implementation, Integration Deliver to client version 1 SpecificationsDesign Implementation, Integration Deliver to client version 2 SpecificationsDesign Implementation, Integration Deliver to client version 3 SpecificationsDesign Implementation, Integration Deliver to client version n.................. Specification teamDesign teamImplementation/integration team Design
56
Spiral Risk analysis Risk analysis Risk analysis Risk analysis Rapid prototype Specification Design Implementation Verify
57
Spiral Risk analysis Risk analysis Risk analysis Risk analysis Rapid prototype Specification Design Implementation Verify
58
Spiral Risk analysis Risk analysis Risk analysis Risk analysis Rapid prototype Specification Design Implementation Verify
59
Spiral Risk analysis Risk analysis Risk analysis Risk analysis Rapid prototype Specification Design Implementation Verify
60
Spiral Risk analysis Risk analysis Risk analysis Risk analysis Rapid prototype Specification Design Implementation Verify
61
Spiral Risk analysis Risk analysis Risk analysis Risk analysis Rapid prototype Specification Design Implementation Verify
62
Spiral Risk analysis Risk analysis Risk analysis Risk analysis Rapid prototype Specification Design Implementation Verify
63
Spiral Risk analysis Risk analysis Risk analysis Risk analysis Rapid prototype Specification Design Implementation Verify
64
Spiral Risk analysis Risk analysis Risk analysis Risk analysis Rapid prototype Specification Design Implementation Verify Full spiral model is discussed in Sommerville
65
Boehm’s Top Ten Software Risks 1. Personnel shortfalls 2. Unrealistic schedules and budgets 3. Developing the wrong software functions 4. Developing the wrong user interface 5. “Gold plating” 6. Continuing stream of requirements changes 7. Shortfalls in externally furnished components 8. Shortfalls in externally performed tasks 9. Real-time performance shortfalls 10. Straining computer- science capabilities
66
A Comparison of Life Cycle Models ModelStrengthsWeaknesses Build-and-FixFine for small programs that do not require much maintenance Totally unsatisfactorily for nontrivial programs WaterfallDisciplined 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 IncrementalMaximizes 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 SpiralIncorporates features of all the above models Can be used only for large-scale products Developers have to be competent at risk- analysis
67
Homework 1. Read Chapter 3 of van Vliet
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.