1 9/19/2015ã 2007, Spencer Rugaber Personal Software Process (PSP) Application of CMM principles to individuals Developed by Watts Humphrey of the Software.

Slides:



Advertisements
Similar presentations
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Advertisements

The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
PRO2 - 1 Introduction to the Personal Software Process SWENET PRO2 Module Developed with support from the National Science Foundation.
Topic X Personal software process (PSP)
Personal Software Process
Computer Engineering 203 R Smith Process/Plan Model 7/ Development Process Models Development Process Models are different ways to look at the processes.
CS 350: Introduction to Software Engineering Slide Set 5 Software Quality C. M. Overstreet Old Dominion University Spring 2006.
RIT Software Engineering
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Aplicaciones de Ingeniería de Software
Fundamental of Software Project Management Team Assignment 1 – K15T2 – Team 07.
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Personal software process Mohammed ahmed ali. What is psp The personal software process (psp) is a structured set of process descriptions, measurements.
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Capability Maturity Model
Personal Software Process Software Quality CIS 376 Bruce R. Maxim UM-Dearborn.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Personal Software Process KAIST SE Lab..
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #5 Software Engineering.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Chapter 15 Projecting Defects( 缺陷预测 ). 山东大学齐鲁软件学院 2 outline  Analyze and use your defect data to help improve both planning accuracy and product quality.
N By: Md Rezaul Huda Reza n
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 8.
Software Quality Assurance Activities
Disciplined Software Engineering Lecture #8 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Chapter 12 Defects. 山东大学计算机学院 2 In the chapter  Concept of Defects  Defects and software quality  What is Defect?  Defects versus Bugs  Defect types.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Disciplined Software Engineering Lecture #6 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
CS 350, slide set 6 M. Overstreet Old Dominion University Spring 2005.
Lecture 1 Introduction to Software Engineering
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 6.
Lecture: The Personal Software Process. 2 Overview  Personal Software Process assumptions process stages measures and quality strategy results.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
© 1998 Carnegie Mellon UniversityTutorial The Personal Software Process (PSP) The overview of the PSP that follows has been built from material made.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Thomas L. Gilchrist Testing Basics Set 4: Strategies & Metrics By Thomas L. Gilchrist, 2009.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #8 Software Engineering.
Software Engineering Prof. Dr. Bertrand Meyer March–June 2007 Chair of Software Engineering Lecture 2: The Personal Software Process.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management 1INFO636 Week 9.
Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview.
PSP Quality Strategy [SE-280 Dr. Mark L. Hornick 1.
1 The Personal Software Process Estimation Based on Real Data* * Would Martin Fowler approve? “I want you to take this personally…”
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Fall 2005.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #2 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #2 Software Engineering.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
CS 350: Introduction to Software Engineering Slide Set 2 Process Measurement C. M. Overstreet Old Dominion University Fall 2005.
Personal Software Process PSP--Personal Software Process.
Carnegie Mellon Software Engineering Institute © 2006 by Carnegie Mellon University Software Process Performance Measures James Over Software Engineering.
Personal Design and Development Software Process PD 2 SP “The unexamined life is not worth living.” Plato.
Introduction to the Personal Software Process. Overview Process Fundamentals PSP Concepts and Structure PSP Planning and Measurement PSP Quality Management.
CSC 480 Software Engineering PSP Project 1 August 20, 2004.
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Spring 2006.
Personal Software Process Adam Graham Candidate for M.S. Computer Science Union College.
Capability Maturity Model. What is CMM? n CMM: Capability Maturity Model n Developed by the Software Engineering Institute of the Carnegie Mellon University.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
Disciplined Software Engineering Lecture #6
A possible solution: Personal Software Process (PSP)
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

1 9/19/2015ã 2007, Spencer Rugaber Personal Software Process (PSP) Application of CMM principles to individuals Developed by Watts Humphrey of the Software Engineering Institute (SEI) in the early 1990s –Extensive supporting materials: books, courses, forms, exercises Validated by data from numerous projects –58% reduction in defects/KLOC (development) –72% reduction in defects/KLOC (testing) –21% improvement in productivity Complemented by Team Software Process (TSP) Strict waterfall plus process monitoring and improvement

2 9/19/2015ã 2007, Spencer Rugaber PSP and CMM Level 2 –Software configuration management –Software quality assurance –Software subcontract management –Software project tracking and oversight –Software project planning –Requirements management Level 3 –Peer reviews –Intergroup coordination –Software product engineering –Integrated software management –Training program –Organization process definition –Organization process focus Level 4 –Software quality management –Quantitative process management Level 5 –Process change management –Technology change management –Defect prevention Complementary –CMM is top-down - management oriented –PSP is bottom-up - engineer oriented

3 9/19/2015ã 2007, Spencer Rugaber Overview Disciplined personal framework for developing software – LOC projects Metrics, forms, and scripts Produce low-defect products on schedule and within planned costs Manage quality, analyze results, improve process

4 9/19/2015ã 2007, Spencer Rugaber Assumptions/Principles Every engineer is different. To be most effective, engineers must plan their work, and they must base their plans on their own personal data To consistently improve their performance, engineers must use well-defined and measured processes To produce quality products, engineers must feel personally responsible for the quality It costs less to find and fix defects earlier in a process than later The right way is always the fastest and cheapest way to do a job

5 9/19/2015ã 2007, Spencer Rugaber Overall Approach Experienced programmers inject one defect per 7-10 lines of code People tend to make the same mistakes repeatedly To improve your organization's performance –Record data on defects; review data; make process changes to eliminate causes –Spend more up front time (design and detection activities)

6 9/19/2015ã 2007, Spencer Rugaber Process Structure

7 9/19/2015ã 2007, Spencer Rugaber PSP Phases PhaseEmphasisFeatures 0 Personal Management Current process plus basic measures: development time, defects injected and removed; process: planning, development, analysis 0.1 Coding standards, process improvement proposal form, size measurements 1 Personal Planning PROBE; Size estimation, time estimates, test report 1.1 Task planning, schedule planning 2 Personal Quality Defect management: code reviews, design reviews 2.1 Design specification and analysis; defect prevention; process analysis; process benchmarks 3 Scaling UpCyclic development

8 9/19/2015ã 2007, Spencer Rugaber PSP0 Personal measurement Forms and scripts Time, defects injected and removed Phases: planning, development, postmortem PSP0.1: add in coding standards, size measurement, and process improvement proposal

9 9/19/2015ã 2007, Spencer Rugaber PSP1 Personal planning PROBE estimation; confidence intervals PSP1.1: schedule and task planning

10 9/19/2015ã 2007, Spencer Rugaber PSP1 Process Script (SEI)

11 9/19/2015ã 2007, Spencer Rugaber PSP2 Personal quality Defect management: data, review checklists PSP2.1: design specification, defect prevention, process analysis, process benchmarks

12 9/19/2015ã 2007, Spencer Rugaber PSP3 Scaling up Cyclic development Design verification; process definition principles Subsumed by TSP

13 9/19/2015ã 2007, Spencer Rugaber Overall PSP Strategy 1.Gather data 2.Estimate and plan 3.Manage defects 4.Manage yield 5.Control cost of quality

14 9/19/2015ã 2007, Spencer Rugaber 1. Gathering Data Measurements taken –Time in each process activity (and for interrupts) –Defects introduced and removed for each activity –Developed product size (LOC) Base, added, modified, deleted, new and changed, reused, new reuse, total Metrics computed –Size and time estimating error –Cost-performance index –Defect Injected and removed per hour Density –Process yield –Appraisal and failure cost of quality –Appraisal to failure ratio

15 9/19/2015ã 2007, Spencer Rugaber 2. Estimate and Plan PROBE - proxy based estimation method PSP proxies: functions and object –Others include function points, screens, reports, sections of text Linear regression on at least 3 prior projects Goal is to improve estimates over time –PSP students improved their size estimates from 31% (within 20%) to 42% between programs one and ten –Improved time estimates from 33% (within 20%) to 49%

16 9/19/2015ã 2007, Spencer Rugaber Example PROBE Data (C++)

17 9/19/2015ã 2007, Spencer Rugaber Size Categories (SEI) Base When an existing product is enhanced, base LOC is the size of the original product version before any modifications are made. Added Code written for a new program or added to an existing base program. Modified LOC in an existing (Base) program that are changed. Deleted LOC in an existing (Base) program that are deleted. New and Changed When engineers develop software, it takes them much more time to add or modify a LOC than it does to delete or reuse one. Thus, in the PSP, engineers use only the Added or Modified code to make size and resource estimates. This code is called the New and Changed LOC. Reused Code taken from a reuse library and used, without modification, in a new program. Reuse does not count the unmodified base code retained from a prior program version and it does not count any code that is reused with modifications. New Reuse LOC that an engineer develops and contributes to the reuse library. Total Total size of a program, regardless of its source (= Base - Deleted + Added + Reuse).

18 9/19/2015ã 2007, Spencer Rugaber 3. Manage Defects Record, for each defect –Activity (phase) during which defect was injected and removed Planning, design, design review, code, code review, compile, test –Defect type (next slide) –Fix time –Description Students reduced defect rates from 116/KLOC to 49/KLOC between programs one and ten –Standard deviation also reduced

19 9/19/2015ã 2007, Spencer Rugaber Defect Types Type Number Type NameDescription 10Documentationcomments, messages 20Syntaxspelling, punctuation, types, instruction formats 30Build, packagechange management, library, version control 40Assignmentdeclaration, duplicate name, scope, limits 50Interfaceprocedure calls and references, I/O, user format 60Checkingerror messages, inadequate checks 70Datastructure, content 80Functionlogic, pointers, loops, recursion, computations, function defects 90Systemconfiguration, timing, memory 100Environmentdesign, compile, test, or other support-system problems

20 9/19/2015ã 2007, Spencer Rugaber Defects per KLOC Trend (Humphrey - Fig. 4) Observations Standard deviation also reduced Student programmers Hawthorn effect? Compilation defects fall faster

21 9/19/2015ã 2007, Spencer Rugaber Question Would you rather have your testing group uncover a lot of failures or a few?

22 9/19/2015ã 2007, Spencer Rugaber Question Would you rather have your testing group uncover a lot of failures or a few?

23 9/19/2015ã 2007, Spencer Rugaber 4. Manage Yield Yield is PSP's principle quality measure If it is costly to find a defect during testing, then you need to find it earlier (during review) –(Or not insert it in the first place) Hold review before compilation –(But aren't compilers cheaper than programmers?) –(And desk check every new compilation)

