Software Development Process Models

Steven J Zeil:

Last modified: Mar 11, 2014

1. Software Development Process Models

The process by which an organization develops software.

1.1 Common Activities

  1. Recognition of problem / need / opportunity
  2. Feasibility study
  3. Analysis of requirements
  4. Design of system
  5. Implementation
  6. Testing
  7. Deployment
  8. Maintenance

SDPMs will divide these activities among phases in different ways

Analysis of Requirements

Common Documents from Requirements Analysis

We’ll look at requirements in more detail in a later section.

Design

Derive a solution which satisfies the software requirements.

Commonly recognized subproblems include

A possible breakdown of design activities

Maintenance

2. The Waterfall Model

2.1 Verification & Validation

Verification & Validation: assuring that a software system meets the users’ needs.

The principle objectives are:

What’s the Difference?

Testing

2.2 Testing throughout the Waterfall

Testing stages

Not just in one phase

Although the waterfall model shows V&V as a separate phase near the end, we know that some forms of V&V occur much earlier.

So this phase of the waterfall model really describes system and acceptance testing.

A Still-broader View

Even the “V&V V” does not capture the full context of V&V:

2.3 Advantages of Waterfall

2.4 Disadvantages of Waterfall

3. Iterative/Incremental Development

Variations

3.1 Advantages

3.2 Disadvantages

4. The Spiral Model

1986, Boehm

An iterative approach with a focus on risk management

Spiral Phases

  1. Determine objectives, alternatives and constraints:
    • Define requirements
    • Alternatives (including, e.g., 3rd-party code) identified
    • Constraints defined
  2. Identify and resolve risks, evaluate alternatives:
    • Evaluate identified alternatives
    • Identify risks
    • Resolve risks
    • Produce prototype
  3. Develop and test
    • Analyze performance of prototype
    • Create & review design, code, test
  4. Plan next iteration
    • Often includes customer evaluation of prototype or current project iteration

4.1 Advantages of Spiral Model

4.2 Disadvantages of Spiral Model

5. Rational Unified Process

1997, Jacobsen, Booch, and Rumbaugh,

5.1 Unified Model Phases

Releases

One task during Elaboration is to plan releases:

5.2 Key Concepts of the RUP

Common Workflows

ADIV

In the RUP, all progress is made as continual ADIV cycles

An Evolution of Models

RUP supports development via a series of models.

The most important of these are

Models Evolved

RUP embraces the

Object-Oriented philosophy

5.3 Advantages of RUP

5.4 Disadvantages of RUP

6. Agile Methods

A modern variant of incremental development.

Emphasis on

6.1 Agile Development is

6.2 Variations

We’ll look at these in more detail after covering some of the “best practices” assumed in both.