Personal Software Process (PSP)



Similar documents
The Personal Software Process (PSP) Tutorial

Assignment Kits. Summary Kit Contents Lecture 1: Kit cover sheet (page 40)

SEI Level 2, 3, 4, & 5 1 Work Breakdown Structure (WBS)

Software Quality Data Part 1: Basic and Derived Metrics

A quality software process for rapid application development

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Fundamentals of Measurements

Reaching CMM Levels 2 and 3 with the Rational Unified Process

(Refer Slide Time: 01:52)

OVERVIEW FUNDAMENTALS OF SOFTWARE ENGINEERING PROJECT MANAGEMENT

Software Engineering: Analysis and Design - CSE3308

How To Write An Slcm Project Plan

Example Software Development Process.

An Introduction to. Metrics. used during. Software Development

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

CSC 408F/CSC2105F Lecture Notes

Darshan Institute of Engineering & Technology Unit : 7

The Team Software Process SM (TSP SM )

Process Improvement. Objectives

Software Development Life Cycle (SDLC)

Testing Metrics. Introduction

Plan-Driven Methodologies

Software cost estimation

Basic Unix/Linux 1. Software Testing Interview Prep

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

Integrating CMMI, TSP and Change Management Principles to Accelerate Process Improvement

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

A Capability Maturity Model (CMM)

Implementing a Personal Software Process (PSP SM ) Course: A Case Study

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

The Software Development Life Cycle: An Overview. Last Time. Session 8: Security and Evaluation. Information Systems Security Engineering

CSTE Mock Test - Part I - Questions Along with Answers

MS SQL Performance (Tuning) Best Practices:

Instructor's Guide for Introduction to the Team Software Process By Watts S. Humphrey. With Support Tool by James W. Over.

Karunya University Dept. of Information Technology

JOURNAL OF OBJECT TECHNOLOGY

Implementing CMMI for High-Performance

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

PHASE 6: DEVELOPMENT PHASE

Peer Review Process Description

Knowledge Infrastructure for Project Management 1

What is a life cycle model?

The Team Software Process SM (TSP SM ) in Practice: A Summary of Recent Results

Life Cycle Quality Gates

Process Improvement. From the Software Engineering Institute:

Quality Systems Frameworks. SE 350 Software Process & Product Quality 1

Measurement and Metrics Fundamentals. SE 350 Software Process & Product Quality

Latest Trends in Testing. Ajay K Chhokra

Chapter 23 Software Cost Estimation

Chap 1. Software Quality Management

Software Testing. Quality & Testing. Software Testing

Peer Review Process Description

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

Chemuturi Consultants Do it well or not at all Productivity for Software Estimators Murali Chemuturi

TITLE: Control of Software

Metrics in Software Test Planning and Test Design Processes

What do you think? Definitions of Quality

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

CSTE Mock Test - Part III Questions Along with Answers

Lecture 1: Introduction to Software Quality Assurance

Java Programming (10155)

Root Cause Analysis for Customer Reported Problems. Topics

Software Test Plan (STP) Template

Business Application Services Testing

Leveraging CMMI framework for Engineering Services

Maturity Model. March Version 1.0. P2MM Version 1.0 The OGC logo is a Registered Trade Mark of the Office of Government Commerce

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

ADVANCES IN TECHNOLOGY-BASED EDUCATION: TOWARDS A KNOWLEDGE BASED SOCIETY

Software cost estimation

SOFTWARE VALUE ENGINEERING IN DEVELOPMENT PROCESS

CSSE 372 Software Project Management: Managing Software Projects with Measures

AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities

Quantitative Project Management Framework via Integrating

How to Write a Software Process Procedures and Policy Manual for YOUR COMPANY

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective

Software Project Management Matrics. Complied by Heng Sovannarith

Process Models and Metrics

Cost Estimation Strategies COST ESTIMATION GUIDELINES

1. Introduction. Annex 7 Software Project Audit Process

ESTABLISHING A MEASUREMENT PROGRAM

Draft Documents RFP 3.2.4

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process

Pattern Insight Clone Detection

Software Development Process

Transcription:

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 6/18/2007 2007, Spencer Rugaber 1

PSP and CMM Complementary CMM is top-down - management oriented PSP is bottom-up - engineer oriented 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 6/18/2007 2007, Spencer Rugaber 2

Overview Disciplined personal framework for developing software 50-5000 LOC projects Metrics, forms, and scripts Produce low-defect products on schedule and within planned costs Manage quality, analyze results, improve process 6/18/2007 2007, Spencer Rugaber 3

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 6/18/2007 2007, Spencer Rugaber 4

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/18/2007 2007, Spencer Rugaber 5

Requirements Process Planning Design Plans Structure Design Review Scripts Code Logs Results Code Review Compile Test Time Defects Plan summary Postmortem Finished Product Project and process data summary report 6/18/2007 2007, Spencer Rugaber 6

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

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 6/18/2007 2007, Spencer Rugaber 8

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

PSP1 Process Script (SEI) 6/18/2007 2007, Spencer Rugaber 10

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

PSP3 Scaling up Cyclic development Design verification; process definition principles Subsumed by TSP 6/18/2007 2007, Spencer Rugaber 12

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

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 6/18/2007 2007, Spencer Rugaber 14

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% 6/18/2007 2007, Spencer Rugaber 15

Example PROBE Data (C++) 6/18/2007 2007, Spencer Rugaber 16

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). 6/18/2007 2007, Spencer Rugaber 17

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 6/18/2007 2007, Spencer Rugaber 18

Defect Types Type Number 10 20 30 40 50 60 70 80 90 100 Type Name Documentation Syntax Build, package Assignment Interface Checking Data Function System Environment comments, messages spelling, punctuation, types, instruction formats change management, library, version control declaration, duplicate name, scope, limits procedure calls and references, I/O, user format error messages, inadequate checks structure, content Description logic, pointers, loops, recursion, computations, function defects configuration, timing, memory design, compile, test, or other support-system problems 6/18/2007 2007, Spencer Rugaber 19

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

Question Would you rather have your testing group uncover a lot of failures or a few? 6/18/2007 2007, Spencer Rugaber 21

Would you rather have your testing group uncover a lot of failures or a few? Question 6/18/2007 2007, Spencer Rugaber 22

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) 6/18/2007 2007, Spencer Rugaber 23

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 6/18/2007 2007, Spencer Rugaber 24

Yield versus Program Number (Humphrey - Fig. 7) Observations Program 7 introduced reviews 6/18/2007 2007, Spencer Rugaber 25

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 6/18/2007 2007, Spencer Rugaber 26

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

How Much Time should you Spend in Reviews? 6/18/2007 2007, Spencer Rugaber 28

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 6/18/2007 2007, Spencer Rugaber 29

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 6/18/2007 2007, Spencer Rugaber 30

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 6/18/2007 2007, Spencer Rugaber 31

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 6/18/2007 2007, Spencer Rugaber 32

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 6/18/2007 2007, Spencer Rugaber 33