Software Development Process Model - Part 1

Software Life Cycle Phases

  • Requirements, analysis, and design phase.
  • System design phase.
  • Program design phase.
  • Program implementation phase.
  • Unit testing phase.
  • Integration testing phase.
  • System testing phase.
  • System delivery.
  • Maintenance.

The software process

  • A structured set of activities required to develop a software system.
    • Specification
    • Design
    • Validation
    • Evolution
  • A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.

Generic software process models

  • The waterfall or linear sequential model
    • Separate and distinct phases of specification and development
  • Prototype model
    • Requirements are not clear
  • Rapid Application Development (RAD) model
    • High speed adaptation of linear sequential model

Waterfall model


  • Requirements analysis and definition
  • System and software design
  • Implementation and unit testing
  • Integration and system testing
  • Operation and maintenance
  • The drawback of the waterfall model is the difficulty of accommodating change after the process is underway


  • Inflexible partitioning of the project into distinct stages
  • This makes it difficult to respond to changing customer requirements
  • Therefore, this model is only appropriate when the requirements are well-understood

Prototyping Model

Prototyping Model:

  • Requirements are not clear
  • Iteration occurs as the prototype is tuned to satisfy the needs of the customer
  • Prototype serves as a mechanism for identifying software requirements

Evolutionary development

Evolutionary development:

  • Exploratory development
    • Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements
  • Throw-away prototyping
    • Objective is to understand the system requirements. Should start with poorly understood requirements


  • Lack of process visibility
  • Systems are often poorly structured
  • Special skills (e.g. in languages for rapid prototyping) may be required


  • For small or medium-size interactive systems
  • For parts of large systems (e.g. the user interface)
  • For short-lifetime systems

Process iteration

  • System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems.
  • Iteration can be applied to any of the generic process models.
  • Two (related) approaches
    • Incremental development
    • Spiral development

**Reference:** *Software Engineering A Practitioner's Approach (7th Ed.) ~ Roger S. Pressman*

All Rights Reserved

Let's register a Viblo Account to get more interesting posts.