Chapter 15 Projecting Defects( 缺陷预测 ). 山东大学齐鲁软件学院 2 outline  Analyze and use your defect data to help improve both planning accuracy and product quality.

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.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
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.
山东大学齐鲁软件学院 1 Chapter 9 Managing Schedules. 山东大学齐鲁软件学院 2 In the chapter  How to develop schedules to track the progress of your work.  How to use checkpoints.
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.
Aplicaciones de Ingeniería de Software
Aplicaciones de Ingeniería de Software
LSU 10/09/2007Project Schedule1 The Project Schedule Project Management Unit #4.
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.
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.
N By: Md Rezaul Huda Reza n
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.
Chapter 12 Defects. 山东大学计算机学院 2 In the chapter  Concept of Defects  Defects and software quality  What is Defect?  Defects versus Bugs  Defect types.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
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.
Project Monitoring ( 监测 ) And Control Presented by Basker George.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
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.
Quality Planning And Defect Estimation Presented by Basker George.
Lecture 4 Software Metrics
1 复习. 2 Main Three Elements  Plan  Period plan  product plan  Project Plan  Measure  Size measurement  defect measurement  quality measurement.
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 #8 Software Engineering.
Software Engineering Prof. Dr. Bertrand Meyer March–June 2007 Chair of Software Engineering Lecture 2: The Personal Software Process.
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.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
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.
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.
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.
SE-280 Dr. Mark L. Hornick 1 Design and Code Reviews Review Checklists.
Chapter 19 Process Quality. 山东大学计算机学院 2 outline  Then meaning of process quality  Process measurement  COQ  Failure costs, Appraisal costs, Prevetion.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Chapter 3: Software Project Management Metrics
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.
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.
INFO 637Lecture #71 Software Engineering Process II Product Implementation INFO 637 Glenn Booker.
CSE SW Project Management / Module 15 - Introduction to Effort Estimation Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M15.
Personal Design and Development Software Process PD 2 SP “The unexamined life is not worth living.” Plato.
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M15 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
CSC 205 Programming II Lecture 1 PSP. The Importance of High-Quality Work Three aspects to doing an effective software engineering job producing quality.
TMP3413 Software Engineering Lab Lab 01: TSPi Tool Support.
Software Engineering Lab Session
A possible solution: Personal Software Process (PSP)
The role of Planning in the Software Development Process
Presentation transcript:

Chapter 15 Projecting Defects( 缺陷预测 )

山东大学齐鲁软件学院 2 outline  Analyze and use your defect data to help improve both planning accuracy and product quality.  Determine how best to prevent or find the defects you inject.  Control the quality of your work.

山东大学齐鲁软件学院 3 Defect rates  Defect injection rate typically range from about 50~250 defects per KLOC.  With Figure15.1 & 15.2 shown:  Defect density as a function of the years.  Some quality practices learn with experience.  defect levels are largely a matter of personal discipline.  After PSP training, engineers understood the numbers and types of defects. And then reduced their total defect injection rates.

山东大学齐鲁软件学院 4 Defect rates number are big!  Defect injection is a natural consequence of being human.  Average 100 defects/KLOC  About 50 defects/KLOC after PSP training.  So there are 50,000 defects in a 1,000,000 LOC program.  All of them must be found and fixed before delivery.

山东大学齐鲁软件学院 5 Using defect data  Gather defects data---help understanding the defects you inject to your program.  Design a personal checklist---for code reviewing to remove defects.  Establish a code standard---help to prevent defects injected in coding.  Then what’s our next step? what’s our final goal?

山东大学齐鲁软件学院 6 Using Defect Data  Task: Using historical defect data to make a reasonably good projections of the number of defects you will inject and remove in each phase of a programming project.  Advantage: By accurate estimates of defect levels, you can determine the likely quality of the program being developed. Then you can decide whether additional defect-removal steps are needed.  The final goal---defect-free programming, can not be achieved only by estimate, it should be approached by systematic work and step by step.  Defects collect,  Defect remove and prevent---code review and code standard,  Defect estimate. Someday you will likely work on a project where defect-free work is essential!

山东大学齐鲁软件学院 7 Defect density  Defect density(Dd): the defects per thousand lines of code, measured by defects/KLOC.  Add up the total numbers of defects found.  Count the number of new and changed LOC  Calculate the defects per KLOC  Be sure not include library routine and copy part in counting LOC.

山东大学齐鲁软件学院 8 The calculation of Dd  Add up the total number of defects(D) found in all phases of the process,  Count the number(N) of new and changed LOC in the program,  Calculate the defects per KLOC as Dd = 1000*D/N.  For example, a 96 LOC program had a total 14 defects, then Dd = 1000*14/96 = defects/KLOC.

山东大学齐鲁软件学院 9 Projecting Defects  Projecting defects  and then finally we achieve that we have ability to write a defect-free program  Then how to project defects in your program?  Plan Time  Plan project schedule  Then can defects be planned?

山东大学齐鲁软件学院 10 Difficulties of Projecting Defects Rates  Without experiences  Not be sure how some function or procedures works  Confused by language construct  Encounter new compiler or new programming enviroments  Solution:  Make more practices, to improve your skills and enrich your experience of programming  Gather and analyze defects data to continue improving.

山东大学齐鲁软件学院 11 Difficulties of Projecting Defects Rates  The process is not stable  The process is a new method and procedure to you,  defects injected, defects fix time are all fluctuating, especially defects fix may inject defect again.  Solution:  Improve the process by spending sufficient time on code reviewing to settle down the process.

