0% found this document useful (0 votes)
38 views40 pages

SDLC

Uploaded by

Archana Kamal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views40 pages

SDLC

Uploaded by

Archana Kamal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Software Development Life

Cycle Waterfall Model


SDLC – Software development Life cycle (Overveiw)

• A framework that describes the activities performed at


each stage of a software development project.

• Software lifecycle:
– Set of activities and their relationships to each other to support
the development of a software system
– Software development life cycle (SDLC) is a series of phases that
provide a common understanding of the software building
process.

• Software lifecycle modeling: Attempt to deal with


complexity and change
Software development Life cycle
Waterfall Evolutionary
Model
SDLC Models
Iterative
waterfall Prototype
model model

Spiral
History of Waterfall model

• The waterfall development model originates in the


manufacturing and construction industries

• In 1970 Royce proposed what is now popularly referred to as


the waterfall model

• In Royce's original waterfall model, the following phases are


followed in order:
1. Requirements specification
2. Design
3. Construction (AKA implementation or coding)
4. Integration
5. Testing and debugging (AKA Validation)
6. Installation
7. Maintenance
Waterfall Model overview
• Waterfall approach was first Process Model to be introduced and
followed widely in Software Engineering to ensure success of the
project.

• In "The Waterfall" approach, the whole process of software


development is divided into separate process phases.

• The phases in Waterfall model are:


• Requirement Specifications phase.
• Software Design.
• Implementation .
• Testing
• Maintenance.

• All these phases are cascaded to each other so that second phase is
started as and when defined set of goals are achieved for first phase
and it is signed off, so the name "Waterfall Model". All the methods
and processes undertaken in Waterfall Model are more visible.
How does it work(which most Activity involved)

• The project moves forward in a linear fashion just as


you would paddle down the stream.

• A preceding phase must be completed before the


next starts. And, once you go over a waterfall (i.e.,
complete a phase) you can't go back.

• This is the earliest method of structured system


development.
We will now discuss the various activities carried out during each
phase of life cycle.

Feasibility study:- during this phase, we generally study two type


of feasibility.

ü Financial feasibility:- it is tested that if the project can be


completed under the available resources or not or if the finance
is available to fulfil the requirements.

ü Technical feasibility:- it is tested that if the result is collected


which forms the input to the further system.
1. Requirement Analysis and Specification:-

During the requirement analysis and specification phase, the exact requirements
of the customer are analysed and a proper documentation mentioning, the
requirements is prepared. Two main activities performed during this phase are:-

§ Requirements Analysis
§ Requirements Specification
2. Design:-
After the SRS document have been prepared in the software requirements and
specification phase. In the design phase, the requirements specification
mentioned in the SRS document is transformed into the structural form.

This structural form is called software architecture of the project. This


architecture should be such that it can be easily convert able into a coded form
using implementation in some programming language.

Various design approaches used in the industry can be categorized into two
types:-
o Traditional design approach
o Object oriented design approach
3. Implementation- (Coding and Unit Testing)
3. Implementation (code testing and unit testing)

Coding testing:- the purpose of coding and unit testing phase of software
development is to translate completed, the software design into source code.

v The coding phase is also some times called implementation phase. Each
components of design is implemented as a program modules.

v The end product of this phase is set of program modules that have been
individually tested. After coding is each module is tested.

Unit Testing:- it involves testing each modules separately from other module,
then debugging and documents it. It is the most efficient way to debug errors
identified at this stage.
4. Verification – (Integration and system
testing)

During unit testing various test case and testing criteria are prepared for testing
correct working of individual module.

Now in this phase, the modules implemented in the implementation phase are
integrated together and tested.
Ø Integration Testing:- In this testing, modules are integrated one by
one in step and after each addition of one module, the resulting system is
tested again and again.

Ø The function of testing is to verify that after the integration of new module the
system is working correctly or not. When modules have been successfully
integrated and tested. System testing is carried out.
Ø System Testing:- The function of system testing is to ensure that the

developed system conforms to its requirement specify in SRS document.


System testing consist of three different kinds of testing activities.

• αtesting:- α testing is system testing performed by development team.

• βtesting:- β testing is system testing performed by a friendly set of


customers.

• Acceptance testing:- This is system testing performed by the customer


himself after the product delivery to determine whether to accept the
delivered product or to reject it.

• System testing:- is carried out according to the system test plan document
which was prepared during the requirement specification phase.
5. Maintenance :-

Maintenance of a software product requires much more effort than the


effort necessary to develop the product itself. The ratio of effort of
development of system and its maintenance is about 40 : 60.

There are three types of maintenance:-

§ Adaptive Maintenance

§ Perfective Maintenance

§ Corrective Maintenance
When to use Waterfall

• Requirements are very well known


• Product definition is stable
• Technology is understood
• New version of an existing product
• Porting an existing product to a new platform.
q Advantages:-
1. It is simple to use and understand.
2. Each stage has well defined deliverable or milestone.
3. Required amount of resources are minimal.
4. Phase are processed and completed one at a time.
5. Works well for smaller project where requirements are very well
understood.
q Disadvantages:-
1. Small changes or errors that arise in the complete software may
cause a lot of problems.
2. Client is not very clear of what he exactly wants from the software.
3. Only able to use when the requirement are fixed.
4. High amount of risk and uncertain.
5. Poor model for long and on going project.
Advantages

