Chapter 3 Prescriptive Process Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
Software process model Attempt to organize the software life cycle by defining activities involved in software production order of activities and their relationships G oals of a software process standardization, predictability, productivity, high product quality, ability to plan time and budget requirements
Code&Fix The earliest approach   Write code Fix it to eliminate any errors that have been detected, to enhance existing functionality, or to add new features   Source of difficulties and deficiencies impossible to predict impossible to manage
Models are needed Symptoms of inadequacy: the software crisis scheduled time and cost exceeded user expectations not met poor quality The size and economic value of software applications required appropriate "process models"
Process model goals  (B. Boehm 1988) "determine the order of stages involved in  software development and evolution,  and to establish the transition criteria for  progressing from one stage to the next.  These include completion criteria for the current  stage plus choice criteria and entrance criteria  for the next stage. Thus a process model addresses  the following software project questions: What shall we do next? How long shall we continue to do it?"
Process as a "black box" Quality? Uncertain / Incomplete  requirement In the beginning
Problems The assumption is that requirements can be fully understood prior to development Interaction with the customer occurs only at the beginning (requirements) and end (after delivery) Unfortunately the assumption almost never holds
Process as a "white box"
Advantages Reduce risks by improving visibility Allow project changes as the project progresses based on feedback from the customer
The main activities of software production They must be performed independently of the model The model simply affects the flow among activities
Prescriptive Models That leads to a few questions … If prescriptive process models strive for structure and order,  are they inappropriate for a software world that thrives on change?   Yet, if we reject traditional process models (and the order they imply) and replace them with something less structured,  do we make it impossible to achieve coordination and coherence in software work? Prescriptive process models advocate an orderly approach to software engineering
The Waterfall Model
Waterfall Model Assumptions 1.  The requirements are knowable in advance of implementation. 2.  The requirements have no unresolved, high-risk implications   e.g., risks due to COTS choices, cost, schedule, performance, safety, security, user interfaces, organizational impacts 3.  The nature of  the requirements will not change very much  During development; during evolution 4.  The requirements are compatible with all the key system stakeholders’ expectations  e.g., users, customer, developers, maintainers, investors 5.  The right architecture for implementing the requirements is well understood. 6.  There is enough calendar time to proceed sequentially.
Process for Offshore? Deploy Accept. test Analysis Design Construct System test
The V Model If we rely on testing alone, defects created first are detected last System Requirements Software Requirements Software Design Software Implementation Unit Testing Integration Testing Software Testing System Testing system test plan software test plan integration plan unit plan Product Release time User Need
Incremental Models: Incremental
Incremental Models: RAD Model
Evolutionary Models: Prototyping
Risk Exposure
Unified Process Model A software process that is: use-case driven architecture-centric iterative and incremental Closely aligned with the Unified Modeling Language (UML)
The Unified Process (UP) inception
UP Work Products inception
Lifecycle for Enterprise Unified Process inception
Synchronize-and Stabilize Model Microsoft’s life-cycle model Requirements analysis—interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel
Synchronize-and Stabilize Model (contd) At the end of the day—synchronize (test and debug) At the end of the build—stabilize (freeze build) Components always work together Get early insights into operation of product
Evolutionary Models: The Spiral
Spiral Mode l Simplified form Waterfall model plus risk analysis Precede each phase by Alternatives Risk analysis Follow each phase by Evaluation Planning of next phase
Simplified Spiral Model If risks cannot be resolved, project is immediately terminated
Full Spiral Model Radial dimension: cumulative cost to date Angular dimension: progress through the spiral
Full Spiral Model (contd)
Analysis of Spiral Model Strengths Easy to judge how much to test No distinction between development, maintenance Weaknesses For large-scale software only  For internal (in-house) software only
Object-Oriented Life-Cycle Models Need for iteration within and between phases Fountain model Recursive/parallel life cycle Round-trip gestalt Unified software development process All incorporate some form of Iteration Parallelism Incremental development Danger CABTAB
Fountain Model Features Overlap (parallelism) Arrows (iteration) Smaller maintenance circle
Software Process Spectrum XP SCRUM DSDM FDD RUP dX ICONIX Crystal Clear Crystal Violet EUP OPEN lightweight heavyweight middleweight
Conclusions Different life-cycle models Each with own strengths Each with own weaknesses Criteria for deciding on a model include The organization Its management Skills of the employees The nature of the product Best suggestion “ Mix-and-match” life-cycle model
Model Driven Architecture
What is MDA in essence? Automated approach to translate high level design to low level implementation by means of separation of concerns From high-level model to running application Risk proportional to expectations!
Finding the “right” language Assembler 3GL IDEs & 4GL Model Driven Architecture Computer Hardware Developer Automation Abstraction
“ You should use iterative development only on projects you want to succeed” Martin Fowler
Model Driven Architecture Can you actually have incremental MDA? Or is it automated waterfall? Need rigorous models Need high quality requirements Capture requirements Understand requirements
MDA or Offshore? Automation versus reduce cost of labor Objectives Reduce required intelligence Increase repetition Goal Reduce costs of development

