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

Lec 10 SDLC Models (Additional Handouts)

The document discusses several software development life cycle (SDLC) models including Waterfall, V-Shaped, Evolutionary Prototyping, and Rapid Application Development (RAD) models. It provides an overview of each model's phases and when each model is best applied. For example, the Waterfall model works well when requirements are stable while Evolutionary Prototyping is suited to clarifying unstable requirements through iterative prototyping.

Uploaded by

ALI HASSAN
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
129 views

Lec 10 SDLC Models (Additional Handouts)

The document discusses several software development life cycle (SDLC) models including Waterfall, V-Shaped, Evolutionary Prototyping, and Rapid Application Development (RAD) models. It provides an overview of each model's phases and when each model is best applied. For example, the Waterfall model works well when requirements are stable while Evolutionary Prototyping is suited to clarifying unstable requirements through iterative prototyping.

Uploaded by

ALI HASSAN
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 48

Software Development Life

Cycle (SDLC)

Yogi Berra

1
Table of Contents
 SDLC Model means
 Capability Maturity Model
 Waterfall Model
 V Shap Model
 Evolutionary Prototyping Model
 RAD Model
 Incremental Model
 Spiral Model
 Agile Model
 Extreme Programming XP
 Feature Driven Design (FDD)
 Dynamic System Development Method (DSDM)
 Quality Assurance Plan

SDLC Models, University of Okara 2


SDLC Model
 Software Development (or Design) Life Cycle
 It is a term used in systems engineering, information
systems and software engineering to describe a process for
planning, creating, testing, and deploying an information
system. Following are phases of SDLC:
1. Preliminary Investigation: [Includes goal, objectives, cost, time, submit
plan with suggestions, nature or scope of problem, alternative solutions,
benefits etc.]
2. Requirement Analysis: [requirement definition & specifications etc]
3. System Design: [layouts, models, DFD, ERD, Pseudo-code etc]
4. Implementation: [real code is written here]
5. Integration & Testing: [units/components are designed and tested, units
are combined into modules and tested]
6. Installation & Maintenance: [beta versions, production, upgradation and
extensions]
7. Evaluation: [surveys, feedback, statistics]
SDLC Models, University of Okara 3
Capability Maturity Model (CMM)
 A bench-mark for measuring the maturity of an
organization’s software process.
 A development model created after study of data
collected from organizations that contracted with
the U.S. Department of Defense, who funded the
research.
 CMM defines 5 levels of process maturity based on
certain Key Process Areas (KPA)
 The model's aim is to improve existing software-
development processes

SDLC Models, University of Okara 4


CMM Levels
Level 1 – Initial (~ 70%)
 Uncontrolled, undocumented and reactive manner by
users or events.
 Provides a chaotic or unstable environment for the
processes.
Level 2 – Repeatable (~ 15%)
 Some processes are repeatable, possibly with
consistent results.
Level 3 – Defined (< 10%)
 There are sets of defined and documented standard
processes established and subject to some degree of
improvement over time.
Level 4 – Managed (< 5%)
 Using process metrics, management can effectively
control development process.
Level 5 – Optimizing (< 1%)
 Focus is on continually improving process performance
through both incremental and innovative technological
changes/improvements.

SDLC Models, University of Okara 5


SDLC Models, University of Okara 6
SDLC Models, University of Okara 7
1- Waterfall Model

 Requirements – defines needed information, function, behavior,


performance and interfaces.
 Design – data structures, software architecture, interface
representations, algorithmic details.
 ImplementationSDLC – source code, database,
Models, University of Okara user documentation,
8 testing.
Waterfall Strengths
 Easy to understand, easy to use
 Provides structure to inexperienced staff
 Milestones are well understood
 Sets requirements stability
 Good for management control (plan, staff,
track)
 Works well when quality is more important
than cost or schedule

SDLC Models, University of Okara 9


Waterfall Deficiencies
 All requirements must be known upfront
 Deliverables created for each phase are considered
frozen – inhibits flexibility
 Can give a false impression of progress
 Does not reflect problem-solving nature of
software development – iterations of phases
 Integration is one big bang at the end
 Little opportunity for customer to preview the
system (until it may be too late)

SDLC Models, University of Okara 10


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.

SDLC Models, University of Okara 11


