Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.

Slides:



Advertisements
Similar presentations
The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Advertisements

1 State of Michigan Achieving Software Process Improvement with Capability Maturity Model (CMM)
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.
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
CMM Overview - 1 © Paul Sorenson CMPUT Software Engineering refs. IEEE Software, March 1988, 73-79, and IEEE Software, July 1993, (Capability.
Fundamental of Software Project Management Team Assignment 1 – K15T2 – Team 07.
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.
Process: A Generic View
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
CLEANROOM SOFTWARE ENGINEERING.
N By: Md Rezaul Huda Reza n
Software Quality Assurance Activities
Disciplined Software Engineering Lecture #8 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
INFO 637Lecture #41 Software Engineering Process II Development Plan INFO 637 Glenn Booker.
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.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
1 9/19/2015ã 2007, Spencer Rugaber Personal Software Process (PSP) Application of CMM principles to individuals Developed by Watts Humphrey of the Software.
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.
Chapter 2 Process: A Generic View
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.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
By Ritesh Reddy Nagaram.  Organizations which are developing software processes are facing many problems regarding the need for change of already existing.
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.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #8 Software Engineering.
Georgia Institute of Technology CS 4320 Fall 2003.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
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.
CS Process Improvement CMM Hans Van Vliet, Software Engineering, Principles and Practice, 3 rd edition, John Wiley & Sons, Chapter 6. W. Humphrey,
“Look, who is the most successful in attracting and holding good people? The nonprofits. The satisfaction has to be greater than in business because there.
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…”
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
Chapter 4 프로세스 모델 Process Models
SE-280 Dr. Mark L. Hornick 1 Design and Code Reviews Review Checklists.
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.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
COMP 6710 Course NotesSlide 3-0 Auburn University Computer Science and Software Engineering Course Notes Set 3: Software Process Maturity Computer Science.
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.
Capability Maturity Model. CS460 - Senior Design Project I (AY2004)2 Immature Organisations Software processes are often rigorously followed. Organisation.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
State of Michigan Achieving Software Process Improvement with
CS4311 Spring 2011 Process Improvement Dr
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
A possible solution: Personal Software Process (PSP)
Software Engineering I
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8

Overview Improved software processes lead to improved product quality. Individuals and small teams could apply process-improvement through PSP. Benefits of fewer code defects, better planning and productivity.

The Personal Software Process A measurement and analysis tool. Help engineers –Understand their own skills. –Improve personal performance. –Improve organizational performance. Apply for individuals and small teams. Beyond Level 3 of CMM.

Why PSP for Software Process  Software Process - A sequence of steps required to develop or maintain software. It is difficult for individuals or small terms apply Capability Maturity Model. Practice before applying CMM.

PSP Overview It uses a family of seven steps to develop module-sized programs. Each step has a set of scripts, forms, and templates. Each program has 50 to 5,000 LOC.

Learn from PSP practice Personal process principles Make accurate plan Determinate the steps to improve product quality Establish benchmarks to measure process improvement Good performance

Personal measurement Personal planning Personal quality PSP process evolution PSP3 Cyclic Development PSP2 Code reviews Design reviews PSP1 Size estimating Test report PSP0 Current progress Time and defect recording PSP2.1 Design templates PSP1.1 Task planning Schedule planning PSP0.1 Coding standard Size measurement Process improvement proposal Cyclic process

Personal Measurement (PSP0) The first step where PSP starts. Engineers learn how to apply the PSP forms and scripts to their work. –measuring development time and defects. –gathering data and benchmarks.

Three Phrases Of PSP0 1) Planning 2) Development  Design  Code  Compiler  Test 3) Verifying

PSP0.1 & PIP form  Add three additional strategies to PSP0. 1)Coding standard 2)Size measurement 3)Process Improvement Proposal form  PIP form let engineers record problems, issues, and ideas to use later in improving their processes.  PIP form help engineers to gather and use process data.

Personal Planning (PSP1) PROBE method (for new program) –Estimate the size and development time –Based on personal data PROBE uses linear regression to calculate estimating parameters. PROBE generates prediction intervals to indicate size and time estimate quality.

PSP1.1 & Early Planning  Add two additional strategies to PSP1 1)Schedule planning 2)Task planning By early planning to gather enough data Experience statistical estimating method

Personal Quality (PSP2) Focus on defect management Implemented with defect data –Use checklists for design and code review –Focus on quality from the start –Efficiently review the defects in programs –Good skill to construct and modify checklists

PSP2.1 & Defect Metrics Add two strategies to PSP2 1)Design specification 2)Analysis techniques –Along with defect prevention, process analysis, and process benchmarks. –Measuring the time and the number of defects in each phase –Learn to evaluate and improve performance

