Www.ischool.drexel.edu INFO 636 Software Engineering Process I Prof. Glenn Booker Week 8 – Reviews 1INFO636 Week 8.

Slides:



Advertisements
Similar presentations
Lecture Roger Sutton 21: Revision 1.
Advertisements

1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
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.
Sponsored by the U.S. Department of Defense © 2002 by Carnegie Mellon University July 2002 Pittsburgh, PA Lecture 6: Team Planning.
INFO 425 Week 31 INFO 425 Design Problem I Week 3 – SDS Improvements Glenn Booker.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Important concepts in software engineering The tools to make it easy to apply common sense!
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.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
CS 350: Introduction to Software Engineering Slide Set 5 Software Quality C. M. Overstreet Old Dominion University Spring 2006.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Implementation. We we came from… Planning Analysis Design Implementation Identify Problem/Value. Feasibility Analysis. Project Management. Understand.
Systems Analysis I Data Flow Diagrams
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Personal Software Process Software Quality CIS 376 Bruce R. Maxim UM-Dearborn.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
INFO 637Lecture #31 Software Engineering Process II Launching & Strategy INFO 637 Glenn Booker.
Conducting Usability Tests ITSW 1410 Presentation Media Software Instructor: Glenda H. Easter.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
1 Software Quality Engineering CS410 Class 5 Seven Basic Quality Tools.
1 Shawlands Academy Higher Computing Software Development Unit.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
Chapter 15 Projecting Defects( 缺陷预测 ). 山东大学齐鲁软件学院 2 outline  Analyze and use your defect data to help improve both planning accuracy and product quality.
INFO 637Lecture #61 Software Engineering Process II Designing with Teams INFO 637 Glenn Booker.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 10: Testing and Inspecting to Ensure High Quality Part 4:
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 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
CS 350, slide set 6 M. Overstreet Old Dominion University Spring 2005.
Program Development Life Cycle (PDLC)
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
BSBPMG505A Manage Project Quality Manage Project Quality Project Quality Processes Diploma of Project Management Qualification Code BSB51507 Unit.
© 1998 Carnegie Mellon UniversityTutorial The Personal Software Process (PSP) The overview of the PSP that follows has been built from material made.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management 1INFO636 Week 9.
INFO 424 Team Project Practicum Week 2 - Launch report, Project tracking, Review report Glenn Booker Notes largely from Prof. Hislop.
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.
INFO 636 Software Engineering Process I Prof. Glenn Booker Weeks 1-2 – Introduction 1INFO636 Weeks 1-2.
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.
The Software Development Process
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
BSBPMG404A Apply Quality Management Techniques Apply Quality Management Techniques Project Quality Processes C ertificate IV in Project Management
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
INFO 637Lecture #71 Software Engineering Process II Product Implementation INFO 637 Glenn Booker.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 10 – Process Definition 1INFO636 Week 10.
TMP3413 Software Engineering Lab Lab 01: TSPi Tool Support.
Get Organized Binders, Homework, Lockers. Binder Organization Use a binder system that works best for you Put you name, address and phone number on the.
Helping Students Examine Their Reasoning
Software Inspections and Testing
Presentation transcript:

INFO 636 Software Engineering Process I Prof. Glenn Booker Week 8 – Reviews 1INFO636 Week 8

INFO636 Week 82 Reviews Conducting reviews of requirements, design, and code is one of the best ways to improve your work’s quality and your productivity Here we’ll look at various types of reviews and how to document them

INFO636 Week 83 Reviews Review types in descending order of formality include –Inspections –Walk-throughs –Personal reviews

INFO636 Week 84 Inspections Inspections follow a structured procedure for evaluating a work product –Fagan inspections are among the best known brand of inspectionFagan inspections Inspections start with preparation, where each participant reviews the work separately, and makes note of defects found

INFO636 Week 85 Inspections Then there’s an inspection meeting to discuss the findings of each participant, and put together a cumulative list of defects Then the work product owner fixes the defects, and puts together a report to say so, in the repair and report phase

INFO636 Week 86 Walk-throughs Walk-throughs require little preparation, except by the work product owner A presentation is given, and participants provide feedback during it Follow-up is informal, with the work product owner responding to the comments received

INFO636 Week 87 Personal reviews Personal review is the work product owner reviewing their own stuff As compiling code has gotten trivially easy, many programmers have dropped reviewing their own work in the hopes that the computer will find their mistakes –Not a good strategy!

INFO636 Week 88 Target of Reviews Any work product can be the subject of reviews –Any document Requirements specification Design models Test plans Internal project processes & procedures –Source code Scripts too!

INFO636 Week 89 Commentary For those taking INFO 637, the Team Software Process uses formal reviews extensively, so pay extra attention! N track people - while the text obviously focuses on reviews related to code, keep in mind that these methods and tools for reviews can be used to plan and conduct reviews for anything

INFO636 Week 810 Why Review Software? The history of the PSP has shown that most people –Initially spend much of their time (30-50%) in compiling and testing –By the end of this course, only about 10% of their time is spent testing Good reviews are a key to reducing testing time

