0% found this document useful (0 votes)
77 views28 pages

2 - Software Development Methodologies

The document discusses several software development methodologies and process models including: 1. The Software Development Life Cycle (SDLC) which describes the sequence of activities in a software engineering project. 2. The Waterfall model which is a linear and sequential approach with distinct phases of requirements, design, implementation, testing, and deployment. 3. The Incremental process model which combines elements of the waterfall model by delivering software in increments with each release adding more functionality. 4. The Prototyping model which focuses on building prototypes early to clarify requirements and get user feedback through multiple iterations. 5. The Spiral model which is an evolutionary approach that couples iterative prototyping with controlled and systematic

Uploaded by

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

2 - Software Development Methodologies

The document discusses several software development methodologies and process models including: 1. The Software Development Life Cycle (SDLC) which describes the sequence of activities in a software engineering project. 2. The Waterfall model which is a linear and sequential approach with distinct phases of requirements, design, implementation, testing, and deployment. 3. The Incremental process model which combines elements of the waterfall model by delivering software in increments with each release adding more functionality. 4. The Prototyping model which focuses on building prototypes early to clarify requirements and get user feedback through multiple iterations. 5. The Spiral model which is an evolutionary approach that couples iterative prototyping with controlled and systematic

Uploaded by

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

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

You might also like