山东大学齐鲁软件学院 12 Defect estimation  Using data of previously developed programs to calculate the D plan  Dd plan = 1000*(D 1 +D 2 +…+D i )/(N 1 +N 2 +…+N i )  D plan = N plan *Dd plan /1000 ,  or D plan = N plan *D to date /N to date.  The calculation of expected number of defects to be injected and removed in each phase.  D phase = D planned total *D to date % /100.

山东大学齐鲁软件学院 13 The updated project plan summary form and example  By using the project plan summary of a most previously developed program, make time plan and defect plan first.  Then by actual data, to complete the project plan summary for the new developed program.  Calculate the plan data  Calculate the To Date data  Entering the actual data

山东大学齐鲁软件学院 14 project plan summary

山东大学齐鲁软件学院 15 project plan summary

山东大学齐鲁软件学院 16 project plan summary

山东大学齐鲁软件学院 17 summary  Defect density.  Estimate defects injected.

山东大学齐鲁软件学院 18 Assignment  For the next program you write:  Determine the defects/KLOC rate and estimate the defects to be injected and removed by phase.  Inter these data in project plan summary.

Chapter 16 The Economics of Defect Removal

山东大学齐鲁软件学院 20 outline  It’s trade-offs ( 平衡 )between cost, schedule and quality;  It concerns three aspects:  The relative costs of removing defects during development;  The impact of any remaining defects on the customer;  The resulting customer support costs.  Hence, it’s a trade-off of risk and benefit.

山东大学齐鲁软件学院 21 The need for quality work  Defect-free software: no extra costs for defect removal, no risk for potential costs. But it’s always a final goal since the beginning of software development.  Defect removal costs a lot, especially in later phase.  Defect removal lowers benefit explicitly sometimes.  Defect removal does not bring benefit, but it can lower risk implied by remaining defects.

山东大学齐鲁软件学院 22 Defect-Removal problem  Defect-Removal is a software size and complexity related work.  The size and complexity of software system has increased ten times every ten years.  Laser printer driver: 20, 000 LOC million LOC;  More and more application, more and more complex;

山东大学齐鲁软件学院 23 Measurement of defect-removal  Measure defect-removal effectiveness  Defect-Removal Rate: number of defects removed in one hour.  Defect-Removal Yield( 效益 ): Percentage of the defects found by a removal method.

山东大学齐鲁软件学院 24 Defect-Removal Time  Defect types  Requirement defect;  Design defect;  Coding injected defects  Defect-removal moment  Code reviewing;  Compiling;  Testing: Unit test and integrated test.  Varying from several minutes to several days  250 engineers spent a full year on Microsoft NT system test finding and fixing 30,000 defects. This averages 16 hours per defect.

山东大学齐鲁软件学院 25 Defect injection and defect removal experience  The factors which affect the cost of defect- removal  Defect injection;  Defect removal experience  Figure 16.1 shows that bigger defect injection rate is made in coding than in design.  Figure 16.2 demonstrates that defect- removal in testing, code reviewing and compile, and in the phase of code reviewing, one can find more defects than in testing phase.

山东大学齐鲁软件学院 26 Defect Removal Savings  Compare the results of defect- removal with or without PSP. See table 16.1 in Page 214.  With PSP, software engineers have a great time savings.  With PSP, software product has less remaining defects (risks).

山东大学齐鲁软件学院 27 Defects/Hour on the PSP project plan summary  Comparison of defect injection/ removal rates of different phase  Def./Hour = 60*(To date defects injected/removed in one phase)/(To date Time in one phase (Min)).  See example in table 16.2 in page 216

山东大学齐鲁软件学院 28 Yield of defect removing  Def. Removed/Hour: Defects found rate in one phase  Also we would like to know how many defects were found and how many were missed in one defects removing phase--- Yield  Moreover,  Process Yield = the percentage of the defects found before the first compile and test.  That is the percentage of the defects found in review phases (code review and design review), the percentage of the defects found initiatively ( 主动地), not passively (被动地).

山东大学齐鲁软件学院 29 Yield Calculation  Yield plan  Yield actual  Yield To Date  Yield = 100*(Defects removed before compile)/(Defects injected before compile).  See example of calculation in table 16.2

山东大学齐鲁软件学院 30 Improving Defect- Removal Rates  Focus on yield first. First objective must be to consistently achieve yields of 70% or more.  Do the code review before the first compile, and use the compiler to check the quality of your coding review.  Prone your code review checklist to improve your defect removal rates.  One definition of insanity is doing the same thing over and over and expecting a different result [Brown].

山东大学齐鲁软件学院 31 Improving Defect- Removal Rates  gathering defects data  Calculating yield and defect-injection and defect-removal rates  Track these data in your programming practices.  One Objective of this doings: Making you conscious of the costs and consequences of defects, and then do the code review initiatively and efficiently.

山东大学齐鲁软件学院 32 Reducing Defect- Injected Rates  Record all your defects.  Be aware of defects, you will work more carefully and will reduce the number of defects of defects you inject.  Produce better design  Design process runs on the high level, more logically than coding, thus one makes less defects within the same time in design than in coding phase.  A complete and better-documented design will prevent defects injection in coding phase.  Frame guided  Save coding time

山东大学齐鲁软件学院 33 Reducing Defect- Injected Rates  Use better methods.  Objected oriented method  UML (Unified modeling language) and use case  Consistent coding convention.  Use better tools  Integrated programming environment  Visual interface of programming.

山东大学齐鲁软件学院 34 Summary  Defects are a principal cause of software problems. The remaining defects may lead severe consequences.  Defect fixing costs money and delays project schedules, and the defect fix times are unpredictable. So defect management is a economic issue.  Therefore, we need capture the key points in defects removing, improve defect removal rates and yield.  On the other hand, we need to reduce the defects injection rate by using better design, methods and tools.

山东大学齐鲁软件学院 35 Two measurements  Defects/Hour  Yield