INFO636 Week 811 Review Efficiency Finding and fixing defects is much faster to do in review than in testing –Humphrey found 8x faster fix time in review than testing Code reviews are 3-5 times as efficient at finding defects than testing –Part of the reason is that testing finds symptoms of the defect, which has to be investigated by debugging

INFO636 Week 812 Severity of Review We don’t mean to imply that every piece of code needs exhaustive review Different approaches can be used, depending on the complexity, risk, and importance of the code –Hence you might use inspections for critical code, walk-throughs for typical code, and just personal review for low risk code

INFO636 Week 813 Review Principles Any kind of review process typically follows three principles –Establish defined review goals –Follow a defined process for conducting a review (here, we’ll use scripts) –Measure and improve your review process

INFO636 Week 814 Separate Design and Code Reviews Design and code should be reviewed separately –Forces making a design before coding –It’s hard to decipher design from the code –Helps spot logic errors in design, and identify design improvements –Helps focus review scope

INFO636 Week 815 Design Reviews Make your design reviewable –Follow a standard notation for design, such as UML, DFD, ERD, etc. –Make sure design addresses both functional and non-functional requirements –Follow personal design standards, hopefully in concert with organizational standards

INFO636 Week 816 Design Reviews Follow a design review strategy –Look at various elements of design systematically – don’t try to assess it all at once Design review strategy stages might include –Check for required program elements

INFO636 Week 817 Design Reviews –Examine overall program structure and flow –Check for logical completeness –Check for robustness - handling errors, etc. –Check parameters and types for methods and procedure calls –Check special variables, data types, and files, including aliases

INFO636 Week 818 Design Reviews Check design against the requirements More elaborate inspections might use –A traceability matrix to prove completeness, or –Use formal methods (Z, Larch) to show correctness mathematicallyformal methods

INFO636 Week 819 Measuring Reviews Key basic measures for reviews are –Size of product being reviewed (in pages or LOC) –The review time, in minutes –The number of defects found –And based on later work, the defects that weren’t found by the review

INFO636 Week 820 Measuring Reviews Derived metrics for reviews are –Review yield, the percent of defects found by review Yield = 100*(defects found) / (defects found + defects not found) –Number of defects found per kLOC or page –Number of defects found per hour of review time

INFO636 Week 821 Measuring Reviews –The number of LOC or pages reviewed per hour –Defect Removal Leverage (DRL) The ratio of defects removed per hour for any two phases or activities –DRL(coding) = Defects/hour(coding)/ Defects/hour(design)

INFO636 Week 822 Checklists Checklists are used to help make sure a process or procedure is followed consistently each time A sample code review checklist for C++ is on page 242; variations can be developed for other languages –It has several blank columns so each module can be checked off separately

INFO636 Week 823 Designing Checklists Checklists should be designed so that you have to focus on only one topic at a time –Similar to reviewing a book for grammar versus plot development – it’s hard to look for both at once To use a checklist most effectively, completely review one module

INFO636 Week 824 Using Checklists Different strategies should be considered for different types of reviews –Design review for a large application might prefer to be from the top down –Code review often works better from the bottom up for your code, but top down for someone else’s

INFO636 Week 825 Building Checklists Don’t take the example on p. 242 as the ultimate final perfect most-wonderful-of-all checklist that ever was *breathe* Study the kinds of problems you encounter (in your defect log) to see what you need to emphasize in your checklist –In other words, tailor the checklist for yourself

INFO636 Week 826 Building Checklists The types of defects are given on page 260 – again, consider adapting this to your needs and other languages One way to look for your most common types of defects is to lump all your defect logs together, and generate a Pareto chart by defect type

INFO636 Week 827 Building Checklists A refined defect type list is shown on page 262; you can use a Pareto diagram to figure out which kinds of defects you need to expand upon This also connects to the coding standard developed ages ago – you can use lessons learned from defect analysis to help refine the coding standard

INFO636 Week 828 Review Before or After Compile? A contentious issue in PSP is whether to review code before compile or after –A non-issue in some languages, which aren’t compiled! In Humphrey’s experience, about 9% of all syntax errors aren’t caught by a compiler, so don’t expect it to catch everything

INFO636 Week 829 Reviews vs. Inspections As a matter of courtesy, make sure a program or document is in pretty good shape before submitting it for review or inspection –Very formal inspections might require code to pass unit testing, and show test results as part of the inspection –Humphrey doesn’t like testing before inspection, however

INFO636 Week 830 (P track) Report R4 Report R4 (p. 771) analyzes the defects from all the previous assignments Tasks are: –Develop a process and scripts to create your report –Follow that process and show the completed report

INFO636 Week 831 (P track) Report R4 Sample contents of the report should include, at a minimum –An analysis of estimating accuracy for size and time for the programs to date –Analysis of defects injected and removed, using table D23 as an example –Analysis of defects found by the compiler (if any), ala table C24

INFO636 Week 832 (P track) Report R4 –Analysis of defect fix times, using table D22 again –Develop a design checklist for use during design review –Develop a code checklist for use during code review –Discuss the results of the report, and set improvement goals for yourself

INFO636 Week 833 (P track) Report R4 Use graphs where possible, but don’t forget to discuss the trends observed on them –A graph with no discussion is lonely  This report is the culmination of the PSP 1.x level of process, leading us to PSP 2