Software Models - GVN E

advertisement
Software Models

Introduction

A software life-cycle model is a descriptive and
diagrammatic representation of the software
life-cycle. This includes a series of identifiable
stages that a software product undergoes during
its lifetime.
The software life-cycle is also referred to as the
System Development life-cycle (SDLC).
Why use a life-cycle model?

 Software development organizations have realised
that adherence to a suitable well-defined lifecycle
model helps to produce good quality products and
that without time and cost overruns.
 The primary advantage of adhering to a life-cycle
model is that it encourages development of software
in a systematic and disciplined manner.
Types of life-cycle models

There are five types of life-cycle models. Namely,
 Classical Waterfall Model.
 Iterative Waterfall Model.
 Evolutionary Model.
 Prototyping Model.
 Spiral Model.
Classical Waterfall Model

The classical waterfall model is considered to
be a theoretical way of developing software
and is used to appreciate and develop proper
understanding of the other software models.
The diagrammatic representation of this
model resembles a cascade of waterfalls and
hence the name.
Phases of Classical waterfall model

Disadvantage of this Model :

 The classical waterfall model, being an ideal model,
assumes the phases to be flawlessly done and there’s
no scope for rework at a later time.
 This model assumes the phases to be sequential but
in practical case it may over lap.
 It is difficult to accommodate requirement changes
after the development process starts.
Iterative Waterfall Model

 The Iterative waterfall model is the Classical
Waterfall Model with some necessary changes so that
it becomes applicable to practical software
development projects.
 The main change made being the feedback paths
from every phase to its proceeding phases to allow
correction of the errors committed during a phase, as
an when detected in a later phase.
Phases of Iterative waterfall model

Disadvantage of this model

 This model cannot be used in projects where only
rough requirements are provided.
 The rigid phase sequence prescribed by the waterfall
model can result in wastage of resources and manpower .
Evolutionary Model

 This life-cycle model (also referred to as the
successive versions model or the incremental model)
first builds a simple working system, then functional
improvements and additions are made until the
desired system is realized.
Phases of Evolutionary Model

Rough requirement specifications
Identify the core and other parts to be developed incrementally
Develop the core part using an iterative waterfall model
Collect customer feedback and modify requirements
Develop the next identified features using an iterative waterfall model
Maintenance
Pros And Cons Of This Model :

PROS:
 The user gets a chance to experiment with a partially developed
software. Thereby helping to gain better user satisfaction.
 The core modules get tested thoroughly hence reducing errors.
 This module obviates the need to commit large resources in one
go for development of the system.
CONS:
 For practical problems it is difficult to divide the problem into
several versions that would be acceptable to the customer which
can be incrementally implemented and delivered.
Prototyping model

 This type of model requires that before carrying out
the development of the actual software, a working
prototype of the system should be built which is a
very crude version of the actual system, using
inefficient, inaccurate or dummy functions or in
short using short cuts.
Phases Of The Prototyping Model

Pros And Cons Of The Prototyping
Model

PROS:
 The prototype helps to gain better understanding of the
customers’ needs.
 For the user it becomes much easier to form opinion by
experimenting with the prototype rather than trying to imagine
the working of the system.
 Helps to critically examine the technical issues.
 Overall development cost might be lower than other models.
 Minimizes the change requests from the customer.
CONS:
 It is a slow process.
 The cost of developing the prototype is a complete waste as the
prototype is ultimately thrown away.
Spiral Model

 The spiral model of a software appears like a spiral
with many loops.
 Over each loop, one or more features of the product
are elaborated and analyzed and the risks at that
point of time are identified and are resolved through
prototyping. Based on this, the identified features are
implemented.
Phases of Spiral Model

Pros And Cons Of This Model :

CONS:
 Complex model.
 Requires knowledgeable staff.
 Not very suitable for development of a product as
outsourced projects.
PROS:
 For projects having many unknown risks that might show
up as the development proceeds, this would be the most
appropriate model.
 It is more powerful than all other software models as it
subsumes all the discussed models.
Study Of The Different Models
From Their Usage

 The classical model cannot be used in practical
development projects because of its lack of error
correction mechanism.
 The iterative waterfall model, probably the most
widely used software model, is suitable only for wellunderstood problems and not for very large projects
or projects with many types of risks.
Example: a simple data processing software, or
an embedded software if the development
team is experienced
Study Of The Different Models
From Their Usage(Contd.)

 The prototyping model is suitable for projects for
which the requirements are not well understood but
all the risks can be identified.
Example: especially popular for the development of
user interface part of the project.
 The evolutionary model is suitable for objectoriented development projects.
 The spiral model, being the best of these models, is
suitable for development of technically challenging
and large projects prone to several kinds of risks. But
this model is generally not used due to its complexity
Conclusion

 During the development of any type of software product
,adherence to a suitable process model has become
universal. We have discussed five important life-cycle
models. Different life-cycle models have their own
advantages and disadvantages. Therefore, an appropriate
life-cycle model should be chosen for the problem at hand.
Even though organizations may follow whichever life cycle
model is appropriate to a project, the final document
should reflect as if the product was developed using
classical waterfall model. This makes it easier for the
maintainers to understand the product document.
References:

SA sir’s notes.
Fundamentals Of Software Engineering by
Rajib Mall.
Wikipedia
Thank You…..!!

Download