SlideShare a Scribd company logo
SOFTWARE PROCESS
MODELS
PROCESS
CHARACTERISTICS OF SOFTWARE PROCESS
PROCESS MODELS
PROTOTYPING
“You’ve got to be very careful if you don’t
know where you’re going, because you might
not get there.” - Berra
CMM (Capability Maturity Model)
 A bench-mark for measuring the maturity of an
organization’s software process
 CMM defines 5 levels of process maturity
based on certain Key Process Areas (KPA)
 Level 5 – Optimizing (< 1%)
◦ -- process change management
◦ -- technology change management
◦ -- defect prevention
 Level 4 – Managed (< 5%)
◦ -- software quality management
◦ -- quantitative process management
Level 3 – Defined (< 10%)
-- peer reviews
-- intergroup coordination
-- software product engineering
-- integrated software management
-- training program
-- organization process definition
-- organization process focus
Level 2 – Repeatable (~ 15%)
-- software configuration management
-- software quality assurance
-- software project tracking and oversight
-- software project planning
-- requirements management
Level 1 – Initial (~ 70%)
Sofware Process 5
The software Development
Problem
Sofware Process 6
Project and Process
 A software project is one instance of the
development problem
 Development process takes the project
from user and develops software needed by
user
 There are other goals: cost schedule and
quality, besides delivering software
Sofware Process 7
Software Process…
 Process: A sequence of steps performed to
achieve some goal
 Software Process: The sequence of steps
performed to produce software with high
quality, within budget and schedule
 Many types of activities performed by diff
people in a software project
 Better to view software process as comprising
of many component processes
Software Process
 A framework for the activities, actions, and tasks that
are required to build high-quality software.
 A process: a series of steps involving activities,
constraints, and resources that produce an intended
output of some kind
 Software process is a method of developing a software
 Process is distinct from product – products are outcomes
of executing a process on a project
 Software Engineering focuses on process
 Premise: Proper processes will help achieve project
objectives of high QP
Sofware Process 9
Component Software
Processes
 Two major processes
◦ Development – focuses on development and
quality steps needed to engineer the software
◦ Project management – focuses on planning and
controlling the development process
 Development process is the heart of
software process; other processes revolve
around it
 These are executed by different people
◦ developers execute engg. Process
◦ project manager executes the mgmt proces
Sofware Process 10
Component Processes…
 Other processes
◦ Configuration management process:
manages the evolution of artifacts
◦ Change management process: how
changes are incorporated
◦ Process management process:
management of processes themselves
◦ Inspection process: How inspections are
conducted on artifacts
Sofware Process 11
Process Specification
 Process is generally a set of phases
 Each phase performs a well defined task
and generally produces an output
 Intermediate outputs – work products
 At top level, typically few phases in a
process
 How to perform a particular phase –
Sofware Process 12
ETVX Specification
 ETVX approach to specify a step
◦ Entry criteria: what conditions must be satisfied for initiating
this phase
◦ Task: what is to be done in this phase
◦ Verification: the checks done on the outputs of this phase
◦ eXit criteria: when can this phase be considered done
successfully
 A phase also produces info for mgmt
Sofware Process 13
ETVX approach
Characteristics of Software
Process
 Predictability
 Support Testability & Maintainability
 Support Change
 Early defect removal
 Process improvement and feedback
1) Predictability
 Fundamental property of any process
 Predictability determines how accurately the outcome of
process can be predicted before project is completed
 It is achieved from past experiences and failures from
the similar projects
 It increases Q & P. Decreases C & T
 Predictable process is under statistical control
 Predictable property is within the bound around the
expected value of property of interest
2) Support Change
 Changes due to:
◦ Requirements change
◦ Organization and business change –
leads to software supports has to change
 Changes during development also
◦ Customer needs change
◦ Long duration projects needs to be
changed
 Process should support healthy
changes
3) Support testability and Maintainability
 Maintenance cost > Development
 To reduce overall cost, development should reduce maintenance
cost
Process includes Effort
R 10%
D 10%
C 30%
T 50%
 How programmers spend their time?