Slides chapter 3

  • 1.
    Chapter 3 PrescriptiveProcess Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman
  • 2.
    Software process modelAttempt to organize the software life cycle by defining activities involved in software production order of activities and their relationships G oals of a software process standardization, predictability, productivity, high product quality, ability to plan time and budget requirements
  • 3.
    Code&Fix The earliestapproach Write code Fix it to eliminate any errors that have been detected, to enhance existing functionality, or to add new features Source of difficulties and deficiencies impossible to predict impossible to manage
  • 4.
    Models are neededSymptoms of inadequacy: the software crisis scheduled time and cost exceeded user expectations not met poor quality The size and economic value of software applications required appropriate "process models"
  • 5.
    Process model goals (B. Boehm 1988) "determine the order of stages involved in software development and evolution, and to establish the transition criteria for progressing from one stage to the next. These include completion criteria for the current stage plus choice criteria and entrance criteria for the next stage. Thus a process model addresses the following software project questions: What shall we do next? How long shall we continue to do it?"
  • 6.
    Process as a"black box" Quality? Uncertain / Incomplete requirement In the beginning
  • 7.
    Problems The assumptionis that requirements can be fully understood prior to development Interaction with the customer occurs only at the beginning (requirements) and end (after delivery) Unfortunately the assumption almost never holds
  • 8.
    Process as a"white box"
  • 9.
    Advantages Reduce risksby improving visibility Allow project changes as the project progresses based on feedback from the customer
  • 10.
    The main activitiesof software production They must be performed independently of the model The model simply affects the flow among activities
  • 11.
    Prescriptive Models Thatleads to a few questions … If prescriptive process models strive for structure and order, are they inappropriate for a software world that thrives on change? Yet, if we reject traditional process models (and the order they imply) and replace them with something less structured, do we make it impossible to achieve coordination and coherence in software work? Prescriptive process models advocate an orderly approach to software engineering
  • 12.
  • 13.
    Waterfall Model Assumptions1. The requirements are knowable in advance of implementation. 2. The requirements have no unresolved, high-risk implications e.g., risks due to COTS choices, cost, schedule, performance, safety, security, user interfaces, organizational impacts 3. The nature of the requirements will not change very much During development; during evolution 4. The requirements are compatible with all the key system stakeholders’ expectations e.g., users, customer, developers, maintainers, investors 5. The right architecture for implementing the requirements is well understood. 6. There is enough calendar time to proceed sequentially.
  • 14.
    Process for Offshore?Deploy Accept. test Analysis Design Construct System test
  • 15.
    The V ModelIf we rely on testing alone, defects created first are detected last System Requirements Software Requirements Software Design Software Implementation Unit Testing Integration Testing Software Testing System Testing system test plan software test plan integration plan unit plan Product Release time User Need
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
    Unified Process ModelA software process that is: use-case driven architecture-centric iterative and incremental Closely aligned with the Unified Modeling Language (UML)
  • 21.
    The Unified Process(UP) inception
  • 22.
  • 23.
    Lifecycle for EnterpriseUnified Process inception
  • 24.
    Synchronize-and Stabilize ModelMicrosoft’s life-cycle model Requirements analysis—interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel
  • 25.
    Synchronize-and Stabilize Model(contd) At the end of the day—synchronize (test and debug) At the end of the build—stabilize (freeze build) Components always work together Get early insights into operation of product
  • 26.
  • 27.
    Spiral Mode lSimplified form Waterfall model plus risk analysis Precede each phase by Alternatives Risk analysis Follow each phase by Evaluation Planning of next phase
  • 28.
    Simplified Spiral ModelIf risks cannot be resolved, project is immediately terminated
  • 29.
    Full Spiral ModelRadial dimension: cumulative cost to date Angular dimension: progress through the spiral
  • 30.
  • 31.
    Analysis of SpiralModel Strengths Easy to judge how much to test No distinction between development, maintenance Weaknesses For large-scale software only For internal (in-house) software only
  • 32.
    Object-Oriented Life-Cycle ModelsNeed for iteration within and between phases Fountain model Recursive/parallel life cycle Round-trip gestalt Unified software development process All incorporate some form of Iteration Parallelism Incremental development Danger CABTAB
  • 33.
    Fountain Model FeaturesOverlap (parallelism) Arrows (iteration) Smaller maintenance circle
  • 34.
    Software Process SpectrumXP SCRUM DSDM FDD RUP dX ICONIX Crystal Clear Crystal Violet EUP OPEN lightweight heavyweight middleweight
  • 35.
    Conclusions Different life-cyclemodels Each with own strengths Each with own weaknesses Criteria for deciding on a model include The organization Its management Skills of the employees The nature of the product Best suggestion “ Mix-and-match” life-cycle model
  • 36.
  • 37.
    What is MDAin essence? Automated approach to translate high level design to low level implementation by means of separation of concerns From high-level model to running application Risk proportional to expectations!
  • 38.
    Finding the “right”language Assembler 3GL IDEs & 4GL Model Driven Architecture Computer Hardware Developer Automation Abstraction
  • 39.
    “ You shoulduse iterative development only on projects you want to succeed” Martin Fowler
  • 40.
    Model Driven ArchitectureCan you actually have incremental MDA? Or is it automated waterfall? Need rigorous models Need high quality requirements Capture requirements Understand requirements
  • 41.
    MDA or Offshore?Automation versus reduce cost of labor Objectives Reduce required intelligence Increase repetition Goal Reduce costs of development

Editor's Notes

  • #39 Moving up the abstraction tree What are we building rather then how Separation of concerns What-from-how