0% found this document useful (0 votes)
54 views51 pages

Software Process Models-Shaukat Wasi

This document discusses various software process models including: 1. Ad hoc model which involves writing code and fixing errors without planning. This leads to difficulties managing projects. 2. Structured process models were developed to address issues like exceeding schedules and costs in the ad hoc model. They aim to standardize, predict, and improve productivity and quality. 3. Common structured models include waterfall, iterative/incremental, evolutionary (prototyping, spiral), unified process and agile (scrum, kanban, extreme programming) models. Each has strengths for certain project types but also limitations. Choosing the right model depends on factors like requirements, risks, team experience and project priorities.

Uploaded by

Ahmed Raza
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)
54 views51 pages

Software Process Models-Shaukat Wasi

This document discusses various software process models including: 1. Ad hoc model which involves writing code and fixing errors without planning. This leads to difficulties managing projects. 2. Structured process models were developed to address issues like exceeding schedules and costs in the ad hoc model. They aim to standardize, predict, and improve productivity and quality. 3. Common structured models include waterfall, iterative/incremental, evolutionary (prototyping, spiral), unified process and agile (scrum, kanban, extreme programming) models. Each has strengths for certain project types but also limitations. Choosing the right model depends on factors like requirements, risks, team experience and project priorities.

Uploaded by

Ahmed Raza
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/ 51

Software Process Models

Spring 2020
Shaukat Wasi
Level 1 – Ad Hoc
Code & Fix

• The earliest approach


• Write code
• Fix it to eliminate any errors that have been
detected, to enhance existing functionality, or to
add new features
• Source of difficulties and
deficiencies
– impossible to predict
– impossible to manage
Models are needed

• Symptoms of inadequacy: the software


crisis
– scheduled time and cost exceeded
– user expectations not met
– poor quality
• The size and economic value of software
applications required appropriate "process
models"
Process model goals
(B. Boehm 1988)
“Determine the order of stages involved in
software development and evolution, and to
establish the transition criteria for progressing
from one stage to the next.
….
Thus a process model addresses the following
software project questions:
– What shall we do next?
– How long shall we continue to do it?"
Software Process Model

Attempt to organize the software life cycle by


• defining activities involved in software production
• order of activities and their relationships

Goals of a software process


– standardization, predictability, productivity, high
product quality, ability to plan time and budget
requirements
Software Process model with Umbrella
Activities
Choosing a Software Process Model
Process as a "black box"

Informal
Requirements
P
r
o Product
c
e
s
s
Process as a "white box"

Informal
Requirements
P
r
o Product
c
e
s
s

feedback
Waterfall Model
Waterfall model

• Invented in the late 1950s for large air defense


systems, popularized in the 1970s
• They organize activities in a sequential flow
• Exist in many variants, all sharing sequential
flow style
Critical evaluation of the
waterfall model
+ software process subject to discipline,
planning, and management
+ postpone implementation to after
understanding objectives
– linear, rigid, monolithic
– no feedback
– no parallelism
– a single delivery date
Problems with waterfall

• Estimates made when limited knowledge


available
• Difficult to gather all requirements once and
for all
– users may not know what they want
– requirements cannot be frozen
Best Suited for:

 Mission Critical Projects


 No choice for errors

 Well defined Requirements

 NOT Time critical


V Model
Waterfall model variation – V Model
V and V Combined
 Verification 
 In the concept of verification in the V-Model, static analysis technique is carried
out without executing the code. This evaluation procedure is carried out at the
time of development to check whether specific requirements will meet or not.
 Validation
 This concept of V-Model comprises of dynamic analysis practice (both functional as
well as non-functional), and testing is done by code execution. The validation of a
product is done once the development is complete for determining if the software
meets up the customer hope needs.
 So both verification and validation are combined and work in parallel to make
the V-Model fully functional.
Incremental Model
Increment?

• Increment refers to the quantifiable outcome