24 9/19/2015ã 2007, Spencer Rugaber Yield Yield: % defects found and fixed before compilation –Engineers review code before first compile –9% of "syntax" error get by compiler –Defects found at compile time correlate with defects found during test (r =.71) –Strong correlation between defects found during test and customer failures (r =.91) Introduction of design and code reviews strongly improves yield

25 9/19/2015ã 2007, Spencer Rugaber Yield versus Program Number (Humphrey - Fig. 7) Observations Program 7 introduced reviews

26 9/19/2015ã 2007, Spencer Rugaber 5. Control Cost of Quality Appraisal cost –Time spent in design and code reviews Failure cost –Time spent in compile and test Prevention costs –Prototyping, formal specification –Not part of PSP Appraisal to failure ratio (A/FR) –Raise until quality is sufficient then gradually lower –Initial target at least two

27 9/19/2015ã 2007, Spencer Rugaber Total Defects per KLOC versus A/FR (Humphrey - Fig. 9) Observations Little improvement after 3:1 Enables control of the productivity / quality tradeoff

28 9/19/2015ã 2007, Spencer Rugaber How Much Time should you Spend in Reviews?

29 9/19/2015ã 2007, Spencer Rugaber How Much Time should you Spend in Reviews? Spend as much time reviewing as is required to detect and remove all defects injected during the activity being reviewed Depends on the rates of fault injection and removal per time unit This means that you had better measure these rates PSP measurements on students indicate that they should spend 59% as much time reviewing as injecting for design activities and 65% for code

30 9/19/2015ã 2007, Spencer Rugaber Another Answer PSP rule of thumb is to find twice as many problems during code review as you do during testing So if for module A, you found 15 during review and 45 during testing, you need to increase your review time by a factor of six! –15 * 6 = 90 = 2 * 45

31 9/19/2015ã 2007, Spencer Rugaber Design PSP does not prescribe a design method –Instead, it emphasized design completion –So it recommends making sure of the following Example schema –External static Function interfaces: signatures, inheritance –External dynamic Operational scenarios, call/return –Internal static Attributes, constraints –Internal dynamic State machines, response time, interrupts

32 9/19/2015ã 2007, Spencer Rugaber PSP Results Estimation improvement –Reduced variance leads to better scheduling and staffing Reduced compile and test defects –Correlated with reduced customer-detected failures Mild productivity improvement

33 9/19/2015ã 2007, Spencer Rugaber PSP Benefits Increases personal commitment by investing each engineer with process responsibility Assists engineers in making accurate plans Provides steps engineers can take to improve personal and project quality Sets benchmarks to measure personal process improvements Demonstrates the impact of process changes on an engineer's performance