Learning Objectives
SoftwareProcess Development Cycle
PDCA Cycle
Phases in SDLC
SDLC Models
1.Waterfall Model
2. Incremental Model
3.Spiral Model
4. V Model
5. Agile Model
3.
Software Process
Process –Projects – Products
A software process specifies a method of
developing software.
A software project on the other hand, is software
application developed to fulfill single client need.
A Software product is the software application
developed to fulfill market need
Software Development Life
Cycle(SDLC)
Software Development Life Cycle(SDLC) is a
process used by software industry to design,
develop and test high quality software's.
The SDLC aims to produce a high quality software
that meets or exceeds customer expectations,
reaches completion within times and cost estimates.
The SDLC consists of a detailed plan describing
how to develop, maintain, replace and alter or
enhance specific software.
6.
Software Development Life
Cycle(SDLC)
SDLC is a process which includes set of phases
to develop a software systematically.
Phases of SDLC are:
Requirement
Gathering
& Analysis
Design Development
Maintenance
Deployment
Testing
7.
1.Requirement
Gathering &
Analysis
• FeasibilityStudy
• Requirements
elicitation,
analysis
• Requirement
Validation
• Documents
• BRD -Business
requirement
Document
• FSD -Functional
requirement
Document
• Baseline
SRS(System
requirement
specification)
• User:
• Business Analyst
and Subject
Matter
Expert
2.Design
• High level
Design
• Low level
Design
• Documents
• Architectural
Plan
• Database design
• Screen design
• Module design
• Program
Specification
• User:
• Technical
Architect, UI
designer Senior
Developer
3.Development
• Developing
Program
Coding
• Interlinking of
Modules
• Debugging
• Unit level
testing
• Code Merging
• Documents
• Working Code
• Unit level
Testing Report
• Module
Interlinking
Testing Report
• User:
• Project
Manager,
Technical Lead,
Tester,
Developer,Test
Lead.
4.Testing
• Checking of
Implemented
functionality
with respect to
requirements
• Tracking the
Defect till
Closure.
• Documents
• Test Scenarios
• Test Cases
• Test Scripts
• Defect report
• User:
• Testers ,Project
Managers ,Tech
Lead,
Developers,
Test Lead,
Business analyst
5.Deployment
• Installation of
code
• Making
Programs and
other
component
available for
customer use
• Creation of
user manual
• User Training
• Documents
• Release Notes
• User Manual
• User:
• Project
Manager,
Technical leads,
Test
Leads ,Testers
and Developers
6.Maintenance
• Preventive
• Corrective
• Adaptive
• perfective
• Documents
• Change
Requests
• Code Changes
• Technical
Specific
Documents
• User:
• Project
Manager,
Technical leads,
Test
Leads ,Testers ,
Developers and
Business Analyst
8.
SDLC Models
Thedevelopment process adopted for a project will
depend on the project aims and goals.
There are numerous development life cycles that
have been developed in order to achieve different
required objectives.
SDLC Models
1.Sequential development
2.Incremental/Iterative development
Waterfall Model
Waterfallmodel is the earliest SDLC approach that
was used for software development .
Linear and Sequential Model.
In Waterfall model once each phase of
development is completed, the development
proceeds to the next phase.
In waterfall model ,phases do not overlap.
11.
Waterfall Strengths
Easyto understand, simple to use
Phases are processed and completed one at a time
Sets requirements stability
Good for management control (plan, staff, track)
Works well for smaller projects where requirements
are very well understand.
12.
Waterfall Weaknesses
Adjustingscope during the life cycle can kill the
project.
Deliverables created for each phase are considered
frozen.
High amount of risk and uncertainty.
Poor model for complex projects.
Poor model for long and ongoing projects.
Incremental Model
Inincremental model the whole requirement is
divided into various builds.
Cycles are divided up into smaller, more easily
managed modules.
Each module passes through the requirements,
design, implementation and testing phases.
Each subsequent release of the module adds
function to the previous release.
The process continues till the complete system is
achieved.
15.
Advantages of Incremental
Model
Generates working software quickly and early
during the software life cycle.
This model is more flexible – less costly to change
scope and requirements.
It is easier to test and debug during a smaller
iteration.
In this model customer can respond to each built.
Lowers initial delivery cost.
Easier to manage risk because risky pieces are
identified and handled during it’d iteration.
16.
Weakness of IncrementalModel
Needs good planning and design.
Needs a clear and complete definition of the
whole system before it can be broken down and
built incrementally.
Total cost is higher than waterfall.
Spiral SDLC Model
In a Spiral model the software is developed in a
series of incremental releases.
There is a Focus on Risk analysis
Combines the features of the prototyping model
and the waterfall model.
The fact that the process needs to be iterated more
than once demands more time and is somehow
expensive task.
This Model is used in large, expensive and
complicated projects.
19.
Spiral Model Strengths
High amount of risk analysis.
Good for large and mission critical projects.
Software is produced early in the SDLC.
20.
Spiral Model Weaknesses
Can be costly model to use.
Risk analysis requires highly specific expertise.
Project success is highly dependent on the risk
analysis phase.
21.
V-Model evolvedfrom waterfall Model.
Each phase must be completed before the next
phase begins.
Instead of moving down in a linear way, the
process steps are bent upwards after the coding
phase, to form the typical V shape.
Testing is emphasized in this model more than in
the waterfall model.
It is a structured approach to testing , brings high
quality into the development of our products.
‘V’ Model
V-Shaped Strengths
Workswell for small projects where requirements
are easily understood.
Each phase has specific deliverables.
Simple and Easy to use.
24.
V-Model Weaknesses
Veryrigid like the waterfall model.
Software is developed during the developing
phase, so no early prototypes of the software are
produced.
Does not easily handle dynamic changes in
requirements.
Does not contain risk analysis activities
25.
Faults areprevented and it stops fault
multiplication.
• Avoids the downward flow of defect.
Lower defect Resolution cost due to earlier
detection.
Improved quality and reliability.
Reduction in the amount of Re-work.
Validation at each level of stage containment.
Allows testers to be active in the project early in
the project’s lifecycle & develop critical knowledge
about the system.
Benefits of V-Model
26.
Agile Model
Agiledevelopment model is also a type of Incremental
model.
Agile is an iterative approach to project management and
software development that helps teams deliver value to
their customers faster
Software is developed in incremental, rapid cycles.
This results in small incremental releases with each release
building on previous functionality.
Each release is thoroughly tested to ensure software quality
is maintained.
It is used for time critical applications.
27.
Agile Manifesto
Individuals& interaction over processes & tools
Working software over comprehensive documents
Customer collaboration over contract negotiation
Responding to change over following a plan
Traditional vs AgileApproach
Agile Model Waterfall Model
•Agile methodology definition:Agile
methodologies propose incremental and iterative
approach to software design
•Waterfall Model: Development of the software
flows sequentially from start point to end point.
•The Agile process in software engineering is
broken into individual models that designers
work on
•The design process is not broken into an
individual models
•The customer has early and frequent
opportunities to look at the product and make
decision and changes to the project
•The customer can only see the product at the
end of the project
•Agile model is considered unstructured
compared to the waterfall model
•Waterfall model are more secure because they
are so plan oriented
•Small projects can be implemented very quickly.
For large projects, it is difficult to estimate the
development time.
•All sorts of project can be estimated and
completed.
•Error can be fixed in the middle of the project.
•Only at the end, the whole product is tested. If
the requirement error is found or any changes
must be made, the project has to start from the
beginning
•At the end of every sprint, user acceptance is
performed
•User acceptance is performed at the end of the
project.
30.
Scrum and Sprint
It is framework through which we build software product
by following Agile principles.
Scrum teams use inspection throughout an agile project to
ensure that the team meets the goals of each part of the
process.
Each sprint is divided into its own list of requirements.
Within each sprint, the development team builds and tests a
functional part of the product until the product owner
accepts it and the functionality becomes a potentially
shippable product.
Scrum teams deliver product features in increments at the
end of each sprint.
A product release occurs at the end of a sprint or after
several sprints.
Agile – Metrics
Agilemetrics provide insight into productivity through the different stages of a software
development lifecycle.
This helps to assess the quality of a product and track team performance
What is a burndown chart?
A burndown chart is a visual representation of the remaining work versus the time required to
complete it.
By estimating the time it takes to complete tasks, issues, and testing, you can determine the
project completion date.
How to create a burndown chart
Step 1. Estimate effort
Step 2. Track daily progress
Step 3. Compute the actual effort
Step 4. Obtain the final dataset
Step 5. Plot the burndown
Burndown chart vs. burnup chart
A burnup chart is used to track how much work has been completed.
Both a burndown chart and a burnup chart keep you informed about different moving parts
within a project, which is why they are frequently used together.
33.
Strength of AgileModel
High flexibility of the project.
High customer satisfaction over the development process,
Since Agile projects are closely coordinated with the
customer
Continuous quality assurance, attention to details as quality
of the product should be ensured by the testing team from
the early stages of Agile development.
34.
Weakness of AgileModel
Problems with workflow coordination, There is lack of
emphasis on necessary designing and documentation.
The project can easily get taken off track if the customer
representative is not clear what final outcome that they
want.
Difficult planning at early stages.
Professional teams are vital, Agile projects
require teams to make serious decisions constantly so
only experienced software developers, testers, and
managers should be working on the project.
Lack of long-term planning.
35.
Role of Testerin Agile Team
Understanding, implementing, and updating the test strategy
Measuring and reporting test coverage across all applicable
coverage dimensions , Ensuring proper use of testing tools .
Configuring, using, and managing test environments and
test data , Reporting defects and working with the team to
resolve them.
Ensuring the appropriate testing tasks are scheduled during
release and iteration planning .
Actively collaborating with developers and business
stakeholders to clarify requirements, especially in terms of
testability, consistency, and completeness .
36.
Interview Questions
Whatare different phases in SDLC?
What are the strength of waterfall model?
When to use spiral model?
What are advantages of Incremental Model?
Explain V Model
Explain benefits of V model
What is the weakness of Agile Model?
What is Scrum Methodology used in Agile Software
Development ?