Scaling Up (PSP3) The final step of PSP. Couple multiple PSP2.1 steps to scale up. Developing modules up to thousands LOC. Design-verification methods. Process-definition methods.

PSP3 – Cyclic Process Requirements and Planning Specification High-level Design High-level Design Review Cyclic Development Postmortem Integration System Test Use Product Specify Cycle Detailed Design & Review Test Development& Review Implementation & Review Compiler Test Reassess and Recycle

CMM-Capability Maturity Model A framework. –Organization-focused –Process-improvement Facilitate good work. –No guarantee –Use effective personal practices

Level 4 - Managed *Software quality management *Quantitative process management CMM – Level Diagram Level 3 - Defined *Peer reviews Intergroup coordination *Software product engineering *Integrated software management Training program *Organization process definition *Organization process focus Level 5 - Optimizing *Process change management *Technology change management *Defect prevention Level 2 - Repeatable Software configuration management Software quality assurance Software subcontract management *Software project tracking and oversight *Software project planning Requirements management Level 1 - Initial

PSP/CMM Relationship PSP –Bottom-Up approach –12 of 18 (marked asterisk in diagram) –Most effective near or above CMM Level 2 –Size and exercise CMM –Provide support environment –Orderly for superior work

PSP Methods in Practice Data gathering Size and resource estimating Defect management Yield management Cost of quality Productivity analysis

Method - Gathering Data With Goal-Question-Metric paradigm –Time spent –Defects found and removed –Product size in LOC Measure above data in each phase –Provide information of process quality –Appraisal and failure cost of quality

Method - Estimating & Planning PROBE – Proxy-Based Estimating method –Proxies are objects and functions. –Use data to judge a new program’s size and required development time. The objective is to learn to make fair judges, even with considerable errors. Estimating measure (%) – final size or develop time differs from the original ones.

Estimating & Planning (cont.) Planning is measured by CPI. –CPI ~ Cost-Performance Index –The ratio of planned to actual development cost.

Method - Managing Defects In PSP, all errors are counted. In order to understand the errors before adjust processes to find them. Defect management – find & fix. –Defect type –Fix time (from detected to fixed and verified) –Defect description –Error was injected on what phase

Method - Managing Yield Yield is the principal PSP quality measure. Although quality involves more than defects, the PSP focuses on defect detection and prevention. Total Process Yield – The percentage of defects found and fixed before compile and test the program.

Managing Yield (cont.) Main idea – Want fewer errors in test, find errors in code reviews. –If you find errors after test your program, you must review the code and fix them. –If you’re going to review the code anyway, why not review it before compiling? –At least, you save your compiling time. –Compiler serves as a quality check device.

Managing Yield (cont.) Why review code before compiling –Some syntax errors are hard to find –Some erroneous keystrokes are valid –Hard to find by compiler nor in test –More expensive to find them later on –Engineers get satisfaction from a quality job Example: while loop, for loop, if then clause.

Method – Controlling COQ PSP introduces three Cost-Of-Quality measures. (1) Appraisal costs  time spent in design and code review (2) Failure costs  time spent in compiler and test (3) Prevention cost  time spent in preventing defects

Controlling COQ (cont.) Appraisal-to-failure-ratio = A/FR Appraisal COQ / Failure COQ A/FR measure the relative effort spent in defect removal.  While the yield objective is to reduce the number of defects found in compile and test, the A/FR objective is to improve yield.

Method – Understanding Productivity Productivity relates to quality. –Productivity of a program with no test defects –Productivity of a program with many defects –Make no sense to compare those programs Produce defect-free programs, the project will be more productive.  In this article, productivity = LOC / hour

Understanding Productivity (cont.)  Two conclusions 1. Inexperienced engineers have higher defects rate and lower LOC/hour, the PSP will increase their productivity. 2.Experienced engineers start with low defect rate and higher LOC/hour, the PSP estimating and planning tasks drop their productivity. Get benefits from planning and quality management practice.

Other PSP Issues  Design: PSP’s principal design focus is preventing defects.  Scale-Up: The PSP’s objective is to extend highly productivity to large programs with experiencing small programs.  Process definition: Learn how to define, plan, and work new processes from PSP.

Design Issue Use design-completion rather than specific design methods. Poor design is a source of significant errors. Establish review-able design to reduce errors.

Design Issue (cont.)  Design-completion – Four Templates 1)Internal-static.  contains a static behavior of the object. 2)External-static  dynamic characteristics connecting its behavior. 3)Internal-dynamic  static relationship to other objects. 4)External-dynamic  The interaction with other objects.