Software Development Process Models

Steven J Zeil

Last modified: Sep 21, 2016
Contents:
1 Software Development Process Models
1.1 Common Activities
2 Major Software Development Models
3 The Waterfall Model
3.1 Verification & Validation
3.2 Testing throughout the Waterfall
3.3 Advantages of Waterfall
3.4 Disadvantages of Waterfall
4 Iterative/Incremental Development
4.1 Advantages
4.2 Disadvantages
5 The Spiral Model
5.1 Advantages of Spiral Model
5.2 Disadvantages of Spiral Model
6 Rational Unified Process
6.1 Unified Model Phases
6.2 Unified Model Phases Continued
6.3 Key Concepts of the RUP
6.4 Advantages of RUP
6.5 Disadvantages of RUP
7 Agile Methods

1 Software Development Process Models

A software development process model (SDPM), 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.

1.1.1 Analysis of Requirements

Common Documents from Requirements Analysis

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

1.1.2 Design

Derive

a solution which satisfies the software requirements.

Commonly recognized subproblems include


A possible breakdown of design activities

 

1.1.3 Maintenance

Maintenence can have a number of forms:

2 Major Software Development Models

3 The Waterfall Model

 

3.1 Verification & Validation

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

The principle objectives are:

3.1.1 What’s the Difference?


Testing

3.2 Testing throughout the Waterfall

3.2.1 Testing stages

3.2.2 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:

3.3 Advantages of Waterfall

3.4 Disadvantages of Waterfall

4 Iterative/Incremental Development

 


Iterative versus Incremental Models

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


Variations

4.1 Advantages

4.2 Disadvantages

5 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

5.1 Advantages of Spiral Model

5.2 Disadvantages of Spiral Model

6 Rational Unified Process

6.1 Unified Model Phases

 

6.2 Unified Model Phases Continued


Releases

One task during Elaboration is to plan releases:

 

6.3 Key Concepts of the RUP

6.3.1 Common Workflows

 


ADIV

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

 

6.3.2 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

6.4 Advantages of RUP

6.5 Disadvantages of RUP

7 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.