Software in the software system. Maintenance addressed

 Software
Process Models:

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

Commonly
known Process Models are:

·        
Waterfall
Model

·        
Prototype
Model

·        
Incremental
Model

·        
Iterative
Model

·        
RAD
Model

·        
Spiral
Model

·        
Agile
Model

But
here we discuss and examine some of them.

1.    
Waterfall Model

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

1.     
System
requirements

2.     
Software
requirements

3.     
Architectural
design

4.     
Detail
design

5.     
Coding

6.     
Testing

7.     
Maintenance

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

 

Waterfall Model

Waterfall
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
with problems.

Advantages

Disadvantages

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

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

·        
We can
implement easy areas without waiting for 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 of different phases are
performed in parallel fashion.

 

2.    
Iterative Model

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

Iterative Model

Advantages

Disadvantages

·        
By developing
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.

·        
Get user
feedback as the iterations develops; presenting
blueprints of the products to customers that display them how product works.

·        
All
requirements are not amassed at the start of the venture so may also bring
about pricey device architecture and design.

·        
Excessive amount
of 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 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
requirements.

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

 

V-Shaped Model

Advantages

Disadvantages

·        
Easy to use.

·        
Very rigid
like waterfall model.

·        
Specific
deliverables of each phase.

·        
Scope is
difficult to alter so it is little bendy.

·        
Higher
chances of achievement than waterfall version because of the development of test
plans take place early degrees.

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

·        
Avoid downward
float of defects in software development processes.

·        
Test document
has to be updated if there can be any exchange in the requirement report.

 

4.  
Spiral Model

Spiral
model is much like waterfall however in this version there is more emphasis on
Risk analysis. It consists of 4 levels:

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

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

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 part of the software development and prioritizing changes is
very difficult because of many stakeholders so smooth working needs extra
amount of 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 number 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 unit testing is
performed 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 part 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.

 

x

Hi!
I'm Mary!

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

Check it out