Introduction to Software Engineering Lecture 3 - PowerPoint PPT Presentation

introduction to software engineering lecture 3 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Introduction to Software Engineering Lecture 3 PowerPoint Presentation
Download Presentation
Introduction to Software Engineering Lecture 3

play fullscreen
1 / 67
Introduction to Software Engineering Lecture 3
269 Views
Download Presentation
annice
Download Presentation

Introduction to Software Engineering Lecture 3

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Introduction to Software EngineeringLecture 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. Operations mode Retirement Build-and-Fix Build first version Modify until client is satisfied Development Maintenance

  18. Operations mode Retirement Build-and-Fix Build first version Modify until client is satisfied Development Maintenance

  19. Operations mode Retirement Build-and-Fix Build first version Modify until client is satisfied 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 Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  27. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  28. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  29. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  30. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  31. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  32. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  33. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  34. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  35. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  36. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  37. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  38. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  39. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  40. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  41. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  42. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  43. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  44. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  45. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  46. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  47. Waterfall Requirements phase Changed requirements Verify Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Development Maintenance Test Operations mode Retirement

  48. Changed requirements Specification phase Design phase Implementation phase Verify Verify Verify Test Operations mode Retirement Rapid Prototyping Build and discardsimple prototype Verify Integration phase Development Maintenance Test

  49. Requirements phase Specification phase Verify Verify Operations mode Retirement Incremental Architectural design Verify FOR EACH BUILD Perform detailed design, implementation, and integration. Test. Deliver to client. Development Maintenance

  50. . . . . . . . . . Synchronize-and-Stabilize Specifications Design 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 to client (version n) Specification team Design team Implementation/integration team