The process used to create a software product from its initial conception to its public release is known as the software development lifecycle model.
There are many different methods that can be used for developing software, and no model is necessarily the best for a particular project. There are four frequently used models:
- Big –Bang Model
- Waterfall Model
- Prototype Model
- Spiral Model
The Big- Bang Model is the one in which we put huge amount of matter (people or money) is put together, a lot of energy is expended – often violently – and out comes the perfect software product or it doesn’t.
The beauty of this model is that it’s simple. There is little planning, scheduling, or Formal development process. All the effort is spent developing the software and writing the code. It’s and ideal process if the product requirements aren’t well understood and the final release date is flexible. It’s also important to have flexible customers, too, because they won’t know what they’re getting until the very end.
A project using waterfall model moves down a series of steps starting from an initial idea to a final product. At the end of each step, the project team holds a review to determine if they’re ready to move to the next step. If the project isn’t ready to progress, it stays at that level until it’s ready. Each phase requires well-defined information, utilizes well-defined process, and results in well-defined outputs. Resources are required to complete the process in each phase and each phase is accomplished through the application of explicit methods, tools and techniques.
The Waterfall model is also called the Phased model because of the sequential move from one phase to another, the implication being that systems cascade from one level to the next in smooth progression. It has the following seven phases of development:
The steps represents the Waterfall model
- Requirement Phase
- Analysis Phase
- Design Phase
- Development Phase
- Testing Phase
- Implementation Phase
- Maintenance phase
Notice three important points about this model.
- There’s a large emphasis on specifying what the product will be.
- The steps are discrete; there’s no overlap.
- There’s no way to back up. As soon as you’re on a step, you need to complete the tasks for that step and then move on.
The Prototyping model, also known as the Evolutionary model, came into SDLC because of certain failures in the first version of application software. A failure in the first version of an application inevitably leads to need for redoing it. To avoid failure of SDLC, the concept of Prototyping is used. The basic idea of Prototyping is that instead of fixing requirements before the design and coding can begin, a prototype is to understand the requirements. The prototype is built using known requirements. By viewing or using the prototype, the user can actually feel how the system will work.
The prototyping model has been defined as:
“A model whose stages consist of expanding increments of an operational software with the direction of evolution being determined by operational experience.”
The following activities are carried out in the prototyping process:
- The developer and die user work together to define the specifications of the critical parts of the system.
- The developer constructs a working model of the system.
- The resulting prototype is a partial representation of the system.
- The prototype is demonstrated to the user.
- The user identifies problems and redefines the requirements.
- The designer uses the validated requirements as a basis for designing the actual or production software .
- When an earlier version of the system does not exist.
- When the user's needs are not clearly definable/identifiable.
- When the user is unable to state his/her requirements.
- When user interfaces are an important part of the system being developed.
The traditional software process models don't deal with the risks that may be faced during project development. One of the major causes of project failure in the past has been negligence of project risks. Due to this, nobody was prepared when something unforeseen happened. Barry Boehm recognized this and tried to incorporate the factor, project risk, into a life cycle model. The result is the Spiral model, which was first presented in 1986. The new model aims at incorporating the strengths and avoiding the different of the other models by shifting the management emphasis to risk evaluation and resolution.
Each phase in the spiral model is split into four sectors of major activities. These activities are as follows:
Objective setting: This activity involves specifying the project and process objectives in terms of their functionality and performance.
Risk analysis: It involves identifying and analyzing alternative solutions. It also involves identifying the risks that may be faced during project development.
Engineering: This activity involves the actual construction of the system.
Customer evaluation: During this phase, the customer evaluates the product for any errors and modifications.