1 The Personal Software Process Estimation Based on Real Data* * Would Martin Fowler approve? “I want you to take this personally…”

Slides:



Advertisements
Similar presentations
Software Engineering Lab Session Session 1 – Introduction to the practicum © Jorge Aranda, 2005.
Advertisements

Software Engineering Lab Session Session 4 – Feedback on Assignment 1 © Jorge Aranda, 2005.
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.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 7.
Important concepts in software engineering The tools to make it “easy to apply common sense”!
Important concepts in software engineering The tools to make it easy to apply common sense!
Metrics Project and Process Metrics. Why do we measure? Assessing project status Allows us to track risks Before they go critical Adjust workflow See.
Personal Software Process
The Software Process Strategy The Software Process Strategy Part III.
© 2010 John Dalbey Ch 9: Reviews Humphrey proposes that personal reviews will result in improved quality. Now that we have a defined process and some real.
CS 350: Introduction to Software Engineering Slide Set 5 Software Quality C. M. Overstreet Old Dominion University Spring 2006.
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Personal Software Process Software Quality CIS 376 Bruce R. Maxim UM-Dearborn.
Feature Engineering Studio February 23, Let’s start by discussing the HW.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
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.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
Defect Management Defect Injection and Removal
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.
1 9/19/2015ã 2007, Spencer Rugaber Personal Software Process (PSP) Application of CMM principles to individuals Developed by Watts Humphrey of the Software.
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.
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.
Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University.
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.
Lecture 4 Software Metrics
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #8 Software Engineering.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management 1INFO636 Week 9.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 8 – Reviews 1INFO636 Week 8.
PSP Quality Strategy [SE-280 Dr. Mark L. Hornick 1.
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 #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.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
BPS - 5th Ed. Chapter 221 Two Categorical Variables: The Chi-Square Test.
SE-280 Dr. Mark L. Hornick 1 Design and Code Reviews Review Checklists.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
Effort Estimation ( 估计 ) And Scheduling ( 时序安排 ) Presented by Basker George.
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.
Assignment (1) WEEK 3.
CS 350: Introduction to Software Engineering Slide Set 2 Process Measurement C. M. Overstreet Old Dominion University Fall 2005.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Mistakes, Errors and Defects. 12/7/2015Mistakes, Errors, Defects, Copyright M. Smith, ECE, University of Calgary, Canada 2 Basic Concepts  You are building.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
“How to Measure the Impact of Specific Development Practices on Fielded Defect Density” by Ann Marie Neufelder Presented by: Feride Padgett.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
Principles of Software Engineering: Why Study Software Engineering? COSI 120b, Spring 2005.
1 Software Quality Engineering. 2 Quality Management Models –Tools for helping to monitor and manage the quality of software when it is under development.
Statistics for the Social Sciences
Chapter 10: Software Size Estimation Omar Meqdadi SE 273 Lecture 10 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Introduction SOFTWARE ENGINEERING.
Estimating with PROBE II
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Inspections and Testing
SQA for Individuals based on
Mistakes, Errors and Defects
6. Software Metrics.
Presentation transcript:

1 The Personal Software Process Estimation Based on Real Data* * Would Martin Fowler approve? “I want you to take this personally…”

2 PSP Principles (assumptions?) 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 improve their performance consistently, engineers must use well-defined and measured processes - personally. To produce quality products, engineers must feel personally responsible for the quality of their products. Superior products are not produced by mistake; engineers must strive to do quality work. It costs less to find / fix defects earlier in a process vs later. It is more efficient to prevent defects than to find and fix them. The right way is always the fastest and cheapest way to do a job.

3 These are your “personal process” for doing each step!

4 PROBE A mechanism of going from design -> LOC Then those lines of code -> time Uses linear regression* based on previous data * You don’t get this in MA 381, but it’s not difficult. What’s the straight line through a bunch of data that’s “closest to correct” look like? Computes “least squares” to calculate that line.

5 PSP estimating example “For coding objects of this size, in the recent past, it’s been taking me this many hours.” Would need a “linear regression” of estimated object size vs time taken.

6 Tracking - time Time spent in the various stages of development (and overall) Includes every break/interruption

7 Tracking - Size LOC Problematical? Humphrey argues that, for a single programmer working in a given computer language, this is a good independent variable.

8 Tracking - defects Every failed compilation, every bug, every misspelling… You also track which stage it was inserted in, and which one it was found in. Try to decide ahead of time what to count! – And when to count them… – E.g., Do we care if Junit fails the first 20 times, as I’m building the code?

9 What is this data used to calculate? Defect density (bugs per KLOC) – For PSP practitioners, “good” is 5/KLOC – For non-PSP, defects are per KLOC

10 Development time ratios One stage to another – How much time should you spend on design? – Humphrey recommends 1 to 1 Pushing the right way to the start – What if I’m using the code as the low-level design, and “the code is the design”?

11 Yield % Defects removed per stage Phase yield – E.g., – Program enters unit test with 20 defects – Unit testing found 9 – Yield = 45% Process yield – Percentage of defects removed “before first compile & unit test” – Suggest 70% or better

12 Big Picture of Defects These follow another “Rayleigh curve” – For both insertion and removal

13 A/FR Appraisal vs Failure Recovery ratio – Ratio measures the quality of the engineering process – Uses cost-of-quality parameters – Appraisal cost is time spent in design and code reviews, including time spent repairing defects found in those reviews. – F = “failure quality cost” – the time spent in failure recovery and repair. – R either means “Recovery” or the “Ratio” of these! 2.0 or higher is good.

14 If you actually did this PSP stuff, would it make you a better programmer? 1 – Definitely 2 – Probably 3 – Probably not 4 – Definitely not 5 – I have some other more complex opinion

15 How can you improve if… You don’t know were you’re spending your time? You don’t know what problems you have? So I propose an experiment…

16 COCOMO II and the Estimation project What we did, Week 4, last year Least favorite assignment of last year Collected metrics but did not aid reflection

17 Issues with self-reflection If you are prejudiced about this, ahead of time, will you try to justify that in trying it? If you find it super-valuable already, will that rosy outlook make it succeed? I.e., would you fudge the figures to favor your preexisting opinion? Are you willing to be surprised? Are you ok with “mixed results”?

18 Ready to try it? On Moodle, Week 3, click on “The first PSP assignment (DUE Sunday night)”. See handouts for the forms to use. These are just for the weekend HW.