• A waterfall model helps find problems earlier on which


can cost a business less than if it was found later on.
• Requirements will be set and these wouldn't be changed.
• As everything is documented a new team member can
easily understand what's to be done.
• Implementers have to follow the design accurately
• Clear project objectives.
• Stable project requirements.
• Progress of system is measurable.
• Although the model is old fashioned, it remains a
reasonable approach when requirements are well
understood.
• It is very simple model to implement.
Disadvantages
• Many believe it is impossible to make one stage of the projects life cycle
perfect.

• Difficult to estimate time and cost for each stage of the development
process.

• Constant testing of the design is needed.

• At the beginning of most projects there is often a great deal of


uncertainty about requirements and goals, and it is therefore difficult for
customers to identify these criteria on a detailed level. The model does
not accommodate this natural uncertainty very well.
Disadvantages(cont…)
• In recent years it rigid design and inflexible procedure has come under
attack, due to its.

• Criticisms fall into the following categories:


o Time consuming (time is money)
o In this model there is no back tracking. For example if any error
occurred an any stage of software development, it can't be
corrected in that build.
o An error if undetected until the final product is produced may
be disastrous.
ITERATIVE WATERFALL MODEL

ØThis model leads the software development process in iterations. It


projects the process of development in cyclic manner repeating
every step after every cycle of SDLC process.

ØThe software is first developed on very small scale and all the
steps are followed which are taken into consideration. Then, on
every next iteration, more features and modules are designed,
coded, tested, and added to the software. Every cycle produces a
software, which is complete in itself and has more features and
capabilities than that of the previous one.
Iterative Waterfall Model
ADVANTAGE DISADVANTAGE

Ø It is much better model of the Ø It is not easy to manage this


software process. model.
Ø It allows feedback to
proceeding stages. Ø No clear milestones in the
development process.
Ø It can be used for project
where in the requirement are Ø No stage is really finished.
not well understood. Ø The number of resources
Ø In Iterative model less time is requirement are more.
spent on documenting and Ø Exit criteria for the software
more time is given for are unknown.
designing.
Ø Is useful when the project is Ø Not applicable for smaller
large size. projects.
Spiral Model

• The biggest problem we face in the waterfall


model is that taking a long duration to complete
the product, and the software became outdated.

• To solve this problem, we have a new approach,


which is known as the Spiral model. The spiral
model is also known as the cyclic model.
Spiral Model

• In this model, we create the application module by


module and handed over to the customer so that
they can start using the application at a very early
stage.

• And we prepare this model only when the module


is dependent on each other.
Spiral Model

• The different phases of the spiral model are as


follows:
• Requirement analysis
• Design
• Coding
• Testing and risk analysis
Spiral model
Example of Spiral model

• Let us see one example for a better understanding of


the spiral model:

• In the spiral model, the software is developed in the


small modules. Suppose we have the application A
and this A application is created with the help of
different models as P, Q, R.
Spiral model
Waterfall and spiral mdel - comparison
The Prototyping Model is a
systems development method
(SDM) in which a prototype (an
early approximation of a final
system or product) is built,
tested, and then reworked as
necessary until an
acceptable prototype is finally
achieved from which the
complete system or product can
now be developed.

Prototype Model
PROTOTYPE MODEL
Ø Cost effective (Development Ø Project management
cost reduced). difficulties.
Ø Increase system development Ø Not suitable for large
speed. applications.
Ø Enables a higher output for Ø Often lack flexibility.
user. Ø Possibility of implementing
Ø Users are actively involved in systems before they are ready.
the development. Ø Possibility of causing system to
Ø The user get a better be unfinished.
understanding of the system Ø Producer might produce a
being developed. system inadequate for overall
organization needs.

ADVANTAGE DISADVANTAGE
Evolutionary
Model
ØEvolutionary Model: The
Evolutionary model is
suitable for large projects
which can be decomposed
into a set of modules for
incremental development
and delivery. This model is
widely used in object-
oriented development
projects. This model is only
used if incremental delivery
of the system is acceptable
to the customer.
Comparison Of Different Life Cycle Models
Different Terms And Concepts

vSRS:- SRS is a software requirement specification SRS is used to


implement the user requirements in project.

v Software Architecture:-The requirements specification mentioned


in SRS document is transformed into the structural form. This structural form is
software arch.

v Testing:- d testing is system testing performed by development team.

v Prototype:-A prototype is like a toy of the actual system which have low
reliability, less functionalities and less performance.

v Meta Model:-A model includes features of the all the model, so it can be
viewed as a meta model.
vUnit testing:-In this testing, each module tested separately from other
module, then debugging and documented.

vSystem testing:-The function of system testing is to ensure


that the development system conforms to its requirements specify in
SRS document.
vAcceptance testing:-Acceptance testing is system testing
performed by the customer himself after the product delivery to
determine whether to accept the delivered product or to reject it.
vIntegration testing:-In Integration testing, modules are
integrated one by one in step and after each addition of one module,
the resulting system is to verify that after the integration of new
module the system is working correctly or not.
vPhase containment of errors:-The principle of
detecting error as close to its point of introduction as possible is
called phase containment of errors.
Thank You

You might also like