the software life cycle
play

The Software Life Cycle Elaboration Production Software - PowerPoint PPT Presentation

Inception Software Communication Planning Increment The Software Life Cycle Elaboration Production Software Engineering Deployment Modelling Andreas Zeller Saarland University Construction Transition Construction A Software Crisis


  1. Inception Software Communication Planning Increment The Software Life Cycle Elaboration Production Software Engineering Deployment Modelling Andreas Zeller • Saarland University Construction Transition Construction

  2. A Software Crisis

  3. Code and Fix (1950–) Build first version Modify until 
 client is satisfied Operate Retirement

  4. Code and Fix: Issues • No process steps – no specs, docs, tests… • No separation of concerns – no teamwork • No way to deal with complexity

  5. Code and Fix

  6. Waterfall Model (1968) Communicatio n 
 project initiation Planning estimating 
 scheduling 
 tracking Modeling analysis 
 design Construction code 
 test Deployment delivery 
 support feedback

  7. Communication Communicatio n 
 project initiation

  8. Waterfall Model (1968) Communicatio n 
 project initiation Planning estimating 
 scheduling 
 tracking Modeling analysis 
 design Construction code 
 test Deployment delivery 
 support feedback

  9. Planning Planning estimating 
 scheduling 
 tracking

  10. Waterfall Model (1968) Communicatio n 
 project initiation Planning estimating 
 scheduling 
 tracking Modeling analysis 
 design Construction code 
 test Deployment delivery 
 support feedback

  11. Waterfall Model (1968) Modeling analysis 
 design

  12. Waterfall Model (1968) Communicatio n 
 project initiation Planning estimating 
 scheduling 
 tracking Modeling analysis 
 design Construction code 
 test Deployment delivery 
 support feedback

  13. Waterfall Model Construction code 
 test

  14. Waterfall Model (1968) Communicatio n 
 project initiation Planning estimating 
 scheduling 
 tracking Modeling analysis 
 design Construction code 
 test Deployment delivery 
 support feedback

  15. Deployment Deployment delivery 
 support feedback

  16. Waterfall Model (1968) Communicatio n 
 project initiation Planning estimating 
 scheduling 
 tracking Modeling analysis 
 design Construction code 
 test Deployment delivery 
 support feedback

  17. Waterfall Model (1968) Communicatio • Real projects rarely follow a sequential n 
 project initiation Planning flow estimating 
 • Hard to state all requirements explicitly scheduling 
 tracking Modeling • No maintenance or evolution involved analysis 
 design • Customer must have patience Construction code 
 • Any blunder can be disastrous test Deployment delivery 
 support feedback

  18. Boehm’s first law Errors are most frequent 
 during requirements and design activities and are the more expensive 
 the later they are removed.

  19. Problem Cost Relative cost of problem per phase 30.0 22.5 15.0 7.5 0.0 Coding Unit test Component test System test Field

  20. Incremental Model Features Increment #3 Communication project initiation requirements gathering Planning estimating scheduling Increment #2 tracking Modeling analysis design Construction Communication code project initiation test requirements gathering Deployment Planning delivery estimating support Increment #1 scheduling feedback tracking Modeling analysis design Communication Construction project initiation code requirements gathering Planning test Deployment estimating delivery scheduling support tracking feedback Modeling analysis design Construction code test Deployment delivery support Time feedback

  21. Incremental Model • Each linear sequence produces a particular “increment” to the software • First increment typically core product; more features added by later increments • Allows flexible allocation of resources

  22. Prototyping Communication Quick Plan Deployment and Quick Design Feedback Prototype Construction

  23. Prototypes Top Layer (GUI) Bottom Layer

  24. Horizontal Prototype Top Layer (GUI) Bottom Layer

  25. Prototypes Top Layer (GUI) Bottom Layer

  26. Vertical Prototype Top Layer (GUI) Bottom Layer

  27. Prototypes • A horizontal prototype tests a particular layer (typically the GUI) of the system • A vertical prototype tests a particular functionality across all layers • Resist pressure to turn a prototype into a final result!

  28. Spiral Model (1988) Planning Modeling Communication Construction Deployment + Feedback Test

  29. Spiral Model • System is developed in series of evolutionary releases • Milestones for each iteration of the spiral • Process does not end with delivery • Reflects iterative nature of development

  30. Unified Process (1999) Inception Software Communication Planning Increment Elaboration Production Deployment Modelling Construction Transition Construction

  31. Inception Inception Inception Software Communication Communication Planning Planning Increment Elaboration Production • Encompasses communication with user + planning Deployment Modelling • Results in a set of use cases • Architecture is just a tentative outline Construction Transition Construction

  32. Elaboration Inception Software Communication Planning Planning • Refines and expands Increment preliminary use cases Elaboration Elaboration Production • Provides architecture and initial design Deployment Modelling Modelling model Construction Transition Construction

  33. Construction Inception • Builds (or acquires) Software Communication Planning software components Increment according to architecture Elaboration Production • Completes design model • Includes implementation, Deployment Modelling Modelling unit tests, acceptance tests Construction Construction Transition Construction Construction

  34. Transition Inception • Software given to end users for beta Software Communication Planning testing Increment • Feedback reports defects and changes Elaboration Production Deployment Deployment Modelling Construction Construction Transition Transition Construction

  35. Production Inception • Software is deployed Software Software Communication Planning Increment Increment • Problems are monitored Elaboration Production Production Deployment Deployment Modelling Construction Transition Construction

  36. Re-Iteration Inception Software Communication Communication Planning Increment • Feedback results in new Elaboration Production iteration for next release Deployment Deployment Modelling Construction Transition Construction

  37. Unified Process Inception Software Communication Planning Increment Elaboration Production Deployment Modelling Construction Transition Construction

  38. Unified Process Inception • Draws on best features of conventional Software Communication Planning Increment process models • Emphasizes software architecture and Elaboration Production design Deployment Modelling • Integrates with UML modeling techniques (more on this later) Construction Transition Construction

  39. Manifesto for Agile Software Development (2001) • Individuals and activities over processes and tools. • Working software over comprehensive documentation. • Customer collaboration over contract negotiation. • Responding to change over following a plan..

  40. What is Agile Development? • Fast development? Hacking? Prototyping? Uncontrolled fun? Programmer heaven? • Agility = ability to react to changing situations quickly, appropriately, and effectively. • notice changes early • initiate action promptly • create a feasible and effective alternative plan quickly • reorient work and resources quickly and effectively

  41. Agile? Communicatio n 
 project initiation Planning estimating 
 scheduling 
 tracking Modeling analysis 
 design Construction code 
 test Deployment delivery 
 support feedback

  42. Incremental Model Features Increment #3 Communication project initiation requirements gathering Planning estimating scheduling Increment #2 tracking Modeling analysis design Construction Communication code project initiation test requirements gathering Deployment Planning delivery estimating support Increment #1 scheduling feedback tracking Modeling analysis design Communication Construction project initiation code requirements gathering Planning test Deployment estimating delivery scheduling support tracking feedback Modeling analysis design Construction code test Deployment delivery support Time feedback

  43. Agile Processes Time Waterfall Iterative Agile Processes Test Implement Design Analyse Scope Credits: Prof. Bodik

  44. Agile vs. Plan-driven Agile Plan-driven • Low criticality • High criticality • Senior developers • Junior developers • Requirements change very • Requirements don't change often too often • Small number of developers • Large number of developers • Culture that thrives on chaos • Culture that demands order

  45. What is an Agile Process? • Difficult to predict which requirements will persist or change in the future. • For many types of software, design and development are interleaved. • Analysis, design, construction, and testing are not as predictable.

Recommend


More recommend