software development tools and processes
play

Software Development: Tools and Processes Lecture - 11: Personal - PowerPoint PPT Presentation

Software Development: Tools and Processes Lecture - 11: Personal Software Process Personal Software Process (PSP) - Defects Defect Injection vs. Defect Removal People make Errors which create Defects in Programs Can we train people to


  1. Software Development: Tools and Processes Lecture - 11: Personal Software Process

  2. Personal Software Process (PSP) - Defects • Defect Injection vs. Defect Removal • People make Errors which create Defects in Programs Can we train people to stop injecting defects? • Defect Prevention vs. Defect Removal PSP focuses on Defect Removal

  3. Personal Software Process (PSP) - Defects To-date time / To-date size Count & enter defects injected in each phase Calculate To- Count & enter date & To-date % defects removed in each phase

  4. Code Review before Compile • Review takes time irrespective of the sequence • Saves compile time • Reviews are generally not thorough, after the compile Project Plan should include resources for Code Reviews

  5. Personal Software Process (PSP) - Finding defects • Find the type of defect (syntax, design, interface etc.) and then improve using Pareto principle We find defects through code review and testing Which one will be more efficient ? Any Relationship between compile defects and unit test defects? Peer Reviews or Inspections are effective tool for find defects

  6. Data on compile and test defects • Relation in Compile and Test Defects • Relation in Compile and Post Development Defects

  7. Personal Software Process (PSP) - Finding defects Methods to find defects (coding) • Compiler can be used – Provides only symptoms not the defects • Testing can be done for finding defects – Finds symptoms not the defects – Only those defects will be found for which the test cases are prepared? – Time consuming activity • Review the source code – Do it before the first compile – More efficient because we find actual problems – Efficiency can be improved with practice • Let the user test the program and report errors – Is it a good idea? Defective program can be repaired but it will be less robust

  8. What do you understand by coding standards?

  9. Personal Software Process (PSP) - Code review check lists • We can make code review more effective by using a checklist • Steps for making a checklist • Add the most frequently occurring defects in checklist • With experience add more defects • Make group of similar checks • Trim the checklist over time Check lists helps you ensure that a procedure is followed

  10. Sample Check List

  11. Personal Software Process (PSP) - Projecting Defects • Once we have gathered defect data then we should be able to analyze that data • Defect data is used to estimate the number of defects which will be injected in next program • Project Plan Summary: Defect/KLOC • Defect injection data also enables the engineers to understand the type of defects they are injecting • Fluctuating defect injection and removal numbers indicate that …..

  12. Personal Software Process (PSP) - Projecting Defects • Experience in coding has no direct relation to defect injection • There is not much improvement in defect injection with passage of time • After PSP training, the defect injection goes down

  13. Personal Software Process (PSP) - Projecting Defects

  14. Personal Software Process (PSP) - Projecting Defects From previous prog. To-date Total defect / actual size * 1000 Plan Defects/Kloc/ plan Loc/1000 Use to-date % for phases Estimated total defects

  15. Understanding the concept • What is Defect / KLoc • What is planned defect injection in phases • What is planned defect removal in phases • What is the significance of To Date • What is the significance of To Date % Now you may want to remove the data of earlier few programs to have more realistic projections

  16. Defect Removal Economics • Defect removal is expensive because defects are hard to find and fix • To control cost we should know about defect removal effectiveness and distribution • Defect removal metric = Defect Removed / Hour • Defect removal yield = % defects found by removal method • Why should we calculate Defect Removal Yield? If defect injection rate > defect removal rate then its called race condition

  17. Defect Removal Economics • Few minutes are spent in personal code review • Unit test take more time but the average is about half an hour • Inspections are effective way of finding the defects. This takes more time than personal inspections and code reviews • Testing by others take a lot of time and effort Now we should be able to have a plan to reduce the total time spent in removing defects effectively

  18. Defect Removal Economics 250 Engineers on the Microsoft NT system spent a full year in system test finding and fixing 30,000 defects. This averages 16 hours per defect Even after the release, Microsoft released a lots of bug fixes in the form of updates and service packs

  19. Defect Removal Economics

  20. Defect Removal Economics

  21. Defect Removal Economics Improve defect removal rate • Focus on the yield – try to achieve yield of 70% or more • Do code reviews before the first compile • Improve the review rates by adjusting the check lists – the steps which don’t find the defects, drop them – add new steps for finding defects If you keep on using the same inputs, you are likely to get the same output. Therefore, unless you change the way you work, you cannot expect better results

  22. Defect Removal Economics How to reduce defect-injection rate? • Record all of your defects • Produce better designs – design should be complete and well documented • Use better methods – improve the way you work to do a project – focus on all the phases of SDLC • Use better tools – to develop the programs and tracking your injected defects

  23. Product Quality • Each defect removal method acts as filter • Such method removes some percentage of defects X Y Defect Filter • If Y = .4 x then what is the efficiency of defect filter? • Phase Yield = defect removed in phase x 100 defects at phase entry • Rule of thumb: No of defects in product is equal to number of defects found in last removal phase • We can calculate yield of different phases • process yield = % of defects found before first compile

  24. Design Defects • What constitutes a design? • Examples of design defects • Include defects for architecture, logic, functions, performance, timing, etc. • Design has different abstraction levels • Causes of design defects • Design mistake • Simple Error • Misunderstood requirements • Inadequate context understanding • Design representation • Graphical representation • Pseudo code • Mathematical models

  25. Product Quality

  26. Product Quality

  27. Product Quality

  28. How can we measure the process quality?

  29. Process Quality • In PSP we measure the process quality by Defect Injection and Defect Removal • Cost of Quality • COQ = failure cost + Appraisal cost + Prevention cost • Failure: time spent in fixing defects • Appraisal: time spent in finding defects • Prevention: time spent to stop defect injection • In PSP Appraisal cost : Review time • Failure Cost : compile time and test time • Cost of Quality is the percentage of total time

  30. Appraisal to failure ratio • Appraisal to Failure Ratio - A/FR • What is the significance of A/FR? • We should increase the A/FR until the yield reaches 80% or more

  31. Appraisal to failure ratio

  32. Appraisal to failure ratio

  33. Appraisal to failure ratio

Recommend


More recommend