of each iteration
• Increment has the obvious implication that
there should be more of something at the end of
an iteration than there was at the start.
• Incremental development is a staging and
scheduling strategy ‘’in which the various parts of
the system are developed at different times or
rates, and integrated as they are completed.’’
Iteration?

• Iteration refers to the cyclic nature of a


process in which activities are repeated in a
structured manner.
• Iterative development is a rework
scheduling strategy ‘’in which time is set
aside to revise and improve parts of the
system.’’
Iterative and incremental
In Code:
Product vs Process:
• Incremental fundamentally means
while ( project.isRunning() ) {
add onto. Incremental development
project.bugsFixed++;
helps you improve your process. project.featuresComplete++;
• Iterative fundamentally means }
re-do. Iterative development
helps you improve your product.
Iterative VS incremental
Incremental development

• Rather than deliver the system as a single


delivery, the development and delivery is broken
down into increments with each increment
delivering part of the required functionality
• User requirements are prioritised and the highest
priority requirements are included in early
increments
• Once the development of an increment is started,
the requirements are frozen though
requirements for later increments can continue
to evolve
Evolutionary Models
Evolutionary Models

 Iterative + Incremental
 Usually a set of core product or system requirements is
well understood, but the details and extension have yet to
be defined.
 It is iterative that enables you to develop increasingly
more complete version of the software i.e. evolution of
software.
 Two Types: Prototyping and Spiral
Spiral
Model
Spiral Model
 Iterative (multiple passes over the circuits) + Incremental
(Each circuit adds next level to development) + Risk Driven
 Based on Water fall model (Same steps in sequence)
 The first circuit in the clockwise direction might result in
the product specification; subsequent passes
 around the spiral might be used to develop a prototype
and then progressively more sophisticated versions
 ofthe software. Each pass results in adjustments to the
project plan. Cost and schedule are adjusted based
 on feedback. Also, the number of iterations will be
adjusted by project manager.
3 Concerns on Evolutionary Processes

1. Planning is at Risk in prototyping model due to uncertain


no: of cycles required to reach the final product.
2. Development speed is some what slow as the iterations
need time to cover the improvements. Hence being too
fast will bring the process to chaos and being too slow will
effect the productivity.
3. High Quality VS Timely delivery tradeoff. Iterations do
improve but to what extent iterations are to be added is a
question.
Unified Process Modeling (UPM)
Unified Process Model (UPM)

 Integrating two seemingly contradicting insights:


 Definitive activities and deliverables as in the Waterfall Model.
 Iterative and incremental processes.
 A project is split into several phases:
 Each phase is split into several iterations. \
 Each iteration consists of the traditional process activities, known
as workflow.
 Each workflow places different emphasis on the activities
depending on the current iteration.
AGILE Process Models
Remember waterfall?
Work together!
Agile Manifesto

“We are uncovering better ways of developing software by


doing it and helping others do it.

Through this work we have come to value:


•Individuals and interactions over processes and tools
•Working software over comprehensive documentation
•Customer collaboration over contract negotiation
•Responding to change over following a plan

That is, while there is value in the items on the right, we


value the items on the left more.”
Kent Beck et al
Scrum

• Focus on software development without


defining phases and workproducts, only focus
on increments through sprints
• “Getting things done”
• Roles:
– Scrum Master
– Product Owner
– Team member
• Especially useful for experienced developers
Scrum
Scrum
Kanban
Similar to Scrum but Priority Based instead of Time Based
SCRUM VS KANBAN
https://www.developmentthatpays.com/files/DevelopmentThatPays-ScrumVsKa
nban-CheatSheet-1_6.pdf
Extreme Programming
Extreme Programming – Top Principles
XP vs SCRUM
https://www.visual-paradigm.com/scrum/extreme-programming-vs-scrum/
Selection criteria for lifecycle
models
Conclusion
When to
embrace Agile
Methodologies
Choosing a Software Process Model

You might also like