Software Models
Software Models
The Waterfall Model was the first Process Model to be introduced. It is also referred
to as a linear-sequential life cycle model. It is very simple to understand and use.
In a waterfall model, each phase must be completed before the next phase can begin
and there is no overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for software
development.
The waterfall Model illustrates the software development process in a linear
sequential flow. This means that any phase in the development process begins only
if the previous phase is complete. In this waterfall model, the phases do not overlap.
The spiral model combines the idea of iterative development with the systematic,
controlled aspects of the waterfall model. This Spiral model is a combination of
iterative development process model and sequential linear development model i.e.
the waterfall model with a very high emphasis on risk analysis. It allows incremental
releases of the product or incremental refinement through each iteration around the
spiral.
Based on the customer evaluation, the software development process enters the next
iteration and subsequently follows the linear approach to implement the feedback
suggested by the customer. The process of iterations along the spiral continues
throughout the life of the software.
Attention reader! Don’t stop learning now. Get hold of all the important CS
Theory concepts for SDE interviews with the CS Theory Course at a
student-friendly price and become industry ready.
B) Evolutionary Prototyping –
In this method, the prototype developed initially is incrementally refined on
the basis of customer feedback till it finally gets accepted. In comparison to
Rapid Throwaway Prototyping, it offers a better approach which saves time
as well as effort. This is because developing a prototype from scratch for
every iteration of the process can sometimes be very frustrating for the
developers.
The Big Bang model is an SDLC model where we do not follow any specific process.
The development just starts with the required money and efforts as the input, and the
output is the software developed which may or may not be as per customer
requirement. This Big Bang Model does not follow a process/procedure and there is
a very little planning required. Even the customer is not sure about what exactly he
wants and the requirements are implemented on the fly without much analysis.
Usually this model is followed for small projects where the development teams are
very small.
Now this increment M1+M2 is delivered to customer after second iteration. In the same way whole
software is developed and in the end final software product is delivered to customer.
Each successive version or model of the software product is a fully functioning software capable of
performing more work than the previous versions or model.
Every deliverable should be meaningful for the customer. It should perform a functionality of the
software.
This model is normally used to develop the large software consist of large number of functionality.
Various phases involved in each iteration are as shown in the above figure. Tasks are categorized into
phases and are ”time-boxed”, that is, time frames are allotted to each task. Each time-boxed phrase is
called a sprint. Each Sprint has a defined duration of time, say, a week, few days or month.
It is a very suitable model because of user feedback and other factors that make the
model very suitable for the development of complete Software. The user feedback is
very helpful for the development of the next stage because after the completion of
one stage we get the feedback to the user, the user feedback is very essential for
the development of the next phase.
If you want any changes in the software requirements, all changes will be applied
within a time.
In the evolutionary model, all work divided into smaller chunks. These chunks
present to the customer one by one. The confidence of the customer increased. This
model also allows for changing requirements as well as all development done into
different pieces and maintains all the work as a chunk.
Evolutionary model is useful in many cases. Two most important cases are
mentioned below;
1. It is very useful in a large project where you can easily find a module for
step by step implementation. The evolutionary model is used when the
users need to start using the many features instead of waiting for the
complete software.
2. The evolutionary model is also very useful in object-oriented software
development because all the development is divided into different units.
The following are the evolutionary models.
1. The prototyping model
2. the spiral model
3. the concurrent development model