Writing Programs 13%
Reading Programs and Manuals 16%
Job Communication 32%
Others 39%
 Testing takes more resources during development
 If testing as side activity or underestimating the testing efforts -
>unreliable software
4) Early Defect Removal
 Errors occur during programming
 Correction & Detection -> Hardest activity
 Errors occurs at any stage during dev.
Error occurrence distributions:
R 20%
D 30%
C 50%
 Cost of correcting errors of different phases -> not the same, depends
on when the error is detected and corrected
 Greater the delay in error detection -> more expensive to correct
 Quality control in each phase -> identify, detect, prevent and remove
defects
5) Process Improvement and Feedback
 Fundamental goal -> high Q product with low C
 Software process be a closed-loop process (feedback
control system)
 Process improvement based on previous experiences,
feedback from early parts(last iterations) used to
improve execution of rest of the part(later iterations)
Sofware Process 20
Development Process and Process
Models
Sofware Process 21
Development Process &
Process Model
 A set of phases and each phase being a sequence of steps
 Sequence of steps for a phase - methodologies for that phase
 Why have phases?
◦ To employ divide and conquer
◦ each phase handles a different part of the problem
◦ helps in continuous validation
 A process model provides generic structure of the process
that can be followed by some projects to achieve their goals
Process Models - SDLC
 Major activities in SDLC (Software
Development Life Cycle)
◦ Planning
◦ Requirements Analysis
◦ Design
◦ Coding
◦ Testing
◦ Implementation
◦ Maintenance
SDLC PHASE ACTIVITIES
1. Planning •Define the system to be developed
•Set the project scope
•Develop the project plan
2. Requirements
Analysis
•Gather business requirements and documented in SRS
3. Design •Design the technical architecture based on SRS
•Design overall system structure
4. Development •Build technical architecture, databases and programs
• Build programs in small units and integrated in next phase
5. Testing •Write test conditions
•Perform testing
6. Implementation/
Deployment
•Write user documentation
•Provide training
•Product is deployed in customer environment or released to
market
7. Maintenance •Build a help desk
• Support Corrections, improvements and adaptations
•Support system changes
Sofware Process 24
Waterfall Model
 One of the first process development models
proposed
 Linear sequence of stages/phases
 Requirements – HLD – DD – Code – Test – Deploy
 A phase starts only when the previous has
completed; no feedback
 Works for well understood problems with minimal
or no changes in the requirements
 Each major phase is marked by milestones and
deliverables (artifacts)
Sofware Process 25
chapter2-softwareprocessmodels-190805164811.pdf
Sofware Process 27
Waterfall…
 Linear ordering implies each phase should have
some output
 The output must be validated/certified
 Outputs of earlier phases: work products
 Common outputs of a waterfall: SRS, project
plan, design docs, test plan and reports, final
code, supporting docs
Sofware Process 28
Waterfall Advantages
 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
Sofware Process 29
Waterfall disadvantages
 All requirements must be known upfront
 Follows the “big bang” approach – all or nothing delivery; too
risky
 Very document oriented, requiring docs at the end of each
phase
 Views software development as manufacturing process rather
than as creative process
 No iterative activities and Change Management that lead to
creating a final product
 Long wait before a final product
Sofware Process 30
Waterfall Usage
 Has been used widely
 Well suited for projects where requirements
can be understood easily and technology
decisions are easy
 For familiar type of projects with well known
requirements
V Model
 A variation of the waterfall model
 Uses unit testing to verify procedural design
 Uses integration testing to verify architectural
(system) design
 Uses acceptance testing to validate the
requirements
 If problems are found during verification and
validation, the left side of the V can be re-executed
before testing on the right side is re-enacted
chapter2-softwareprocessmodels-190805164811.pdf
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
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
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
Sofware Process 36
Prototyping
 Prototyping addresses the requirement
specification limitation of waterfall & V-model
 Instead of freezing requirements only by
discussions, a prototype is built to understand the
requirements
 Helps lessen the requirements risk
 Focus is on quickly developing the model not on
