SE-280 Dr. Mark L. Hornick 1 Design and Code Reviews Review Checklists.

Slides:



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

SE-280 Dr. Mark L. Hornick 1 Software Engineering Process Based on what you have learned so far… What is your current development process? What can you.
Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
Chapter 4 Quality Assurance in Context
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.
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.
Exceptions CIS 304 Intermediate Java Programming for Business.
CS 350: Introduction to Software Engineering Slide Set 5 Software Quality C. M. Overstreet Old Dominion University Spring 2006.
Questions? Cycle 1 Process details Process Dashboard Coding vs. Testing ??? SE-280 Dr. Mark L. Hornick 1.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
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.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Personal Software Process Software Quality 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.
Chapter 15 Projecting Defects( 缺陷预测 ). 山东大学齐鲁软件学院 2 outline  Analyze and use your defect data to help improve both planning accuracy and product quality.
Applying the Inspection Process. What Software Artifacts Are Candidates for Inspection? Software Requirements Software Designs Code Test Plans.
SE-280 Dr. Mark L. Hornick Design Review Issues. SE-280 Dr. Mark L. Hornick 2 Many expensive defects are a result of design problems Software applications.
SE-280 Dr. Mark L. Hornick 1 Process Adaptations.
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.
SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software.
CS 350, slide set 6 M. Overstreet Old Dominion University Spring 2005.
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.
Testing Vs. Inspection Research Paper Diala T. Gammoh, Ph.D. Student Dr. Damla Turgut, Ph.D. University of Central Florida, Orlando Florida
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
As Class Convenes l Find your team’s table and have a seat l Pick up Team’s Modeling Folder l Remove Chapter 1 Assignment l Place your Chapter 2 Assignment.
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.
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.
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.
Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview.
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.
SE-280 Dr. Mark L. Hornick 1 SE-280 Software Engineering Process Dr. Mark L. Hornick web: myweb.msoe.edu/hornick SE280 info syllabus,
Chapter 4 프로세스 모델 Process Models
Chapter 19 Process Quality. 山东大学计算机学院 2 outline  Then meaning of process quality  Process measurement  COQ  Failure costs, Appraisal costs, Prevetion.
Apply Quality Management Techniques Project Quality Processes Certificate IV in Project Management Qualification Code BSB41507 Unit Code BSBPMG404A.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
BSBPMG404A Apply Quality Management Techniques Apply Quality Management Techniques Project Quality Processes C ertificate IV in Project Management
Carnegie Mellon Software Engineering Institute © 2006 by Carnegie Mellon University Software Process Performance Measures James Over Software Engineering.
Introduction to the Personal Software Process. Overview Process Fundamentals PSP Concepts and Structure PSP Planning and Measurement PSP Quality Management.
Efficiently Solving Computer Programming Problems Doncho Minkov Telerik Corporation Technical Trainer.
Final Report Goals and Objectives. SE-280 Dr. Mark L. Hornick 2 PSP Self-review questions How good is my process? Where can it be improved? What is the.
Software Process Models.
SE-280 Dr. Mark L. Hornick 1 Measuring Software Size.
Personal Software Process Team Software Process
Software Economics Phase Yield
Software Quality Engineering
Looping and Repetition
The role of Planning in the Software Development Process
SE-1011 Slide design: Dr. Mark L. Hornick Instructor: Dr. Yoder
Testing, Inspection, Walkthrough
Looping and Repetition
Presentation transcript:

SE-280 Dr. Mark L. Hornick 1 Design and Code Reviews Review Checklists

SE-280 Dr. Mark L. Hornick 2 Compared to reviews, defect removal in later phases is much more expensive.

SE-280 Dr. Mark L. Hornick 3 Design and code reviews are used to find and fix defects early in the development process. Inspections Walkthroughs Reviews Appraisal methods While unit test rarely has a yield above 50% (industry data, not PSP), experienced reviewers often achieve a yield of 70%. In the PSP, we use only personal reviews; the TSP incorporates team inspections. Reviews generally remove defects more efficiently than testing.

SE-280 Dr. Mark L. Hornick 4 PSP data from SEI and MSOE students confirm the efficiency of code reviews. Note: "compile" values in MSOE data reflect C++, not Java.

SE-280 Dr. Mark L. Hornick 5 To understand the advantage of reviews over testing, let's look at how each handles a defect. ReviewTest Defect existence Understand context Identify cause & how to fix Implement fix time See it Get unexpected result KnownSearch Already knownDebug, isolate FastSlow

SE-280 Dr. Mark L. Hornick 6 Appraisal/Failure Ratio Data from previous SE-280

SE-280 Dr. Mark L. Hornick 7 Defect Removal Efficiency Unit test 2-4 defects/hour Rarely more than 50% found Code reviews 10 defects/hour Experienced reviewers - 70% found 2-5 times as many defects/hour as unit test!

SE-280 Dr. Mark L. Hornick 8 Let's try calculating system test time, based on different assumptions for review yield. Assume that 20 defects are injected in design, and 30 in coding, for a total of 50 defects. Development phase 1 Development phase 2 Development phase 3

SE-280 Dr. Mark L. Hornick 9 PSP reviews make use of Checklists, which are based on historical defect data. Past mistakes -> present mistakes Structures the process

SE-280 Dr. Mark L. Hornick 10 public class Data { Once you have a checklist and the product to be reviewed, how should you proceed? public class Gui {public class Calc { Method arguments Initialization Loop conditions Library usage Checklist format?

The format of a checklist reflects the review process approach. Checklist item"Calc""GUI""Data" 1Copy/paste errors 2Field/var/param initialization 3Check params for method preconditions 4All possible exceptions handled? 5Check for possible null object references In each cell: Enter # of defects found, zero, or "N/A"

How do we manage the quality of our reviews? What can we do earlier in the process (Planning, DLDR, CR)? In postmortem, we can calculate the review yields, but then it is too late to do anything about them! Planning Design DLDR Coding CR Compile UT PM Review rate General guideline: < 200 LOC/hour

When reviewing designs or code, some "minor" details can make a big difference. "Paper or plastic?" Take a break! Reviewing a printed listing, away from your computer, often makes defects more visible. Reviews are more effective if they don’t immediately follow creation of the artifact being reviewed.

SE-280 Dr. Mark L. Hornick 14 Why Checklists again? They help execute precise tasks Difficult to keep track of doing many separate things A Review Checklist: Defines review steps, in order Stages review progress Can be customized to your own defect experience

Personal checklists often combine your personal defect "favorites" with some "standard" categories. Your midterm report defect analysis should suggest some defect categories worth looking out for. You may also get some good ideas from the sample checklists in the textbook (pages 175 and 184). Make your checklist complete enough to support a thorough review.

SE-280 Dr. Mark L. Hornick 16 Next steps Analyze your own Quality Data – Midterm report PD already calculates: Test defects/KLOC Total defects/KLOC Yield Appraisal COQ (%) Failure COQ (%) COQ A/F ratio Action Modify your personal process Analyze again - Final report) Results & Conclusions

SE-280 Dr. Mark L. Hornick 17 Midterm Assignment reading Review textbook pages Download sample code review checklist. Review the midterm report assignment. Carefully review requirements.

One part of the midterm report assignment is designing and executing a "report process". Planning ?? PM Process phasesSize measure(s)? Pages, sections? Charts, tables? In Process Dashboard, add/rename generic phases in the "Midterm Report" project. Why are we doing this, anyway?