0% found this document useful (0 votes)
20 views

SDLC

The document discusses several generic software process models including the waterfall model, prototyping model, spiral model, and incremental process models. It provides details on the phases and characteristics of each model.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

SDLC

The document discusses several generic software process models including the waterfall model, prototyping model, spiral model, and incremental process models. It provides details on the phases and characteristics of each model.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 27

Generic software process models

• The waterfall model


• The Prototype Model
• Spiral Model
• Increment process models
• Evolutionary process models
Waterfall model
Waterfall model phases

• Requirements analysis and definition


• System and software design
• Implementation and unit testing
• Integration and system testing
• Operation and maintenance
Waterfall model
• This model is also called linear sequential
model.
• This model is easy to understand and
reinforces the notion of “define before
design” and “design before code”.
• The model expects complete & accurate
requirements early in the process, which is
unrealistic
Waterfall model problems
• It is difficult to define all requirement at the
beginning of the project.
• Model is not suitable for accommodating any
change
• It does not scale up well to large projects
• A working version of the system is not seen until
late in the project’s life
• Inflexible partitioning of the project into distinct
stages makes it difficult to respond to changing
customer requirements.
• Therefore, this model is only appropriate when
the requirements are well-understood and
changes will be fairly limited during the design
process.
Prototyping Model
• Prototyping begins with requirements
gathering.
• Developer and customer meet and define
the overall objectives for the software,
identify whatever requirements are known,
and outline areas where further definition
is mandatory.
• A "quick design" then occurs. The quick
design focuses on a representation of
those aspects of the software that will be
visible to the customer/user (e.g., input
approaches and output formats).
Prototyping Model
• It is based on the idea of building a
prototype before building the actual
system
– Prototype exhibits limited functional abilities,
low reliability, and inefficient performance
– Used to show input types, user interactions
using dummy functions
– Used to resolve technical issues resulting of
unknown components (e.g. new hardware)

7
• The prototype may be a usable program
but is not suitable as the final software
product.
• The code for the prototype is thrown
away. However experience gathered helps
in developing the actual system.
• The development of a prototype might
involve extra cost, but overall cost might
turnout to be lower than that of an
equivalent system developed using the
waterfall model.
Prototyping Model

Feasibility study

Requirement Gathering

Quick Design

Refine Requirements Build Prototype

Customer Evaluation

Design

Implement

Test
Maintain
9
Prototyping Model
• After finalization of software requirement
and specification (SRS) document , the
prototype is discarded and actual system
is then developed using the waterfall
approach.
Advantage &
limitations of Prototyping Models
Advantage
• Suitable for large systems for which there is no
manual process to define there requirements.
• Quality of software is good.
• Requirements are not freezed.
Limitations of Prototyping Model
• Requires extensive participation and
involvement of the customer, which is not always
possible
Spiral Model
• Models do not deal with uncertainly which is
inherent to software projects.
• Important software projects have failed because
project risks were neglected & nobody was
prepared when something unforeseen
happened.
• Barry Boehm recognized this and incorporated
the “project risk” factor into a life cycle model.
• The result is the spiral model, which was
presented in 1986.
Spiral Model
• Process is represented as a spiral rather than
as a sequence of activities with backtracking
• Each loop in the spiral represents a phase in
the process.
• No fixed phases such as specification or
design - loops in the spiral are chosen
depending on what is required
• Risks are explicitly assessed and resolved
throughout the process
Spiral Model
• Activities are organized in a spiral having many cycles
• Four quadrants in each cycle
Spiral model of the software process

Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analy sis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
• The radial dimension of the model
represents the cumulative costs.
• Each path around the spiral is indicative of
increased costs.
• The angular dimension represents the
progress made in completing each cycle.
• Each loop of the spiral from X-axis
clockwise through 360o represents one
phase.
• One phase is split roughly into four
sectors of major activities.
Spiral model sectors
• Objective setting
– Specific objectives for the phase are identified
• Risk assessment and reduction
– Risks are assessed and activities put in place to
reduce the key risks
• Development and validation
– A development model for the system is chosen
which can be any of the generic models
• Planning
– The project is reviewed and the next phase of
the spiral is planned
Limitations & Advantages of Spiral Model
Limitations of Spiral Model
• Lack of explicit process guidance in determining
objectives, constraints, alternatives.
• Relying on risk assessment expertise
• Provides more flexibility than required for many
applications.
Advantages of Spiral Model
• It uses wide range of options to accommodate
the good features of other life cycle models.
• It becomes equivalent to another life cycle
model in appropriate situations.
Increment process models

• Effective in a situation where requirements are


defined precisely and there is no confusion
about the functionality of the final product
• After every cycle a usable product is given to
customer
• Every new cycle will have an additional
functionality
• IP models are popular particularly when we have
to quickly deliver a limited functionality
system
Increment process models
This model has the same phases as the waterfall model,
but with fewer restrictions. Generally the phases occur in
the same order as in the waterfall model, but they may
be conducted in several cycles.
• Useable product is released at the end of the each cycle,
with each release providing additional functionality.
• Customers and developers specify as many
requirements as possible and prepare a SRS document.
• Developers and customers then prioritize these
requirements
• Developers implement the specified requirements in one
or more cycles of design, implementation and test based
on the defined priorities.
Increment process models
Advantage of Increment process
models
• The feedback from early increments improve the
later stages.
• The possibility of changes in requirements is reduced
because of the shorter time span between the design
of a component and its delivery.
• Users get benefits earlier than with a conventional
approach.
• Smaller sub-projects are easier to control and manage.
• Job satisfaction is increased for developers who see
their labors bearing fruit at regular, short intervals
Disadvantages of
Increment process models
• Programmers may be more productive working
on one large system than on a series of smaller
ones.
• Some problems are difficult to divide into
functional units (modules), which can be
incrementally developed and delivered
• Software breakage, that is, later increments may
require modifications to earlier increments.
Evolutionary Process Models
• In evolutionary development, requirements are
implemented by category rather than by priority.

• This model is useful for projects using new technology


that is not well understood.

• This is also used for complex projects where all


functionality must be delivered at one time, but the
requirements are unstable or not well understood at the
beginning.
Evolutionary Development..
• Main characteristics:
– The phases of the software construction are
interleaved
– Feedback from the user is used throughout
the entire process
– The software product is refined through many
versions
• Types of evolutionary development:
– Exploratory development
– Throw-away prototyping
Evolutionary development Model
Concurr ent
activities

Initial
Specification version

Outline Intermedia te
description Development versions

Final
Valida tion version
Evolutionary Development…
• Advantages:
– Deals constantly with changes
– Provides quickly an initial version of the system
– Involves all development teams
• Disadvantages:
– Quick fixes may be involved
– “Invisible” process, not well-supported by
documentation
– The system’s structure can be corrupted by
continuous change

You might also like