Title: Chapter 3 Prescriptive Process Models
1Chapter 3Prescriptive Process Models
Software Engineering A Practitioners Approach,
6th edition by Roger S. Pressman
2Software process model
- Attempt to organize the software life cycle by
- defining activities involved in software
production - order of activities and their relationships
- Goals of a software process
- standardization, predictability, productivity,
high product quality, ability to plan time and
budget requirements
3CodeFix
- 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
4Models 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"
5Process 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?"
6Process as a "black box"
Quality?
Uncertain / Incomplete requirement In the
beginning
7Problems
- 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
8Process as a "white box"
9Advantages
- Reduce risks by improving visibility
- Allow project changes as the project progresses
- based on feedback from the customer
10The main activities of software production
- They must be performed independently of the model
- The model simply affects the flow among activities
11Prescriptive Models
Prescriptive process models advocate an orderly
approach to software engineering
- 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?
12The Waterfall Model
13Waterfall 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.
14Process for Offshore?
Accept. test
Deploy
15The V Model
- If we rely on testing alone, defects created
first are detected last
16Incremental Models Incremental
17Incremental Models RAD Model
18Evolutionary Models Prototyping
19Risk Exposure
20Unified Process Model
- A software process that is
- use-case driven
- architecture-centric
- iterative and incremental
- Closely aligned with the
- Unified Modeling Language (UML)
21The Unified Process (UP)
inception
22UP Work Products
inception
23Lifecycle for Enterprise Unified Process
inception
24Synchronize-and Stabilize Model
- Microsofts life-cycle model
- Requirements analysisinterview potential
customers - Draw up specifications
- Divide project into 3 or 4 builds
- Each build is carried out by small teams working
in parallel
25Synchronize-and Stabilize Model (contd)
- At the end of the daysynchronize (test and
debug) - At the end of the buildstabilize (freeze build)
- Components always work together
- Get early insights into operation of product
26Evolutionary Models The Spiral
27Spiral Model
- Simplified form
- Waterfall model plus risk analysis
- Precede each phase by
- Alternatives
- Risk analysis
- Follow each phase by
- Evaluation
- Planning of next phase
28Simplified Spiral Model
- If risks cannot be resolved, project is
immediately terminated
29Full Spiral Model
- Radial dimension cumulative cost to date
- Angular dimension progress through the spiral
30Full Spiral Model (contd)
31Analysis 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
32Object-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
33Fountain Model
- Features
- Overlap (parallelism)
- Arrows (iteration)
- Smaller maintenance circle
34Software Process Spectrum
Crystal Clear
Crystal Violet
ICONIX
DSDM
OPEN
XP
FDD
RUP
SCRUM
EUP
dX
35Conclusions
- 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
36Model Driven Architecture
37What 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!
38Finding the right language
Developer
Model Driven Architecture
Automation
Abstraction
IDEs 4GL
3GL
Assembler
Computer Hardware
39You should use iterative development only on
projects you want to succeed
40Model Driven Architecture
- Can you actually have incremental MDA?
- Or is it automated waterfall?
- Need rigorous models
- Need high quality requirements
- Capture requirements
- Understand requirements
41MDA or Offshore?
- Automation versus reduce cost of labor
- Objectives
- Reduce required intelligence
- Increase repetition
- Goal
- Reduce costs of development