models are the process representation of software. They describe a process from
different views like specification, layout, validation and evolution.
known Process Models are:
here we discuss and examine some of them.
and the oldest model that is used in most of the government as well as private companies.
It depends upon planning on initial stages so there will be minimum number of
design flaws. Planning on initial stages and extra documentation make it good
for the projects in which quality is the main goal. Waterfall model consists of
different non concurrence stages.
method served as a baseline in many other software process models. System
requirements include all the components requirements, consists of hardware
requirements as well as software tools requirements. Software requirements
include the functionality of the required system and analysis of the interaction
with other databases and applications. Architectural design is the framework of
software system to meet the customer needs. It also highlights the major
components of the system and other interfaces with which the software
interacts. But keep it in mind that it does not consist of these components
design information. Detail design is the examination and analysis of all those
components that are defined in the Architectural design and define how every element
will be carried out. Next step is coding which is the implementation of all the
specs defined in the detailed design. Testing determines whether the software
is working accordingly to its customer’s specs and finds all bugs present in
the software system. Maintenance addressed all the problems which come after
the software product release.
Model cannot be applied to all situations as it does no longer overlaps between
stages. All requirements need to be stated in the initial step of software
program development. So the complete and consistent requirements have to be
defined before the coding section i.e. returning from coding to the requirement
phase is not supported by waterfall model and this requires lot of rework and
extra budget. Waterfall model is easy to understand but it does not fit the fact well. It forces good habits like designing
before development, documentation but mostly software is delivered late and
there are delays in the discovery of bugs.
Pure classical waterfall method performs better when the
requirements are well defined and the development tools are clearly understood.
But it becomes inefficient when fast development needed. So there is Modified
Waterfall method which has same phases as the classical model but all
phases are not discontinuous any more, they can connect at every stage to cope
waterfall method is more flexible than the basic model.
ambiguity in milestones achieved as compared to classical basic model.
implement easy areas without waiting for complex areas to implement.
can create many problems.
overlap between phases so excessive documentation is reduced to some extent.
many chances of miss communication as the activities of different phases are
performed in parallel fashion.
problems in Waterfall model makes need of another model which is extra bendy and produce quicker outcomes. In Iterative
development, development starts with specifying and implementing a part from
software. This enable the developers to fetch results early in the development so
get feedback from every release of software module. Every new release is a
small waterfall model and the remarks each iteration enables in specifying
necessities for the subsequent module.
step by step we can detect defects in early stages, so there are minimum
probabilities of downward float of defects
There is no
overlap between steps of all iteration.
feedback as the iterations develops; presenting
blueprints of the products to customers that display them how product works.
requirements are not amassed at the start of the venture so may also bring
about pricey device architecture and design.
of time is spent on designing of software and less time is spent on
waterfall, V-Shaped model consists of sequential execution of processes. First juncture
must be complete before the execution of next juncture. Like waterfall model
cycle starts off evolved with requirement specification but here there are more
emphases on Testing. Test plans are developed before the coding segment which
focuses on mapping the effects with the functionality specified inside the
test plan is generated between the software architecture and design phase so
that testing the running capability of various modules with every other. When
the coding is finished then all the test plans are executed which are produced
between all the steps of V-shaped model.
Easy to use.
like waterfall model.
deliverables of each phase.
difficult to alter so it is little bendy.
chances of achievement than waterfall version because of the development of test
plans take place early degrees.
prototypes produced because of the implementation of software program at
float of defects in software development processes.
has to be updated if there can be any exchange in the requirement report.
model is much like waterfall however in this version there is more emphasis on
Risk analysis. It consists of 4 levels:
project continuously passes through spirals/phases in the iterations. In planning phase requirements are gathered
then it move towards risk analysis phase where risks are identified and
solutions are evolved. If the risks are determined then the new solution would
be proposed. A prototype is produced at the ending stage of the risk analysis
phase. Software is developed in the Engineering phase with testing it in the
end of the phase. Evaluation phase allows customers to evaluate the output of
software product before it moves towards the next phase.
Good for large projects.
· Costly model because of high risk analysis
needs of high expertise people.
produces early in SDLC
for smaller projects.
type of incremental model in which the software is developed in the form of increments
and every increment is launched with increment in the functionality of the
previous increment and is tested properly to ensure the best software quality.
The most known agile method used is Extreme Programming.
programming includes the continuous code improvement with user involvement in
the development and pair programming. It is difficult to keep interest of the
customers who are part of the software development and prioritizing changes is
very difficult because of many stakeholders so smooth working needs extra
amount of work.
are different practices in (XP):
are stored in story cards and the stories to be released are selected by their
relative priorities and release time and then they are broken down by the
developers for the task release.
minimum number of system functionality to be released and then this
functionality is then incremented in the next release.
design that is enough for the current release of systems functionality.
the implementation of the new functionality a framework for unit testing is
the errors are found developers are ready to refactor the code to make it
simple and easy.
are working with each other in pairs to check the work of each other so make
the code of good quality and less error prone.
developers of the system work together so code does not belong to only one
everyone can change the code give rise to collective ownership.
one module is complete then it is added to the system and then unit testing is
performed on the entire system.
time is not considered because it results in the reduction of the quality of
of customer is available for all the time with the developer as is like a part of
developer team as it is responsible for the system requirements for
Agile Method (Extreme Programming)
It is good
for medium projects.
Not good for
large complex projects.
better team collaboration.
support for developing reusable artefacts.
requirements are welcomed at every stage.
programming is costly.
are many models used for developing different kind of systems according to
their size and requirements. All of them have some pros and cons. Every model
tries to solve the problems/weakness found in the previous model. Waterfall and
Spiral model are widely used models.