Software be implemented. Next step is coding

 

Software
Process Models:

Process
models are the representation of software processes. They describe a process
from different perspectives like specification, design, validation and
evolution.

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

General
Software Process Models are:

·        
Waterfall
Model

·        
Prototype
Model

·        
Incremental
Model

·        
Iterative
Model

·        
RAD
Model

·        
Spiral
Model

·        
Agile
Model

But
here we discuss and compare some of them.

1.    
Waterfall Model

A classical and the oldest model model which is used in most of the
government as well as private organizations. It is based on planning on early
stages so there will be minimum design flaws. Planning on early stages and
excessive documentation make it good for the projects in which quality is the
main subject. Waterfall model consists of different non concurrence stages.

1.     
System
requirements

2.     
Software
requirements

3.     
Architectural
design

4.     
Detail
design

5.     
Coding

6.     
Testing

7.     
Maintenance

Waterfall
method served as a baseline many other software process models. System
requirements include all the components requirements consists of hardware
requirements as well as software tools. 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 requirements. Architectural design also highlights
the major components and other interfaces with which the software interacts.
But keep it in mind that it does not consist of the design information of the
other components. Detail design includes the examination and analysis of all
the components that are defined in the Architectural design and specifies how
each component will be implemented. Next step is coding which is the
implementation of all the specifications defined in the detailed design.
Testing determines whether the software is properly works according to its
customer’s specification and finds all bugs in the software system. Maintenance
addressed all the problems which come after the software system release.

 

Waterfall Model

Waterfall
Model cannot be applied to all situations because it does not overlaps between
stages. All requirements should be stated in the early stage of software
development. So the complete and consistent requirements must be defined before
the coding phase i.e. returning from coding to the requirement phase is not
supported by waterfall model and this needs lot of rework and extra budget. Waterfall
model is easy to understand but sometimes it does not match the reality 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 well when the requirements
are well defined and the development tools are properly understood. But it
becomes inefficient when there is rapid development needed. So there is Modified
Waterfall method which has same phases as the classical model but they are
not discontinuous any more, they can connect at every stage to cope with
problems.

Advantages

Disadvantages

·        
Modified
waterfall method is more flexible than the classical model.

·        
There is
ambiguity in milestones achieved as compared to classical basic model.

·        
We can
implement easy areas without waiting for the complex areas to implement.

·        
Interdependencies
can create many problems.
 

·        
There is
overlap between phases so excessive documentation is reduced to some extent.

·        
There are
many chances of miss communication as the activities are performed in
parallel.

 

2.    
Iterative Model

The
problems in Waterfall model makes need of another model which is more flexible
and produce faster results. 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. Each iteration is a small waterfall process and the feedback
after every iteration helps in specifying requirements for the next module.

Iterative Model

Advantages

Disadvantages

·        
By developing
step by step we can detect defects in early stages, so there are minimum
chances of downward flow of defects.

·        
There is no
overlap between steps of all iteration.

·        
Get user
feedback as the iterations produced, presenting blueprints of the products to
users will show them how the end product works.

·        
All
requirements are not gathered at the start of the project so may result in
costly system architecture and design.

·        
More Time is
spent on designing of software and less time is spent on documentation.

 

 

3.  
V-Shaped Model

Like
waterfall, V-Shaped model consists of sequential execution of processes. First
phase must be complete before the execution of next phase. Like waterfall model
cycle starts with requirement specification but here there are more emphases on
Testing. Test plans are developed before the coding phase which focuses on
mapping the results with the functionality specified in the requirements.

Integration
test plan is generated between the Software architecture and design phase so
that testing the working capability of different modules with each other. When
the coding is complete then all the test plans are executed which are produced
between all the steps of V-shaped model.

 

V-Shaped Model

Advantages

Disadvantages

·        
Easy to use.

·        
Very rigid
like waterfall model.

·        
Specific
deliverables of each phase.

·        
Scope is
difficult to adjust so it is little flexible.

·        
Higher
chances of success than waterfall model due to the development of test plans
in early stages.

·        
No early
prototypes produced because of the implementation of software at early
stages.

·        
Avoid
downward flow of defects in software development processes.

·        
Test document
has to be updated if there will be any change in the requirement document.

 

4.  
Spiral Model

Spiral
model is similar to waterfall but in this model there is more emphasis on Risk
Analysis. It consists of four phases:

·        
Planning

·        
Risk
Analysis

·        
Engineering

·        
Evaluation

Software
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 identifies and
solutions are developed. If the risks are found then the new solution would be
proposed. A prototype is produced at the end 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 spiral.

Spiral Model

Advantages

Disadvantages

·        
Good for large projects.

·       Costly model because of high risk analysis

·        
High risk
analysis.

·        
Risk analysis
needs of high expertise people.

·        
Software is
produces early in SDLC

·        
Not suitable
for smaller projects.

 

5.   
Agile Model

A
type of incremental model in which the software is developed in increments and
each increment is released with increment in the functionality of the previous
increment and is tested properly to ensure the software quality. The most known
agile method used is Extreme Programming.

Extreme
Programming:

Extreme
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 involved in the software development and prioritizing changes
is very difficult because of many stakeholders so smooth working needs extra
work.

There
are different practices in (XP):

Incremental
Planning:

Requirements
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.

Small
Releases:

The
minimum set of system functionality to be released and then this functionality
is then incremented in the next release.

Simple
Design:

Simple
design that is enough for the current release of systems functionality.

Test
first development:

Before
the implementation of the new functionality a framework for unit testing is
written.

Refactoring:

As
the errors are found developers are ready to refactor the code to make it
simple and easy.

Pair
Programming:

Developers
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.

Collective
Ownership:

All
developers of the system work together so code does not belong to only one
developer.

So
everyone can change the code give rise to collective ownership.

Continuous
Integration:

As
one module is complete then it is added to the system and then performed unit
testing on the entire system.

Sustainable
pace:

Over
time is not considered because it results in the reduction of the quality of
code.

On-site
Customer:

Representative
of customer is available for all the time with the developer as is like a
member of developer team as it is responsible for the system requirements for
implementation.

Agile Method (Extreme Programming)

 

 

 

Advantages

Disadvantages

It is good for medium projects.

Not good for large complex projects.

Produce better team collaboration.

Limited support for developing reusable artefacts.

Changes in requirements are welcomed at every stage.

Pair programming is costly.

 

Conclusion:

There
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.

 

Go Top
x

Hi!
I'm Rita!

Would you like to get a custom essay? How about receiving a customized one?

Check it out