CyberArmy Academy | CyberArmy Services & Support | Open Source Institute | CyberArmy Intelligence & Security | CyberArmy Projects

[Library Index]

[View category: Software Reviews] [Discuss Article]

Software Process Models

Article is yet to be rated
Author:      Elastic Reality
Submitted:      28-Apr-2007 19:41:02
Imported From:      The CyberArmy University (original author: Elastic Reality)


Software process models.
A software process model is a development strategy that incorporates the development process, methods and tools used to design software. It is chosen based on the nature of the software and the methods and tools used in development. In this article, we will discuss three popular software process models:

1. Linear Sequential Model
2. Prototyping Model
3. Rapid Application Development (RAD) Model

Linear Sequential Model:

It is also called the "classic life cycle" or "the "waterfall model." The original waterfall model was proposed by Winston Royce. The linear sequential model is perhaps the oldest and most popular software process model.

The important stages in the linear sequential model are:

(1) Analysis
(2) Design
(3) Code Generation
(4) Testing

All these stages are arranged in a linear fashion, hence the name. It is interesting to note that the original proposal used "feedback loops," but now-a-days this model is treated in a completely linear sense.

However, despite the simplicity it offers, this model sometimes fails. For example:

(1) All real projects cannot strictly follow the linear model. Some amount of iteration always creeps in.
(2) If the specification of the project is not crystal clear at the beginning, it may lead to confusion in the later stages.
(3) A working model of the software is not available until the later stages, so the customers cannot see how the project is "taking shape."

But still, the linear model is used extensively, and is advantageous when the specification is well defined and understood.

Prototyping Model:

The main focus of this model is to develop a prototype of the software. The client then evaluates the working prototype, and suggests improvements and corrections, which all go into developing the real application.

The prototyping model is used when the client is unsure about the exact specification but has a genuine need. Then the software engineers can develop a rough prototype to gain an approval of the customer. If the prototype developed is a working model, the developers may use code fragments of the prototype when developing the final application.

Of course, the developers must resist the temptation to extend a prototype into a full fledged application. Because if this is done, the quality will suffer in the long run. The prototype is only meant for evaluation purposes. Some code fragments may be used, but using the whole prototype is not generally a good idea.

RAD Model:

The Rapid Application Development Model is used when there is a time constraint. It is an incremental software development process model.

It is an adaptation of the linear sequential model, and uses component based construction. Each component is given to a group of people known as a RAD team. This leads us to a drawback of the RAD model, that is, sufficiently high human resources are required to make optimum number of RAD teams.

The various phases involved in this model are:

(1) Business Modeling
(2) Data Modeling
(3) Process Modeling
(4) Application Generation
(5) Testing and Turnover

Not all types of applications are suited for the RAD process, but it is certainly the best bet when a tight deadline has to be met.

This article was originally published by CyberArmy.net in the CyberArmy Library.

You must be logged in to vote on an article

About Us | Privacy Policy | Mission Statement | Help