good programming practices
 After preliminary requirements gathering, it
visually show the users what their requirements may
look like when implemented
Sofware Process 37
Prototyping
Prototyping: Basic Steps
 Identify basic requirements
 Including input and output info
 Details (e.g., security) generally ignored
 Develop initial prototype
 UI first
 Review
 Customers/end –users review and give feedback
 Revise and enhance the prototype & specs
Prototyping
 Allows repeated investigation of the
requirements or design
 Reduces risk and uncertainty in the
development
Sofware Process 40
Prototyping
 Cost can be kept low
◦ Build only features needs clarification
◦ “quick and dirty” – quality not important
◦ Things like exception handling, recovery,
standards are omitted
◦ Cost can be a few % of the total
◦ Learning in prototype building will help in building,
the improved requirements
Sofware Process 41
Prototyping
 Advantages:
◦ Req. will be more stable,
◦ Req. frozen later,
◦ Experience helps in the main development
 Disadvantages:
◦ Potential hit on cost and schedule
 Applicability:
◦ When req. are hard to elicit and confidence in
reqs. is low;
◦ Reqs. are not well understood
Throwaway Prototyping
 Write preliminary requirements
 Design the prototype
 User experiences/uses the prototype,
 Specifies new requirements
 Repeat if necessary
 Write the final requirements
 Develop the real products
Evolutionary Prototyping
Model
 Goal is to build a very robust prototype in a
structured manner and constantly refine it
 Developers build a prototype during the
requirements phase
 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.
Incremental prototyping
 Final product built as separate prototypes
 At the end, the prototypes are merged into a final design
 Often used for web applications
 Development broken down into 3 phases, each based on the
preceding 1
1. Static prototype consisting of HTML pages
2. Screen are programmed and fully functional using a
simulated services layer
3. Services are implemented
Phased Development: Increments and
Iterations
 Incremental development: starts with small functional
subsystem and adds functionality with each new
release
 Iterative development: starts with full system, then
changes functionality of each subsystem with each new
release
Increments and Iterations Model
 System delivered in pieces
◦ enables customers to have some functionality while the rest is being
developed
 Allows two systems functioning in parallel
◦ the production system (release n): currently being used
◦ the development system (release n+1): the next version
Sofware Process 47
Iterative Development
 Solves “all or nothing” drawback of the waterfall
model
 Combines benefit of prototyping and waterfall
 Develop and deliver software in increments
 Each increment is complete in itself
 Can be viewed as a sequence of waterfalls
 Feedback from one iteration is used in the future
iterations
Sofware Process 48
Iterative Enhancement
Sofware Process 49
Iterative Development
 Products almost always follow it
 Used commonly in customized
development:
◦ Businesses want quick response for s/w
◦ Cannot afford the risk of all-or-nothing
 Newer approaches like XP, Agile,… all rely
on iterative development
Sofware Process 50
Iterative Development
 Benefits: Get-as-you-pay, feedback for
improvement
 Drawbacks: Architecture/design may not
be optimal, rework may increase, total cost
may be more
 Applicability: where response time is
important, all req. not known
Sofware Process 51
Another form of Iteration…
•The first iteration
does the
requirements and
architecture in the
waterfall way
•The development
and delivery is done
incrementally in
iterations
Spiral Model
 Suggested by Boehm (1988)
 Combines development activities with risk management
to minimize and control risks
 The model is presented as a spiral in which each
iteration is represented by a circuit around four major
activities
◦ Plan
◦ Determine goals, alternatives and constraints
◦ Evaluate alternatives and risks
◦ Develop and test
chapter2-softwareprocessmodels-190805164811.pdf
 Spiral Quadrant: 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 Quadrant: 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)
 Spiral Quadrant: Develop next-level product
◦ Create a design
◦ Review design
◦ Develop code
◦ Inspect code
◦ Test product
 Spiral Quadrant: Plan next phase