2- V-Shaped SDLC Model

 A variant of the Waterfall that emphasizes the verification and validation


of the product.
 Testing of the product is planned in parallel with a corresponding
phase of development

SDLC Models, University of Okara 12


V-Shaped Steps
 Project and Requirements Planning –  Production, operation and
allocate resources maintenance – provide for
enhancement and corrections
 Product Requirements and  System and acceptance testing –
Specification Analysis – complete check the entire software system in
specification of the software system its environment

 Architecture or High-Level Design –


defines how software functions fulfill  Integration and Testing – check that
the design modules interconnect correctly

 Detailed Design – develop algorithms  Unit testing – check that each


for each architectural component module acts as expected

• Coding – transform algorithms into software

SDLC Models, University of Okara 13


V-Shaped Strengths
 Emphasize planning for verification and
validation of the product in early stages of
product development
 Each deliverable must be testable
 Project management can track progress by
milestones
 Easy to use

SDLC Models, University of Okara 14


V-Shaped Weaknesses
 Does not easily handle concurrent events
 Does not handle iterations or phases
 Does not easily handle dynamic changes in
requirements
 Does not contain risk analysis activities

SDLC Models, University of Okara 15


When to use the V-Shaped Model
 Excellent choice for systems requiring high
reliability – hospital patient control
applications
 All requirements are known up-front
 When it can be modified to handle changing
requirements beyond analysis phase
 Solution and technology are known

SDLC Models, University of Okara 16


Evolutionary Prototyping Model
 Developers build a prototype during the requirements
phase, an incomplete versions of the software
program being developed = verification
 Prototype is evaluated by end users
 Users give corrective feedback
 Developers further refine the prototype
 When the user is satisfied, the prototype code is
brought up to the standards needed for a final product.
 Others are Throwaway prototyping [closed ended or rapid],
Incremental prototyping, Extreme prototyping

SDLC Models, University of Okara 17


Evolutionary Prototyping Steps
 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

SDLC Models, University of Okara 18


Evolutionary Prototyping Strengths
 Customers can “see” the system requirements
as they are being gathered
 Developers learn from customers
 A more accurate end product
 Unexpected requirements accommodated
 Allows for flexible design and development
 Steady, visible signs of progress produced
 Interaction with the prototype stimulates
awareness of additional needed functionality

SDLC Models, University of Okara 19


Evolutionary Prototyping Weaknesses
 Tendency to abandon structured program
development for “code-and-fix” development
 Bad reputation for “quick-and-dirty” methods
 Overall maintainability may be overlooked
 The customer may want the prototype
delivered.
 Process may continue forever (scope creep)

SDLC Models, University of Okara 20


When to use Evolutionary Prototyping
 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.

SDLC Models, University of Okara 21


Rapid Application Model (RAD)
 Requirements planning phase (a workshop utilizing structured
discussion of business problems)
 User description phase – automated tools capture information from
users
 Construction phase – productivity tools, such as code generators,
screen generators, etc. inside a time-box. (“Do until done”)
 Cutover phase -- installation of the system, user acceptance testing and
user training

SDLC Models, University of Okara 22


RAD Strengths
 Reduced cycle time and improved productivity with fewer people
means lower costs
 Time-box approach mitigates cost and schedule risk
 Customer involved throughout the complete cycle minimizes risk of
not achieving customer satisfaction and business needs
 Focus moves from documentation to code (WYSIWYG).
 Uses modeling concepts to capture information about business, data,
and processes.

RAD Weaknesses
 Accelerated development process must give quick responses to the
user
 Risk of never achieving closure
 Hard to use with legacy systems
 Requires a system that can be modularized
 Developers and customers must be committed to rapid-fire activities
in an abbreviated time frame.

SDLC Models, University of Okara 23


When to use RAD
 Reasonably well-known requirements
 User involved throughout the life cycle
 Project can be time-boxed
 Functionality delivered in increments
 High performance not required
 Low technical risks
 System can be modularized

SDLC Models, University of Okara 24


Incremental SDLC 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 partial release of the
system adds function to the
previous release, until all designed
functionality has been
implemented.

SDLC Models, University of Okara 25


