Вы находитесь на странице: 1из 48

Tata Consultancy Services ltd.

12 October 2006 1 Confidential


Software Development Life
Cycle Models
2
Confidential
Objectives
Overview of Software Development Life
Cycle
Understanding of well known SDLC
Models
Guidelines to choose an appropriate
SDLC Model
3
Confidential
SDLC Overview & Phases (1/4)
A software life cycle is the series of
identifiable stages that a software product
undergoes during its lifetime
Phases of SDLC
Feasibility (pre-development)
Establishes a high-level view of the
intended project and determines its
goals
4
Confidential
SDLC Overview & Phases (2/4)
Requirements
Refines project goals into defined
functions and operation of the intended
application.
Analyzes end-user information needs.
Addresses on What System should do
5
Confidential
SDLC Overview & Phases (3/4)
Design
Describes desired features and
operations in detail, including screen
layouts, business rules, process
diagrams, pseudocode and other
documentation.
Coding and Unit testing
The real code is written here
6
Confidential
SDLC Overview & Phases (4/4)
Testing
Brings all the pieces together into a
special testing environment, then checks
for errors, bugs and interoperability.
Maintenance (post-development)
Incorporation of changes, corrections,
additions.
7
Confidential
SDLC Models (1/3)
Set of generic development activities to
be used on software projects and the
order in which they are applied
Bring order & structure to software
development
Define a distinct set of activities, actions,
tasks, milestones & work products
required to engineer high quality software
8
Confidential
SDLC Models (2/3)
Some well known life cycle models are
Single version model
Waterfall model
Waterfall model with back flow
Throwaway Prototype model
Iterative model
Evolutionary Prototype model
Spiral model
9
Confidential
Analysis
Design
Implementation
Testing
Analysis
Design
Impln.
Testing
Analysis
Design
Impln.
Testing
Analysis
Design
Impln.
Testing Scope
Single version model
Iterative models
SDLC Models (3/3)
10
Confidential
Software Development flows steadily
downwards (like a waterfall)
Proceeding from one phase to the next is
purely in sequential manner
e.g. After completion of Requirement phase
only Design phase should start
Waterfall Model (1/7)
11
Confidential
Waterfall Model (2/7)
PSU
RQA
HLD
LLD
CONSTRUCTION
SYSTEM TEST
ACCEPTANCE TEST
PACKAGE & RELEASE
OPERATIONS & MAINTENANCE
Each phase pours over
into the next phase.
12
Confidential
Advantages
Each phase has specific deliverables and
review process hence easy to manage
Phases are processed and completed one
at a time - Ensures effective resource
management
Comfortable contract finalization with
reference to delivery and payment
schedule
Waterfall Model (3/7)
13
Confidential
Issues
Produces working Software at later stage
during the life cycle
Leads to high amount of risk and
uncertainty
Mandates correction of identified defects
in the phase where they are initiated
which is difficult in practical scenario
Waterfall Model (4/7)
14
Confidential
It is impossible to get one phase of a software
product's lifecycle "perfected" before moving
on to the next phases
(1) clients may not be aware of exactly
what requirements they want before they
see a working prototype and can comment
upon it - they may change their
requirements constantly, and program
designers and implementers may have little
control over this
Waterfall Model (5/7)
15
Confidential
(2) Designers may not be aware of future
implementation difficulties when writing
a design for an unimplemented
software product. That is, it may
become clear in the implementation
phase that a particular area of program
functionality is difficult to implement.
Waterfall Model
16
Confidential
Waterfall Model with back-flow (5/7)
Allows correction of detected defects by
going back to the appropriate phase
(where the defect got introduced)
Principle of Phase containment of
errors:
If and when errors occur, they should
be detected (and corrected) as early
as possible
17
Confidential
PSU
RQA
HLD
LLD
CONSTRUCTION
SYSTEM TEST
ACCEPTANCE TEST
PACKAGE & RELEASE
OPERATIONS & MAINTENANCE
Waterfall Model with back-flow (6/7)
18
Confidential
Waterfall Model (7/7)
If software requirements are stable and
well understood, then waterfall model
can be used
19
Confidential
Prototyping Model (1/7)
Suggests building a prototype before
developing the actual software
A prototype is a rudimentary working
model of a S/W
Built for demonstration purposes
(Throwaway prototype) or
As part of the development process
(Evolutionary prototype )
20
Confidential
Requirements
gathering
Quick
design
Refine
requirements
Prototype
evaluation
Build
prototype
Design
Development
Test
Maintain
Customer
acceptance
Customer
suggestions
Throwaway Prototype Model (2/7)
21
Confidential
Prototype gives look & feel of the future
system to the client
After acceptance of the prototype, the
development can be done using an
iterative waterfall model
Throwaway Prototype Model (3/7)
22
Confidential
Development of a user interface prototype
Throwaway Prototype Model (4/7)
23
Confidential
Advantages
Easy to change Prototypes as per clients
suggestion
Early visibility of the prototypegives users
an idea of what the final system looks like
This Increases clients satisfaction and
participation
Throwaway Prototype Model (5/7)
24
Confidential
Advantages
May provide the proof of concept necessary
to attract funding
Time/effort spent on prototype is worth it
SRS gets supplemented with prototype
Experience in building prototype is carried
forward to development
Throwaway Prototype Model (6/7)
25
Confidential
Issues
Extra effort & time is required to build
prototypes
When to choose Prototype model
If software requirements are stable, but not
clear, then ThrowawayPrototype model can
be used
Throwaway Prototype Model (7/7)
26
Confidential
Evolutionary Prototype Model (1/7)
Also known as SUCCESSIVE
VERSIONS model
Allows
Breaking a system down into several
modules
Delivery of modules in an incremental
fashion
27
Confidential
Core module is developed initially
Refined by incrementally adding new
functionalities
Note: Each successive version of the product
is a working version
Evolutionary Prototype Model (2/7)
28
Confidential
A A
B
A
B
C
Evolutionary Prototype Model (3/7)
29
Confidential
Advantages
Useful when staffing is unavailable for a
complete implementation
Early increments can be implemented by
fewer people
Depending on the acceptability, more
resources can be added for subsequent
stages
Evolutionary Prototype Model (4/7)
30
Confidential
Advantages
User gets an opportunity to use the
partial system much before the fully
developed version is released
Helps in extracting requirements
Core module gets tested very
thoroughly (since it gets tested at the
time of each release)
Evolutionary Prototype Model (5/7)
31
Confidential
Issues
Agreement on the core product is not
easy
It is difficult to break down a system
into functional units that can be
implemented in an evolutionary way
Evolutionary Prototype Model (6/7)
32
Confidential
Evolutionary Prototype Model (7/7)
Evolutionary prototype model is useful
for implementation of large projects in
incremental fashion
Note : Customer needs to be agreed upon
Incremental delivery
33
Confidential
Spiral Model (1/10)
The spiral model is an evolutionary
software process model that couples
The iterative nature of prototyping and
The controlled and systematic
aspects of the waterfall model
34
Confidential
Radius indicates the cost
Angle indicates the Progress
Spiral Model (2/10)
1. Determine
Objectives and
identify alternative
solutions
2. Identify and
Resolve the risk
3. Develop the next
level of product
4. Review and plan
for the next phase
35
Confidential
Four Quadrants of Spiral Model
Planning
Objectives, alternatives, and
constraints are determined.
Risk Analysis
Alternative solutions and constraints
are defined, and risks are identified
and analyzed.
Spiral Model (3/10)
36
Confidential
Risk
A customer not knowing exactly what
he/she wants
Changing expectations as project
progresses
Staff who are inexperienced in the
problem domain or with the appropriate
implementation techniques
Spiral Model (4/10)
37
Confidential
Engineering
Actual Development and Testing
happens
Customer Evaluation
Customer will assess the S/W and
suggest changes if necessary
Spiral Model (5/10)
38
Confidential
Single loop spiral model represents
a Waterfall model
Looping around each cycle
represents evolutionary model
More complete version of the
product gets built progressively
Spiral Model (6/10)
39
Confidential
Advantages
High amount of Risk Analysis
1.Allows customer and developer to
determine and react to risks at each
evolutionary level
2.Direct consideration of risks at all
levels greatly reduces problems
Spiral Model (7/10)
40
Confidential
Advantages
S/W is produced early in life cycle
Good for large, complex and mission
critical projects
Spiral Model (8/10)
41
Confidential
Disadvantages
Can be Costly model
Risk analysis requires highly specific
expertise
Projects success is dependent on the
risk analysis
Spiral Model (9/10)
42
Confidential
Spiral Model (10/10)
Spiral model should be used
If the requirements are coupled with the
underlying business processes, which
are going through a process of change
If development is for technically
challenging products
43
Confidential
ETVX Model (1/3)
Facilitates Process control and ensures
correctness and completeness of each
activities
Each Phase in the development process
can itself be considered a high level
activity with a specific ETVX
44
Confidential
ETVX Model (2/3)
ENTRY
CRITERIA
EXIT
CRITERIA
TASKS
VERIFICATION
45
Confidential
Entry Criteria
Checklist of conditions that must be satisfied
before beginning the activity
Tasks
A set of tasks that needs to be carried out
Verification
A list of tasks to verify the quality of work
items produced
Exit Criteria
A checklist of conditions that must be
satisfied before each activity is completed
ETVX Model (3/3)
46
Confidential
Choosing a model (1/2)
47
Confidential
Choosing a model (2/2)
Spiral
Evolutionary (Iterative)
Waterfall
Throw-Away
&
Waterfall
Require
ments
(Lack of) Clarity
(Un)Stability
Risk
48
Confidential
Thank You
Thank You