Software Development Process Models

Software Development Process Models

Software development process model is evolving rapidly. We may tempt to adopt latest and shiny process model to develop our software. But it would be better to know details about the process model before adopting. Understand its strengths and weaknesses. Then make your decision. If you find that that process model is not suitable for your software project then check another.

So why we have to know every detail, its strengths and weaknesses of a process model before adopting it to our project?

Well, think you are developing a simple database application for a non-profit organization. It can be done with a simple process model. In that case more advanced process model may be increase overhead cost those are beyond of that organization’s affordability.

So before adopt any process consider

  • Nature of the project like is the project complex enough or simple one?
  • Shall the owner of the product would be able to afford the cost of the selected process?
  • What are the strengths and weaknesses of the selected process?

By knowing all of them then make decision about process.

Now we will discuss about some successful well known process model.

Linear Process Models

Linear process model is suitable for those projects, who has little or no feedback or refinement. To make a project successful by using linear process model then understand what client want and all requirements at the very beginning of the project because there is no option for revisit any stage.

Some well-known linear process models are- Waterfall Model & V-Model.

Now we will discuss details about them.

Waterfall Model

Each phase produces an approved work product and then that product is used by the next phase.

If a work product moves to next phase there is no way to comeback to previous phase. It just move forward until the end of the process.

A waterfall model has following phases-

  • Requirements
  • Design
  • Implementation
  • Verification
  • Maintenance

First of all we collect requirements from user. Analyze them and documented them. This is known as requirement documentation. This document needs to approve by the client. After approval of the document we move to next phase i.e. design phase. We design the system according to the requirements. Then move to next phase and the process is continues until the software product is the final output.

Benefits and Drawbacks of Waterfall model

Benefits

Waterfall model have some benefits whose are-

  • Process is easy to understand
  • Clearly define deliverable and milestones
  • Emphasizes to analysis the system and requirement before design and implementation
  • It can be suitable for those product whose are well specified and no need to change after development

Drawbacks are

  • Not very adaptable to changes
  • Need to know all requirement before start the process and there is no option to change in middle of the process
  • Testing occurs at the very end of the project so if there any bug found during testing it become costly to fix those bug

In waterfall model client can’t see the product until close to the end of development. The developed product may not match with what customer wants. In that case the product may become useless

V-Model

Like linear model V model also starts with analysis and identification of requirements then move to design and implementation phases.

The left branch forms analysis and design related activities on the other hand the right branch forms different types of testing like Unit Testing, Integration Testing, System Testing, Acceptance Testing etc. Each testing activity right branch verifies corresponding analysis and design related activities of left branch.

Benefits and Drawbacks

Benefits are-

  • Straightforward so easy to understand
  • Allow to verify product at multiple level by executing different types of testing

Drawbacks are-

  • Doesn’t accommodate any changes

Iterative Models

Spiral model is the example of iterative process model. Now we will discuss about Spiral model and their benefits and drawbacks-

Spiral Model

A typical spiral model has four phases whose are-

  • Determine objectives
  • Identify and resolve risks
  • Develop & Test
  • Plan for next iteration

Above four phases represent a full iteration. Each subsequent iterations are the sequence of above four phases. In each iteration produces a product prototype. It allows the development team to review the product, get feedback from the client and change according to the feedback of client. Early iterations are involve with ideas and concepts and later iterations are involve with building working software prototype.

Drawbacks of Spiral Model

Estimating work can be more difficult.

Parallel Process Models

Unified process model is one of a well-known Parallel process model. Now we will discuss about Parallel process model in detail.

Unified Process Model

To better understand let’s see following image-

In Inception phase most of the work those are done is Business Modeling and Requirements. In Elaboration model most of the we define the domain analysis and define the system architecture. In construction phase mostly work with development of the system and Testing them. In Transition phase system goes from development to production so that it becomes available to the users. In each phase we actually do software engineering related works like Business Modeling, Requirements, Analysis & Design, Implementation, Test and Deployment.

Phases within the Unified Process Model

We saw four phases inside this process model whose are completely unknown to us. Those phases are-

  • Inception phase
  • Elaboration phase
  • Construction phase
  • Transition Phase

Now let’s detail discuss about each individual phases.

Inception Phase

In this phase create business case which includes business context, success factors (expected revenue, market recognition, etc.), and financial forecast. To do this what are doing is

  • Create use cases to define the user interaction with the system
  • Define the scope and potential risk of the project

Elaboration Phase

In this phase the project starts to take shape. The main activities of this phase is

  • Analyze the problem domain
  • Design and refine the architecture of the project
  • Refine the requirements (that was conceived in previous phase)
  • Create requirements and architectural documentation e.g.- use case and class diagrams

Construction Phase

This phase is involves with build the software system. The main activities of this phase is- “Develop the components and other features of the system”

Transition Phase

  • Transit the system from development into production
  • Making the system available to end user for understand and use

Activities in this phase is

  • Training end users
  • Validate the system by end users to know whether the system meets user expectation