Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Software Engineering Lecture 3 André van der Hoek.

Similar presentations


Presentation on theme: "Introduction to Software Engineering Lecture 3 André van der Hoek."— Presentation transcript:

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


Download ppt "Introduction to Software Engineering Lecture 3 André van der Hoek."

Similar presentations


Ads by Google