Software Development Process Models

Steven J Zeil

Last modified: Sep 04, 2014

1. Software Development Process Models

A software development process model (SDMP), a.k.a., a software life-cycle model, is 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

Different 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

Maintenence can have a number of forms:

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

Iterative versus Incremental Models

Incremental development is almost always iterative, but you can be iterative without being incremental.

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

5.1 Unified Model Phases

5.2 Unified Model Phases Continued

Releases

One task during Elaboration is to plan releases:

5.3 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.4 Advantages of RUP

5.5 Disadvantages of RUP

6. Agile Methods

A modern variant of incremental development.

Agile development is

Emphasis Areas

Emphasis is on

We’ll look at Agile in more detail later in the semester, after we have learned more about these “best practices” that lie at the heart of the process.

last slide