◦ Develop project plan
◦ Develop configuration management plan
◦ Develop a test plan
◦ Develop an installation plan
Spiral Model Strengths
 Changing requirements can be accommodated.
 Allows extensive use of prototypes.
 Requirements can be captured more accurately.
 Users see the system early.
 Development can be divided into smaller parts and
the risky parts can be developed earlier which helps
in better risk management.
Spiral Model Weaknesses
 The model is complex
 Risk assessment expertise is required
 Spiral may continue indefinitely
 Developers must be reassigned during non-
development phase activities
 Management is more complex.
 End of the project may not be known early.
 Not suitable for small or low risk projects and could be
expensive for small projects.
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 is risky because of
potential changes to economic priorities
 Users are unsure of their needs
 Requirements are complex
 Significant changes are expected (research and
exploration)

More Related Content

PPTX
chapter2-softwareprocessmodels-190805164811.pptx
PPTX
Software Development Lifecycle: What works for you?
PPT
Software Development Process and Models.ppt
PPT
Intoduction to software engineering part 2
PPT
2-SoftwareProcess.ppt
PPT
PPT
Process Model in Software Engineering Concepts
PPS
Software Devlopment Life Cycle
chapter2-softwareprocessmodels-190805164811.pptx
Software Development Lifecycle: What works for you?
Software Development Process and Models.ppt
Intoduction to software engineering part 2
2-SoftwareProcess.ppt
Process Model in Software Engineering Concepts
Software Devlopment Life Cycle

Similar to chapter2-softwareprocessmodels-190805164811.pdf (20)

PPT
Software Development Life Cycle Model
PPT
ISE_Lecture Week 2-SW Process Models.ppt
PPT
16103271 software-testing-ppt
PPT
Software Development Life Cycle (SDLC)
PPT
Software Development Life Cycle Part II
PPT
Softwaretesting
PPT
eUnit 2 software process model
PPTX
SOFTWARE PROCESS of Sftware engneering notes
PPTX
Software Development Life Cycle (SDLC )
PPT
Soft lifecycle
PPT
project_life_cycles_models.ppt
PDF
FSE Chap 2.pdf fundamental of software engineering for second year software e...
PPT
System development methodologies L2.ppt
PDF
Lect-4: Software Development Life Cycle Model - SPM
PPT
Software Development Life Cycle
PPT
Session2 (1).ppt
PPT
Session2.ppt
PPT
Session2.ppt
PPT
Session2.ppt
Software Development Life Cycle Model
ISE_Lecture Week 2-SW Process Models.ppt
16103271 software-testing-ppt
Software Development Life Cycle (SDLC)
Software Development Life Cycle Part II
Softwaretesting
eUnit 2 software process model
SOFTWARE PROCESS of Sftware engneering notes
Software Development Life Cycle (SDLC )
Soft lifecycle
project_life_cycles_models.ppt
FSE Chap 2.pdf fundamental of software engineering for second year software e...
System development methodologies L2.ppt
Lect-4: Software Development Life Cycle Model - SPM
Software Development Life Cycle
Session2 (1).ppt
Session2.ppt
Session2.ppt
Session2.ppt
Ad

Recently uploaded (20)

PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
Well-logging-methods_new................
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
PPT on Performance Review to get promotions
PPTX
additive manufacturing of ss316l using mig welding
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
Digital Logic Computer Design lecture notes
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Construction Project Organization Group 2.pptx
PPTX
Lecture Notes Electrical Wiring System Components
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
CH1 Production IntroductoryConcepts.pptx
CYBER-CRIMES AND SECURITY A guide to understanding
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Well-logging-methods_new................
Internet of Things (IOT) - A guide to understanding
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPT on Performance Review to get promotions
additive manufacturing of ss316l using mig welding
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Digital Logic Computer Design lecture notes
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Foundation to blockchain - A guide to Blockchain Tech
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Construction Project Organization Group 2.pptx
Lecture Notes Electrical Wiring System Components
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
CH1 Production IntroductoryConcepts.pptx
Ad

