Tuesday, September 19, 2006

Different Software development process models

Software engineering follows some structured models for software development. A Software Model describes the phases of the Software Life Cycle and the order in which those phases are executed.  The following sections discuss the following important process models:

· Waterfall Model

· Iterative Model

· Incremental Model

· Spiral Model

Waterfall Model

This is the most common, easy to implement and classic of all the life cycle models. It also is referred to as a Classic Life Cycle Model or linear-sequential life cycle model. This model places a lot of emphasis on documentation, i.e. Requirements Specification and Design Document. In a waterfall model each phase must be completed sequentially in its entirety before the immediate next phase can begin. A review is done after each phase to analyze whether the project is running as per the required standards, specifications and timelines.

The output of each phase is the input to the immediate next phase in this model. This model is well suited if the project requirements are static or have been clearly stated from the beginning. The Waterfall Model is great for specifying the individual tasks, roles, and deliverables in the project life cycle. It is a misleading model when used for project planning because it de-emphasizes iteration and incremental delivery.

Advantages of the Waterfall Model

The following are the advantages of the Waterfall Model.

· It is very simple and easy to implement meaning it is well suited for small projects.

· Testing is inherent to each of the phases of this model.

· The model is rigid and each of the phases has certain deliverables and a review process immediately after a particular phase is over.

Disadvantages

The following are the disadvantages of the Waterfall Model.

· It is high risk.

· It cannot be guaranteed that one phase of this model is perfect before we move on to the immediate next phase in the model.

· It is not suited for long or complex projects or projects where the requirements can change.

· The deliverable software is produced late during the life cycle.

Iterative Model

The Iterative Model addresses many problems associated with the Waterfall Model.  In the Iterative Model analysis is done the same way as it is done in the Waterfall method.  Once this analysis is over, each requirement is categorized based on their priority.  These priorities are:

· High

· Low

· Medium

Advantages

The advantages of the Iterative Model are:

· Faster Coding, testing and Design Phases

· Facilitates the support for changes within the life cycle

Disadvantages

The disadvantages of the Iterative Model are:

· More time spent in review and analysis

· A lot of steps that need to be followed in this model

· Delay in one phase can have detrimental effect on the software as a whole

Incremental Model

The incremental model divides the software to be developed into modules which are then developed and tested in parallel.  These modules or cycles are divided up into smaller, easily managed iterations.  Each iteration passes through the requirements, design, implementation and testing phases.  The Incremental model allows full SDLC of prototypes to be made and then tested before moving to next level.  In this model the functionality is produced and delivered to the customer incrementally.  Starting from the existing situation, we proceed towards the desired solution in a number of steps.  At each of these steps the Waterfall Model is followed.

Advantages

The following are the advantages of the Incremental Model.

· Deliverables are produced early in the software development lifecycle in each iteration.

· It is flexible and easy to manage

· Risk Management and Testing is easy

Disadvantages

The following are the disadvantages of the Iterative Model.

· Each phase of iteration is rigid and does not overlap each other.

· All the requirements are not gathered up front for the entire software life cycle which can create problems at the later stages in the design and development cycle.

Spiral Model

The Spiral Model or the Spiral Development Model combines the best of both top down and bottom up approaches and is specifically risk-driven.  It combines the features of both the prototyping and the waterfall models.  In essence the Spiral Model is a combination of the classic Waterfall Model and Risk Analysis.  It is iterative, but each iteration is designed to reduce the risk at that particular stage of the project.  The Spiral Model provides a rapid development and at the same time, incremental versions of the software application.  The Spiral model is better than the Waterfall Model in the sense that it emphasizes more on risk management while the Waterfall Model emphasizes more on the project management aspects.

The spiral model has four phases.  These phases are as follows:

· Planning

· Risk Analysis

· Engineering

· Evaluation

Advantages

The following are the advantages of the Spiral Model.

· It has strong support for Risk Analysis.

· It is well suited for complex and large projects.

· The deliverable is produced early in the software development life cycle.

· It uses prototyping as a risk reduction technique and can reduce risks in the SDLC process considerably.

Disadvantages

The following are the disadvantages of the Spiral Model.

· It is high in cost and Risk Analysis is also very difficult.

· It is not suited for small projects.

· Needs considerable Risk Assessment.

Which Model to choose?

The question that now arises is, "Which model should I choose?"  Note that we should choose the right type of the Model to implement based on the scope of the software project.  This depends on a number of factors, some of which are given below.

· The Scope of the Project

· The Project Budget

· The organizational environment

· Available Resources

Get more information

Tags: sdlc models, process models, waterfall, iterative, incremental, spiral, life cycle, software engineering, software model, phases, advantages, disadvantages, review model, priorities, deliverables, testing, design, implemenation, documentation

 

 

Can't find what you're looking for? Try Google Search!
Google
 
Web eshwar123.blogspot.com

Comments on "Different Software development process models"