Software Development
Methodologies
Ashish Kumar
1
Software Development Life Cycle (SDLC)
A (software/system) lifecycle is a description of the sequence of
activities carried out in an SE project, and the relative order of these
activities.
Software Development Life Cycle (SDLC) is a process used by a
systems analyst to develop an information system, including
requirements, validation, training, and user (stakeholder) ownership.
Any SDLC should result in a high quality software that meets or
exceeds customer expectations, reaches completion within time and
cost estimates, works effectively and efficiently in the current and
planned Information Technology infrastructure, and is inexpensive to
maintain and cost-effective to enhance.
It provides a sequence of activities for system designers and developers
to follow.
It consists of a set of steps or phases in which each phase of the SDLC
uses the results of the previous one.
2
Strength and Weaknesses of SDLC
3
Software Development Process Model
A software development process model is an abstract
representation of a software process.
The development process is the sequence of activities that
will produce high quality software.
A software development process model is broken down
into distinct activities.
A software development process model specifies how these
activities are organized in the entire software development
effort.
4
Types of Software Development Process Model
A software development process model is either a descriptive or
prescriptive characterization of how software is or should be
developed.
A descriptive model describes the history of how a particular
software system was developed. Descriptive models may be used
as the basis for understanding and improving software
development processes or for building empirically grounded
prescriptive models.
A prescriptive model prescribes how a new software system
should be developed. Prescriptive models are used as guidelines
or frameworks to organize and structure how software
development activities should be performed, and in what order.
Typically, it is easier and more common to articulate a
prescriptive life cycle model for how software systems should be
developed. 5
Waterfall Model
Sometimes called the classic life cycle or the linear
sequential model.
It suggests a systematic, sequential approach to software
development that begins at the system level and progresses
through analysis, design, coding, testing, and support.
Waterfall model is the simplest & oldest prescriptive
process model.
It is a rigid and linear process model.
Although the original waterfall model proposed by
Winston Royce made provision for “feedback loops,” the
vast majority of organizations that apply this process model
treat it as if it were strictly linear.
6
Stages of Waterfall Model
7
Waterfall Model
In theory:
Each phase produces documents that are:
Verified and validated.
Assumed to be complete.
Each phase depends on the documents of the previous
stage to proceed → it has to wait for the completion of
previous stage.
In practice:
The phases overlap and feedback to each other (see the
feedback arrow in the diagram).
8
When to use the Waterfall Model
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.
9
Advantages & Disadvantages
Advantages of the Waterfall Model:
Easy to explain to the user.
Stages and activities are well defined.
Helps to plan and schedule the project.
Disadvantages of the Waterfall Model:
Real projects rarely follow sequential flow.
Difficult to state all requirements explicitly.
The customer must have patience.
Blocking states.
Developers have very little interaction with the users.
The project is not partitioned in phases in flexible way.
10
Incremental Process Model
The incremental model combines elements of the linear
sequential model (applied repetitively) with the iterative
philosophy of prototyping.
Each linear sequence produces a deliverable “increment” of
the software.
For example, word-processing software developed using
the incremental paradigm might deliver basic file
management, editing, and document production functions
in the first increment; more sophisticated editing and
document production capabilities in the second increment;
spelling and grammar checking in the third increment; and
advanced page layout capability in the fourth increment.
11
Incremental Process Model
Construct a partial implementation of a total system
Then slowly add increased functionality
The incremental model prioritizes requirements of the
system and then implements them in groups.
Each subsequent release of the system adds function to the
previous release, until all designed functionality has been
implemented.
It combines the advantages of Waterfall and Evolutionary
Model.
Each increment is a mini-waterfall.
12
Stages of Incremental Model
13
When to use the Incremental Model
Risk, funding, schedule, program complexity, or need for
early realization of benefits.
Most of the requirements are known up-front but are
expected to evolve over time.
A need to get basic functionality to the market early.
On projects which have lengthy development schedules.
On a project with new technology.
14
Advantages & Disadvantages
Advantages of Incremental Model:
Less Human Resources.
Manage Technologies.
Customer Evaluation and Satisfaction
Customer gains experience.
Low Project Failure Risk.
Disadvantages of Incremental Model:
Increments size should be neither too small nor too large.
It is very difficult to categorize requirements as most
important and least important.
15
Prototyping Model
Prototyping is a technique for providing a reduced functionality
or a limited performance version of a software system early in its
development.
Prototyping can more directly accommodate early user
participation in determining, shaping, or evaluating emerging
system functionality.
Prototyping is the practice of building an early version of
software.
This model is built at the early stages of the software
development. It is built very rapidly and fast, so that it can be
checked time-to-time by the customer. That is why, it is also
called as the “Rapid Prototyping”.
Prototyping is well suited for projects where requirements are
hard to determine and the confidence in the stated requirements
is low. 16
Prototyping Model
17
Steps of Prototyping Model
A preliminary project plan is developed
An partial high-level paper model is created
The model is source for a partial requirements specification
A prototype is built with basic and critical attributes
The designer builds
the database
user interface
algorithmic functions
The designer demonstrates the prototype, the user
evaluates for problems and suggests improvements.
This loop continues until the user is satisfied
18
When to use Prototyping Model
Requirements are unstable or have to be clarified
As the requirements clarification stage of a waterfall model
Develop user interfaces
Short-lived demonstrations
New, original development
With the analysis and design portions of object-oriented
development.
19
Advantages of Prototyping Model
Misunderstandings between software developer and users
may be identified.
Missing facilities and features may be found out.
Any non-conform, hard or confusing facilities or
characteristics may be identified.
Software developer may be found the incomplete or
inconsistent requirements as the prototype is developed.
Development effort is reduced because the resultant
system is the right system.
User-developer communication is enhanced.
20
Disadvantages of Prototyping Model
The customer will want the early version of the model
which may not have good quality concerns and
maintainability.
The developer often makes implementation compromises
in order to get a prototype working quickly. An
inappropriate operating system or programming language
may be used simply because it is available and known; an
inefficient algorithm may be implemented simply to
demonstrate capability. After a time, the developer may
become familiar with these choices and forget all the
reasons why they were inappropriate. The less-than-ideal
choice has now become an integral part of the system.
21
Spiral Model
The spiral model, originally proposed by Barry W. Boehm
in his 1986 article "A Spiral Model of Software
Development and Enhancement“.
It is an evolutionary software process model that couples
the iterative nature of prototyping with the controlled and
systematic aspects of the linear sequential model.
It provides the potential for rapid development of
incremental versions of the software.
Using the spiral model, software is developed in a series of
incremental releases.
22
Stages of Spiral Model
23
Spiral Model
Process is represented as a spiral rather than as a sequence of
activities with backtracking.
Each loop = One Iteration = A process phase.
Each Loop passes through 4 quadrants (90°):
Objective Setting.
Risk Assessment and Reduction.
Development and Validation.
Planning.
As loops move away from center → Time and Cost increase.
Adds risk analysis, and RAD prototyping to the waterfall model.
Each cycle involves the same sequence of steps as the waterfall
process model.
24
When to use Spiral Model
When creation of a prototype is appropriate
When costs and risk evaluation is important
For medium to high-risk projects
Long-term project commitment unwise because of
potential changes to economic priorities
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and exploration)
25
Advantages of Spiral Model
The software development indicates that the software remain
active till it is retired.
It is a realistic approach to be used.
If the process is going to be old, and requires some type of
change, then maintenance or some enhancements can be done
in the project.
The main and most important feature of this model is risk
analysis. The risk analyst will try to reduce the risks arise.
Prototyping can be used as risk reduction mechanism.
26
Disadvantages of Spiral Model
It is very hard to satisfy the customer.
If the risks are not covered initially then they may arise at any
time in later stages.
This model can’t be used so frequently so the results are not
available soon.
It requires a large sum of money to be completed.
Very difficult to implement.
27
Thank You
28