SlideShare a Scribd company logo
1 of 58
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
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
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
 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

What's hot

Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metricsIndu Sharma Bhardwaj
 
Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptDrTThendralCompSci
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineeringkirupasuchi1996
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSaqib Raza
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle modelStephennancy
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)Er. Shiva K. Shrestha
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelmohamed khalaf alla mohamedain
 
Black Box Testing
Black Box TestingBlack Box Testing
Black Box TestingTestbytes
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24koolkampus
 
Programming team structure
Programming team structureProgramming team structure
Programming team structureNancyBeaulah_R
 
Classes and Objects
Classes and Objects  Classes and Objects
Classes and Objects yndaravind
 
Incremental model
Incremental modelIncremental model
Incremental modelHpibmx
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specificationlavanya marichamy
 

What's hot (20)

Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metrics
 
Algorithmic Software Cost Modeling
Algorithmic Software Cost ModelingAlgorithmic Software Cost Modeling
Algorithmic Software Cost Modeling
 
Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.ppt
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle model
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
13 software metrics
13 software metrics13 software metrics
13 software metrics
 
Black Box Testing
Black Box TestingBlack Box Testing
Black Box Testing
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24
 
Programming team structure
Programming team structureProgramming team structure
Programming team structure
 
Classes and Objects
Classes and Objects  Classes and Objects
Classes and Objects
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
 

Similar to Chapter 2 software process models

Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Jauhari Ismail
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2Rupesh Vaishnav
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life CycleVivek Gupta
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle ModelJ.T.A.JONES
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-pptatish90
 
eUnit 2 software process model
eUnit 2  software process modeleUnit 2  software process model
eUnit 2 software process modelPreeti Mishra
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
project_life_cycles_models.ppt
project_life_cycles_models.pptproject_life_cycles_models.ppt
project_life_cycles_models.pptchandrasekarnatraj
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.pptNyamburaKinyua
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMMubashir Ali
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleRIKSOF
 

Similar to Chapter 2 software process models (20)

Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
2-SoftwareProcess.ppt
2-SoftwareProcess.ppt2-SoftwareProcess.ppt
2-SoftwareProcess.ppt
 
Sdlc
SdlcSdlc
Sdlc
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life Cycle
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle Model
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-ppt
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
 
Softwaretesting
SoftwaretestingSoftwaretesting
Softwaretesting
 
eUnit 2 software process model
eUnit 2  software process modeleUnit 2  software process model
eUnit 2 software process model
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Soft lifecycle
Soft lifecycleSoft lifecycle
Soft lifecycle
 
project_life_cycles_models.ppt
project_life_cycles_models.pptproject_life_cycles_models.ppt
project_life_cycles_models.ppt
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.ppt
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPM
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
ddd.ppt
ddd.pptddd.ppt
ddd.ppt
 

Recently uploaded

ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........LeaCamillePacle
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 

Recently uploaded (20)

ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 

Chapter 2 software process models

  • 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)
  • 26.
  • 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
  • 32.
  • 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
  • 53.
  • 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)