chapter2-softwareprocessmodels-190805164811.pdf

  • 1. SOFTWARE PROCESS MODELS PROCESS CHARACTERISTICS OF SOFTWARE PROCESS PROCESS MODELS PROTOTYPING
  • 2. “You’ve got to be very careful if you don’t know where you’re going, because you might not get there.” - Berra
  • 3. CMM (Capability Maturity Model)  A bench-mark for measuring the maturity of an organization’s software process  CMM defines 5 levels of process maturity based on certain Key Process Areas (KPA)  Level 5 – Optimizing (< 1%) ◦ -- process change management ◦ -- technology change management ◦ -- defect prevention  Level 4 – Managed (< 5%) ◦ -- software quality management ◦ -- quantitative process management
  • 4. Level 3 – Defined (< 10%) -- peer reviews -- intergroup coordination -- software product engineering -- integrated software management -- training program -- organization process definition -- organization process focus Level 2 – Repeatable (~ 15%) -- software configuration management -- software quality assurance -- software project tracking and oversight -- software project planning -- requirements management Level 1 – Initial (~ 70%)
  • 5. Sofware Process 5 The software Development Problem
  • 6. Sofware Process 6 Project and Process  A software project is one instance of the development problem  Development process takes the project from user and develops software needed by user  There are other goals: cost schedule and quality, besides delivering software
  • 7. Sofware Process 7 Software Process…  Process: A sequence of steps performed to achieve some goal  Software Process: The sequence of steps performed to produce software with high quality, within budget and schedule  Many types of activities performed by diff people in a software project  Better to view software process as comprising of many component processes
  • 8. Software Process  A framework for the activities, actions, and tasks that are required to build high-quality software.  A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind  Software process is a method of developing a software  Process is distinct from product – products are outcomes of executing a process on a project  Software Engineering focuses on process  Premise: Proper processes will help achieve project objectives of high QP
  • 9. Sofware Process 9 Component Software Processes  Two major processes ◦ Development – focuses on development and quality steps needed to engineer the software ◦ Project management – focuses on planning and controlling the development process  Development process is the heart of software process; other processes revolve around it  These are executed by different people ◦ developers execute engg. Process ◦ project manager executes the mgmt proces
  • 10. Sofware Process 10 Component Processes…  Other processes ◦ Configuration management process: manages the evolution of artifacts ◦ Change management process: how changes are incorporated ◦ Process management process: management of processes themselves ◦ Inspection process: How inspections are conducted on artifacts
  • 11. Sofware Process 11 Process Specification  Process is generally a set of phases  Each phase performs a well defined task and generally produces an output  Intermediate outputs – work products  At top level, typically few phases in a process  How to perform a particular phase –
  • 12. Sofware Process 12 ETVX Specification  ETVX approach to specify a step ◦ Entry criteria: what conditions must be satisfied for initiating this phase ◦ Task: what is to be done in this phase ◦ Verification: the checks done on the outputs of this phase ◦ eXit criteria: when can this phase be considered done successfully  A phase also produces info for mgmt
  • 14. Characteristics of Software Process  Predictability  Support Testability & Maintainability  Support Change  Early defect removal  Process improvement and feedback
  • 15. 1) Predictability  Fundamental property of any process  Predictability determines how accurately the outcome of process can be predicted before project is completed  It is achieved from past experiences and failures from the similar projects  It increases Q & P. Decreases C & T  Predictable process is under statistical control  Predictable property is within the bound around the expected value of property of interest
  • 16. 2) Support Change  Changes due to: ◦ Requirements change ◦ Organization and business change – leads to software supports has to change  Changes during development also ◦ Customer needs change ◦ Long duration projects needs to be changed  Process should support healthy changes
  • 17. 3) Support testability and Maintainability  Maintenance cost > Development  To reduce overall cost, development should reduce maintenance cost Process includes Effort R 10% D 10% C 30% T 50%  How programmers spend their time? Writing Programs 13% Reading Programs and Manuals 16% Job Communication 32% Others 39%  Testing takes more resources during development  If testing as side activity or underestimating the testing efforts - >unreliable software
  • 18. 4) Early Defect Removal  Errors occur during programming  Correction & Detection -> Hardest activity  Errors occurs at any stage during dev. Error occurrence distributions: R 20% D 30% C 50%  Cost of correcting errors of different phases -> not the same, depends on when the error is detected and corrected  Greater the delay in error detection -> more expensive to correct  Quality control in each phase -> identify, detect, prevent and remove defects
  • 19. 5) Process Improvement and Feedback  Fundamental goal -> high Q product with low C  Software process be a closed-loop process (feedback control system)  Process improvement based on previous experiences, feedback from early parts(last iterations) used to improve execution of rest of the part(later iterations)
  • 20. Sofware Process 20 Development Process and Process Models
  • 21. Sofware Process 21 Development Process & Process Model  A set of phases and each phase being a sequence of steps  Sequence of steps for a phase - methodologies for that phase  Why have phases? ◦ To employ divide and conquer ◦ each phase handles a different part of the problem ◦ helps in continuous validation  A process model provides generic structure of the process that can be followed by some projects to achieve their goals
  • 22. Process Models - SDLC  Major activities in SDLC (Software Development Life Cycle) ◦ Planning ◦ Requirements Analysis ◦ Design ◦ Coding ◦ Testing ◦ Implementation ◦ Maintenance
  • 23. SDLC PHASE ACTIVITIES 1. Planning •Define the system to be developed •Set the project scope •Develop the project plan 2. Requirements Analysis •Gather business requirements and documented in SRS 3. Design •Design the technical architecture based on SRS •Design overall system structure 4. Development •Build technical architecture, databases and programs • Build programs in small units and integrated in next phase 5. Testing •Write test conditions •Perform testing 6. Implementation/ Deployment •Write user documentation •Provide training •Product is deployed in customer environment or released to market 7. Maintenance •Build a help desk • Support Corrections, improvements and adaptations •Support system changes
  • 24. Sofware Process 24 Waterfall Model  One of the first process development models proposed  Linear sequence of stages/phases  Requirements – HLD – DD – Code – Test – Deploy  A phase starts only when the previous has completed; no feedback  Works for well understood problems with minimal or no changes in the requirements  Each major phase is marked by milestones and deliverables (artifacts)
  • 27. Sofware Process 27 Waterfall…  Linear ordering implies each phase should have some output  The output must be validated/certified  Outputs of earlier phases: work products  Common outputs of a waterfall: SRS, project plan, design docs, test plan and reports, final code, supporting docs
  • 28. Sofware Process 28 Waterfall Advantages  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
  • 29. Sofware Process 29 Waterfall disadvantages  All requirements must be known upfront  Follows the “big bang” approach – all or nothing delivery; too risky  Very document oriented, requiring docs at the end of each phase  Views software development as manufacturing process rather than as creative process  No iterative activities and Change Management that lead to creating a final product  Long wait before a final product
  • 30. Sofware Process 30 Waterfall Usage  Has been used widely  Well suited for projects where requirements can be understood easily and technology decisions are easy  For familiar type of projects with well known requirements
  • 31. V Model  A variation of the waterfall model  Uses unit testing to verify procedural design  Uses integration testing to verify architectural (system) design  Uses acceptance testing to validate the requirements  If problems are found during verification and validation, the left side of the V can be re-executed before testing on the right side is re-enacted
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. Sofware Process 36 Prototyping  Prototyping addresses the requirement specification limitation of waterfall & V-model  Instead of freezing requirements only by discussions, a prototype is built to understand the requirements  Helps lessen the requirements risk  Focus is on quickly developing the model not on good programming practices  After preliminary requirements gathering, it visually show the users what their requirements may look like when implemented
  • 38. Prototyping: Basic Steps  Identify basic requirements  Including input and output info  Details (e.g., security) generally ignored  Develop initial prototype  UI first  Review  Customers/end –users review and give feedback  Revise and enhance the prototype & specs
  • 39. Prototyping  Allows repeated investigation of the requirements or design  Reduces risk and uncertainty in the development
  • 40. Sofware Process 40 Prototyping  Cost can be kept low ◦ Build only features needs clarification ◦ “quick and dirty” – quality not important ◦ Things like exception handling, recovery, standards are omitted ◦ Cost can be a few % of the total ◦ Learning in prototype building will help in building, the improved requirements
  • 41. Sofware Process 41 Prototyping  Advantages: ◦ Req. will be more stable, ◦ Req. frozen later, ◦ Experience helps in the main development  Disadvantages: ◦ Potential hit on cost and schedule  Applicability: ◦ When req. are hard to elicit and confidence in reqs. is low; ◦ Reqs. are not well understood
  • 42. Throwaway Prototyping  Write preliminary requirements  Design the prototype  User experiences/uses the prototype,  Specifies new requirements  Repeat if necessary  Write the final requirements  Develop the real products
  • 43. Evolutionary Prototyping Model  Goal is to build a very robust prototype in a structured manner and constantly refine it  Developers build a prototype during the requirements phase  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.
  • 44. Incremental prototyping  Final product built as separate prototypes  At the end, the prototypes are merged into a final design  Often used for web applications  Development broken down into 3 phases, each based on the preceding 1 1. Static prototype consisting of HTML pages 2. Screen are programmed and fully functional using a simulated services layer 3. Services are implemented
  • 45. Phased Development: Increments and Iterations  Incremental development: starts with small functional subsystem and adds functionality with each new release  Iterative development: starts with full system, then changes functionality of each subsystem with each new release
  • 46. Increments and Iterations Model  System delivered in pieces ◦ enables customers to have some functionality while the rest is being developed  Allows two systems functioning in parallel ◦ the production system (release n): currently being used ◦ the development system (release n+1): the next version
  • 47. Sofware Process 47 Iterative Development  Solves “all or nothing” drawback of the waterfall model  Combines benefit of prototyping and waterfall  Develop and deliver software in increments  Each increment is complete in itself  Can be viewed as a sequence of waterfalls  Feedback from one iteration is used in the future iterations
  • 49. Sofware Process 49 Iterative Development  Products almost always follow it  Used commonly in customized development: ◦ Businesses want quick response for s/w ◦ Cannot afford the risk of all-or-nothing  Newer approaches like XP, Agile,… all rely on iterative development
  • 50. Sofware Process 50 Iterative Development  Benefits: Get-as-you-pay, feedback for improvement  Drawbacks: Architecture/design may not be optimal, rework may increase, total cost may be more  Applicability: where response time is important, all req. not known
  • 51. Sofware Process 51 Another form of Iteration… •The first iteration does the requirements and architecture in the waterfall way •The development and delivery is done incrementally in iterations
  • 52. Spiral Model  Suggested by Boehm (1988)  Combines development activities with risk management to minimize and control risks  The model is presented as a spiral in which each iteration is represented by a circuit around four major activities ◦ Plan ◦ Determine goals, alternatives and constraints ◦ Evaluate alternatives and risks ◦ Develop and test
  • 54.  Spiral Quadrant: 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 Quadrant: 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)
  • 55.  Spiral Quadrant: Develop next-level product ◦ Create a design ◦ Review design ◦ Develop code ◦ Inspect code ◦ Test product  Spiral Quadrant: Plan next phase ◦ Develop project plan ◦ Develop configuration management plan ◦ Develop a test plan ◦ Develop an installation plan
  • 56. Spiral Model Strengths  Changing requirements can be accommodated.  Allows extensive use of prototypes.  Requirements can be captured more accurately.  Users see the system early.  Development can be divided into smaller parts and the risky parts can be developed earlier which helps in better risk management.
  • 57. Spiral Model Weaknesses  The model is complex  Risk assessment expertise is required  Spiral may continue indefinitely  Developers must be reassigned during non- development phase activities  Management is more complex.  End of the project may not be known early.  Not suitable for small or low risk projects and could be expensive for small projects.
  • 58. 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 is risky because of potential changes to economic priorities  Users are unsure of their needs  Requirements are complex  Significant changes are expected (research and exploration)