Incremental Model Strengths
 Develop high-risk or major functions first
 Each release delivers an operational product
 Customer can respond to each build
 Uses “divide and conquer” breakdown of tasks
 Lowers initial delivery cost
 Initial product delivery is faster
 Customers get important functionality early
 Risk of changing requirements is reduced

SDLC Models, University of Okara 26


Incremental Model Weaknesses
 Requires good planning and design
 Requires early definition of a complete and fully functional
system to allow for the definition of increments
 Well-defined module interfaces are required (some will be
developed long before others)
 Total cost of the complete system is not lower

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
SDLC Models, University of Okara 27
Spiral SDLC Model

 Adds risk analysis, and 4gl RAD prototyping to the waterfall


model
 Each cycle involves the same sequence of steps as the
waterfall process model
SDLC Models, University of Okara 28
Spiral Model
Determine objectives, alternatives and constraints

 Objectives: functionality, performance, hardware/software


interface, critical success factors, etc.
 Alternatives: build, reuse, buy, sub-contract, etc.
 Constraints: cost, schedule, interface, etc.

Spiral Model
Evaluate alternatives, identify and resolve risks
 Study alternatives relative to objectives and constraints
 Identify risks (lack of experience, new technology, tight
schedules, poor process, etc.
 Resolve risks (evaluate if money could be lost by
continuing system development
SDLC Models, University of Okara 29
Spiral Model Spiral Model
Develop next-level product Plan next phase
 Typical activities:  Typical activities
◦ Create a design ◦ Develop project plan
◦ Review design ◦ Develop configuration
management plan
◦ Develop code
◦ Develop a test plan
◦ Inspect code ◦ Develop an installation plan
◦ Test product

SDLC Models, University of Okara 30


Spiral Model Strengths
 Provides early indication of risks, without much cost
 Users see the system early because of rapid prototyping tools
 Critical high-risk functions are developed first
 The design does not have to be perfect
 Users can be closely tied to all lifecycle steps
 Early and frequent feedback from users
 Cumulative costs assessed frequently

Spiral Model Weaknesses


 Time spent for evaluating risks too large for small or low-risk
projects
 Time spent planning, resetting objectives, doing risk analysis and
prototyping may be excessive
 The model is complex
 Risk assessment expertise is required
 Spiral may continue indefinitely
 Developers must be reassigned during non-development phase
activities
 May be hard to define objective, verifiable milestones that indicate
readiness to proceed through the next iteration
SDLC Models, University of Okara 31
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)

SDLC Models, University of Okara 32


Agile SDLC’s
 Agile software development" refers to a group of software development
methodologies based on iterative development, where requirements and
solutions evolve via collaboration between self-organizing cross-
functional teams.
 Speed up or bypass one or more life cycle phases
 Usually less formal and reduced scope
 Used for time-critical applications
 Used in organizations that employ disciplined
methods

SDLC Models, University of Okara 33


Some Agile Methods
 Adaptive Software Development (ASD)
 Feature Driven Development (FDD)
 Crystal Clear
 Dynamic Software Development Method
(DSDM)
 Rapid Application Development (RAD)
 Scrum
 Extreme Programming (XP)
 Rational Unify Process (RUP)

SDLC Models, University of Okara 34


Extreme Programming - XP
For small-to-medium-sized
teams developing software
with vague or rapidly
changing requirements
Coding is the key activity
throughout a software
project
 Communication among
teammates is done with
code
 Life cycle and behavior of
complex objects defined in
test cases – again in code

SDLC Models, University of Okara 35


XP Practices (1-6)
1. Planning game – determine scope of the next release by
combining business priorities and technical estimates
2. Small releases – put a simple system into production, then
release new versions in very short cycle
3. Metaphor – all development is guided by a simple shared
story of how the whole system works
4. Simple design – system is designed as simply as possible
(extra complexity removed as soon as found)
5. Testing – programmers continuously write unit tests;
customers write tests for features
6. Refactoring – programmers continuously restructure the
system without changing its behavior to remove duplication
and simplify

SDLC Models, University of Okara 36


XP Practices (7 – 12)
7. Pair-programming -- all production code is written with
two programmers at one machine
8. Collective ownership – anyone can change any code
anywhere in the system at any time.
9. Continuous integration – integrate and build the system
many times a day – every time a task is completed.
10. 40-hour week – work no more than 40 hours a week as a
rule
11. On-site customer – a user is on the team and available
full-time to answer questions
12. Coding standards – programmers write all code in
accordance with rules emphasizing communication through
the code

SDLC Models, University of Okara 37


XP is “extreme” because
Commonsense practices taken to extreme levels
 If code reviews are good, review code all the time (pair programming)
 If testing is good, everybody will test all the time
 If simplicity is good, keep the system in the simplest design that supports its
current functionality. (simplest thing that works)
 If design is good, everybody will design daily (refactoring)
 If architecture is important, everybody will work at defining and refining the
architecture (metaphor)
 If integration testing is important, build and integrate test several times a
day (continuous integration)
 If short iterations are good, make iterations really, really short (hours
rather than weeks)
 References:
 http://www.extremeprogramming.org/
 http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap
 http://www.xprogramming.com/

SDLC Models, University of Okara 38


Feature Driven Design (FDD)
Five FDD process activities:
1. Develop an overall model – Produce class and sequence diagrams
from chief architect meeting with domain experts and developers.
2. Build a features list – Identify all the features that support
requirements. The features are functionally decomposed into
Business Activities steps within Subject Areas.
Features are functions that can be developed in two weeks and expressed in client
terms with the template: <action> <result> <object>
i.e. Calculate the total of a sale
3. Plan by feature -- the development staff plans the development
sequence of features
4. Design by feature -- the team produces sequence diagrams for the
selected features
5. Build by feature – the team writes and tests the code

http://www.nebulon.com/articles/index.html

SDLC Models, University of Okara 39


Dynamic Systems Development Method (DSDM)

 Applies a framework for RAD and short time frames


 Paradigm is the 80/20 rule
– majority of the requirements can be delivered in a
relatively short amount of time.

SDLC Models, University of Okara 40


DSDM Principles
1. Active user involvement imperative (Ambassador
users)
2. DSDM teams empowered to make decisions
3. Focus on frequent product delivery
4. Product acceptance is fitness for business purpose
5. Iterative and incremental development - to converge
on a solution
6. Requirements initially agreed at a high level
7. All changes made during development are reversible
8. Testing is integrated throughout the life cycle
9. Collaborative and co-operative approach among all
stakeholders essential

SDLC Models, University of Okara 41


DSDM Lifecycle
 Feasibility study
 Business study – prioritized requirements
 Functional model iteration
◦ risk analysis
◦ Time-box plan
 Design and build iteration
 Implementation

SDLC Models, University of Okara 42


Adaptive SDLC
Combines RAD with software engineering
best practices
 Project initiation
 Adaptive cycle planning
 Concurrent component engineering
 Quality review
 Final QA and release

SDLC Models, University of Okara 43


Adaptive Steps
1. Project initialization – determine start of project
2. Determine the project time-box
3. Determine the number of cycles and the time for
each cycle
4. Write an objective statement for each cycle
5. Assign primary components to each cycle
6. Develop a project task list
7. Review the success of a cycle
8. Plan the next cycle

SDLC Models, University of Okara 44


SDLC Models - Summary
 Any one model does not fit all projects
 If there is nothing that fits a particular project,
pick a model that comes close and modify it
for your needs.
 Project should consider risk but complete spiral
too much – start with spiral & pare it done
 Project delivered in increments but there are
serious reliability issues – combine incremental
model with the V-shaped model
 Each team must pick or customize a SDLC
model to fit its project

SDLC Models, University of Okara 45


Quality Assurance Plan
 The plan for quality assurance activities should be in
writing
 Decide if a separate group should perform the quality
assurance activities
 Some elements that should be considered by the plan
are: defect tracking, unit testing, source-code tracking,
technical reviews, integration testing and system testing.

SDLC Models, University of Okara 46


Quality Assurance Plan
 Defect tracing – keeps track of each defect found, its
source, when it was detected, when it was resolved,
how it was resolved, etc
 Unit testing – each individual module is tested
 Source code tracing – step through source code line by
line
 Technical reviews – completed work is reviewed by
peers
 Integration testing -- exercise new code in combination
with code that already has been integrated
 System testing – execution of the software for the
purpose of finding defects.

SDLC Models, University of Okara 47


Thanks

SDLC Models, University of Okara 48

You might also like