Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture.

Similar presentations


Presentation on theme: "Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture."— Presentation transcript:

1 Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture 13

2 J. Nawrocki, PSP, Lecture 13 From the previous lecture.. Philip Crosby’83: conformance to requirements Software quality

3 J. Nawrocki, PSP, Lecture 13 From the previous lecture.. Quality of design Quality of conformance Software quality

4 J. Nawrocki, PSP, Lecture 13 From the previous lecture.. The relative time to identify defects (IBM): during design reviews: 1during design reviews: 1 during code inspections: 20during code inspections: 20 during machine test: 82during machine test: 82 Some fix time data

5 J. Nawrocki, PSP, Lecture 13 From the previous lecture.. JPL, average cost per defect: inspections: $90 - $120inspections: $90 - $120 tests: $10 000tests: $10 000Conclusions: Remove most of the defects before testing Some fix cost data

6 J. Nawrocki, PSP, Lecture 13 From the previous lecture.. An experienced software engineer injects ~ 100 defects per KLOCAn experienced software engineer injects ~ 100 defects per KLOC Half these defects are found by the compilerHalf these defects are found by the compiler To find a defect it takes hours (industry data)To find a defect it takes hours (industry data) The yield of the review or inspection: ~ 70%The yield of the review or inspection: ~ 70% Average cost of inspections: 0.5 hours/defectAverage cost of inspections: 0.5 hours/defect ErrorError Planning data

7 J. Nawrocki, PSP, Lecture 13 From the previous lecture.. Education: don’t understandEducation: don’t understand Communication: not properly informedCommunication: not properly informed Oversight: omitted doing somethingOversight: omitted doing something Transcription: knew but made a mistakeTranscription: knew but made a mistake Process: due to the processProcess: due to the process Basic defect causes Should be “to”, not “too” !!!

8 J. Nawrocki, PSP, Lecture 13 { n+=NF; } { n+=NF; } END { print n; } Review methods InspectionInspection (very formal) (very formal) Walk-throughWalk-through (a presentation) (a presentation) Personal reviewPersonal review (DIY) (DIY)

9 J. Nawrocki, PSP, Lecture 13 Fagan inspections Design Code Test External specifications (function) Internal specifications (module) - I 0 Logic specifications (logic) - I 1 design inspec Coding (logic) - I 2 code inspec Unit testing The lifecycle Function, component, system test

10 J. Nawrocki, PSP, Lecture 13 Fagan inspections Other inspections: IT 1 - test plan inspection IT 2 - test case inspection PI 0, PI 1, PI 3 - publication inspections

11 J. Nawrocki, PSP, Lecture 13 Fagan inspections DesignDesignCodeCodeUnittestUnittest I1I1 I2I2 I3I3 Net savings (hours/KLOC): I 1 : 94 I 2 : 51 I 3 : -20

12 J. Nawrocki, PSP, Lecture 13 Designer Fagan inspections Implementor Moderator Tester Review session

13 J. Nawrocki, PSP, Lecture 13 Fagan inspections 1. Overview (whole team) 2. Preparation (individual) 3. Inspection (whole team) 4. Rework 5. Follow-up Designer Implem. Moderator Tester Review session

14 J. Nawrocki, PSP, Lecture 13 Fagan inspections Overview (whole team) 500 not necessary Preparation (individual) Inspection (whole team) Rework Follow-up - - I1I1I1I1 I2I2I2I2 Rate of progress (loc/h) Inspection session <= 2 hoursInspection session <= 2 hours sessions per day1 - 2 sessions per day

15 J. Nawrocki, PSP, Lecture 13 Fagan inspections CD: CB definition CU: CB usage IC: Interconnect calls LO: Logic MD: More detail MN: Maintainability OT: Other PE: Performance PR: Prolog... Design error types Question: What should be the design error types for UML?

16 J. Nawrocki, PSP, Lecture 13 Fagan inspections CC: Code comments CU: CB usage DE: Design error IC: Interconnect calls LO: Logic MN: Maintainability OT: Other PE: Performance PR: Prolog... Code error types Question: What should be the design error types for Java or HTML?

17 J. Nawrocki, PSP, Lecture 13 Fagan inspections Are all constants defined? If a queue is being manipulated, can the execution be interrupted; If so, is queue protected by a locking structure? Are registers being restored on exits? Are all increment counts properly initialised (0 or 1)? Are absolutes shown where there should be symbolics? Are all blocks shown in design necessary? Checklist for design inspection Ex Wr Missing

18 J. Nawrocki, PSP, Lecture 13 Fagan inspections Is correct condition tested? Is correct variable used or test? Is each branch target correct? Is the most frequently exercised test leg the THEN clause? Are all required parameters passed set correctly? Does the inline expansion contain all required code? Checklist for code inspection Test branch Interconnect

19 J. Nawrocki, PSP, Lecture 13 Fagan inspections PR/M/Min L3: the prologue in the REMARKS section needs expansion. section needs expansion. LO/W/Maj L172: NAME-CHECK is performed one time too few. time too few. DE/W/Min L175: the design should allow for the occurrence of a period in a last occurrence of a period in a last name. name. Error list

20 J. Nawrocki, PSP, Lecture 13 Fagan inspections CC: Code comments CU: CB usage DE: Design error IC: Interconnect calls LO: Logic MN: Maintainability OT: Other PE: Performance PR: Prolog Major Minor Major Minor M W E M W E M W E M W E Date Code inspection report Mod/Mac: Total

21 J. Nawrocki, PSP, Lecture 13 Active design reviews Parnas and Weiss, 1985Parnas and Weiss, 1985 Questions posed by the author of the design - to encourage a thorough reviewQuestions posed by the author of the design - to encourage a thorough review Several brief reviews focusing on a part of a work product (part of a design document)Several brief reviews focusing on a part of a work product (part of a design document)

22 J. Nawrocki, PSP, Lecture 13 Phased inspections 1 Compliance with required internal documentation format. Also spelling and grammar can be checked here. 2. Source code layout. 3. Readability. 4. Good programming practice (gotos, global variables,..). 5. Correct use of various programming constructs (updating control variables for while, closing files,...). 6. Functional correctness.

23 J. Nawrocki, PSP, Lecture 13 Phased inspections Defects: indigenousindigenous seededseeded

24 J. Nawrocki, PSP, Lecture 13 Summary Fagan inspection are a formal and rigorous method of checking quality. Inspections are a basic tool in software quality assurance. Some aspects of Fagan inspections are outdated and their should be updated.

25 J. Nawrocki, PSP, Lecture 13 Further readings M. Fagan, “Design and Code Inspections..”, IBM System J., vol. 15, no.3, 1976, IBM System J., vol. 15, no.3, 1976, M. Fagan, “Advances in Software Inspections”, IEEE TSE, vol. SE-12, no. 7, IEEE TSE, vol. SE-12, no. 7, J.C. Knight, E.A. Myers, An improved inspection technique, CACM, vol. 36, No.11, Nov. 1993, technique, CACM, vol. 36, No.11, Nov. 1993, pp pp

26 J. Nawrocki, PSP, Lecture 13 Quality assessment 1. What is your general impression ? (1 - 6) 2. Was it too slow or too fast ? 3. Did you learn something important to you ? 4. What to improve and how ?


Download ppt "Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture."

Similar presentations


Ads by Google