Software Reviews Copyright, 1999 © Jerzy R. Nawrocki [email protected] Personal Software...
-
Upload
brenna-hopton -
Category
Documents
-
view
219 -
download
0
Transcript of Software Reviews Copyright, 1999 © Jerzy R. Nawrocki [email protected] Personal Software...
Software ReviewsSoftware Reviews
Copyright, 1999 © Jerzy R. Nawrocki
[email protected]@put.poznan.pl
www.cs.put.poznan.pl/jnawrocki/www.cs.put.poznan.pl/jnawrocki/mse/psp/mse/psp/
Personal Software Process Personal Software Process
Lecture 13Lecture 13
J. Nawrocki, PSP, Lecture 13
From the previous lecture ..From the previous lecture ..
Philip Crosby’83Philip Crosby’83: : conformance to conformance to requirementsrequirements
Software qualitySoftware qualitySoftware qualitySoftware quality
J. Nawrocki, PSP, Lecture 13
From the previous lecture ..From the previous lecture ..
Quality of designQuality of design
Quality of conformance
Software qualitySoftware qualitySoftware qualitySoftware quality
J. Nawrocki, PSP, Lecture 13
From the previous lecture ..From the previous lecture ..
The relative time to identify The relative time to identify defects (defects (IBMIBM):):
• during design reviews: 1during design reviews: 1
• during code inspections: 20during code inspections: 20
• during machine test: 82during machine test: 82
Some fix time dataSome fix time dataSome fix time dataSome fix time data
J. Nawrocki, PSP, Lecture 13
From the previous lecture ..From the previous lecture ..
JPLJPL, average cost per defect:, average cost per defect:• inspections: $90 - $120inspections: $90 - $120• tests: $10 000tests: $10 000
Conclusions:Conclusions:
Remove most of the defects Remove most of the defects before testingbefore testing
Some fix cost dataSome fix cost dataSome fix cost dataSome fix cost data
J. Nawrocki, PSP, Lecture 13
From the previous lecture ..From the previous lecture ..
• An experienced software An experienced software engineer injects ~ engineer injects ~ 100 defects100 defects per KLOCper KLOC
• Half these defects are found by Half these defects are found by the the compilercompiler
• To find a defect it takes To find a defect it takes 3 - 203 - 20 hourshours (industry data) (industry data)
• The yield of the review or The yield of the review or inspection: ~ inspection: ~ 70%70%
• Average cost of inspections: Average cost of inspections: 0.5 hours/defect0.5 hours/defect
ErrorErrorErrorError
Planning dataPlanning dataPlanning dataPlanning data
J. Nawrocki, PSP, Lecture 13
From the previous lecture ..From the previous lecture ..
• EducationEducation: don’t understand: don’t understand
• CommunicationCommunication: not properly : not properly informedinformed
• OversightOversight: omitted doing : omitted doing somethingsomething
• TranscriptionTranscription: knew but made : knew but made a mistakea mistake
• ProcessProcess: due to the process: due to the process
Basic defect causesBasic defect causesBasic defect causesBasic defect causes
Should be “to”,Should be “to”,not “too” !!!not “too” !!!
J. Nawrocki, PSP, Lecture 13
{ n+=NF; }{ n+=NF; }
END { print n; }END { print n; }
Review methodsReview methods
• InspectionInspection
(very formal)(very formal)
• Walk-throughWalk-through
(a presentation)(a presentation)
• Personal reviewPersonal review
(DIY)(DIY)
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspectionsD
esig
nD
esig
nC
ode
Cod
eT
est
Tes
t
External specifications (function)External specifications (function)
Internal specifications (module) - Internal specifications (module) - II00
Logic specifications (logic) - Logic specifications (logic) - II11 design inspec design inspec
Coding (logic) - Coding (logic) - II22 code inspec code inspec
Unit testingUnit testing
The lifecycleThe lifecycleThe lifecycleThe lifecycle
Function, component, system testFunction, component, system test
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
Other inspections:Other inspections:
ITIT11 - test plan inspection - test plan inspection
ITIT22 - test case inspection - test case inspection
PIPI00, PI, PI11, PI, PI33 - publication inspections - publication inspections
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
DesignDesignDesignDesign CodeCodeCodeCodeUnitUnit
testtestUnitUnit
testtestI1 I2 I3
Net savings (hours/KLOC):Net savings (hours/KLOC):
II11: 94: 94
II22 : 51 : 51
II33 : : -20-20
J. Nawrocki, PSP, Lecture 13
Design
er
Design
er
Fagan inspectionsFagan inspections
Implem
entor
Implem
entor
Mod
erat
or
Mod
erat
or Tester
Tester
Reviewsession
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
1. Overview (whole team)1. Overview (whole team)
2. Preparation (individual)2. Preparation (individual)
3. Inspection (whole team)3. Inspection (whole team)
4. Rework4. Rework
5. Follow-up5. Follow-up
Design
er
Design
er Implem
.
Implem
.
Mod
erat
or
Mod
erat
or Tester
Tester
Reviewsession
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
Overview (whole team) 500 not necessaryOverview (whole team) 500 not necessary
Preparation (individual) 100 125Preparation (individual) 100 125
Inspection (whole team) 130 150Inspection (whole team) 130 150
Rework 50 60Rework 50 60
Follow-up - -Follow-up - -
II11 II22
Rate of progress (loc/h)Rate of progress (loc/h)
• Inspection session <= 2 hoursInspection session <= 2 hours• 1 - 2 sessions per day1 - 2 sessions per day
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
CD: CB definitionCD: CB definition
CU: CB usageCU: CB usage
IC: Interconnect callsIC: Interconnect calls
LO: LogicLO: Logic
MD: More detailMD: More detail
MN: MaintainabilityMN: Maintainability
OT: OtherOT: Other
PE: PerformancePE: Performance
PR: PrologPR: Prolog ... ...
Design error typesDesign error types
Question:Question:
What should beWhat should be
the design error typesthe design error types
for UML?for UML?
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
CC: Code commentsCC: Code comments
CU: CB usageCU: CB usage
DE: Design errorDE: Design error
IC: Interconnect callsIC: Interconnect calls
LO: LogicLO: Logic
MN: MaintainabilityMN: Maintainability
OT: OtherOT: Other
PE: PerformancePE: Performance
PR: PrologPR: Prolog ... ...
Code error typesCode error types
Question:Question:
What should beWhat should be
the design error typesthe design error types
for Java or HTML?for Java or HTML?
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
Are all constants defined?Are all constants defined?
If a queue is being manipulated , can the If a queue is being manipulated , can the execution be interrupted; If so, is queue execution be interrupted; If so, is queue protected by a locking structure?protected by a locking structure?
Are registers being restored on exits?Are registers being restored on exits?
Are all increment counts properly initialised (0 or Are all increment counts properly initialised (0 or 1)?1)?
Are absolutes shown where there should be Are absolutes shown where there should be symbolics?symbolics?
Are all blocks shown in design necessary?Are all blocks shown in design necessary?
Checklist for design inspectionChecklist for design inspection
Ex
Ex
Wr
Wr
Mis
sing
Mis
sing
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
Is correct condition tested?Is correct condition tested?
Is correct variable used or test?Is correct variable used or test?
Is each branch target correct?Is each branch target correct?
Is the most frequently exercised test leg the Is the most frequently exercised test leg the THEN clause?THEN clause?
Are all required parameters passed set Are all required parameters passed set correctly?correctly?
Does the inline expansion contain all required Does the inline expansion contain all required code?code?
Checklist for code inspection Checklist for code inspection T
est b
ranc
hT
est b
ranc
hIn
terc
onne
ctIn
terc
onne
ct
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
PR/M/Min L3: the prologue in the REMARKSPR/M/Min L3: the prologue in the REMARKS
section needs expansion.section needs expansion.
LO/W/Maj L172: NAME-CHECK is performed oneLO/W/Maj L172: NAME-CHECK is performed one
time too few.time too few.
DE/W/Min L175: the design should allow for the DE/W/Min L175: the design should allow for the
occurrence of a period in a lastoccurrence of a period in a last
name.name.
Error listError list
J. Nawrocki, PSP, Lecture 13
Fagan inspectionsFagan inspections
CC: Code commentsCC: Code comments
CU: CB usageCU: CB usage
DE: Design errorDE: Design error
IC: Interconnect callsIC: Interconnect calls
LO: LogicLO: Logic
MN: MaintainabilityMN: Maintainability
OT: OtherOT: Other
PE: PerformancePE: Performance
PR: PrologPR: Prolog
Major MinorMajor Minor
M W E M W E M W E M W E
Date ..............Date ..............Code inspection reportCode inspection report
Mod/Mac: .......................Mod/Mac: .......................
TotalTotal
J. Nawrocki, PSP, Lecture 13
Active design reviewsActive design reviews
• Parnas and Weiss, 1985Parnas and Weiss, 1985
• Questions posed by the author of the Questions posed by the author of the design - to encourage a thorough design - to encourage a thorough reviewreview
• Several brief reviews focusing on a part Several brief reviews focusing on a part of a work product (part of a design of a work product (part of a design document)document)
J. Nawrocki, PSP, Lecture 13
Phased inspectionsPhased inspections
1 Compliance with required internal documentation 1 Compliance with required internal documentation format. Also spelling and grammar can be format. Also spelling and grammar can be checked here.checked here.
2. Source code layout.2. Source code layout.
3. Readability.3. Readability.
4. Good programming practice (gotos, global 4. Good programming practice (gotos, global variables, ..).variables, ..).
5. Correct use of various programming constructs 5. Correct use of various programming constructs (updating control variables for while, closing (updating control variables for while, closing files, ...).files, ...).
6. Functional correctness.6. Functional correctness.
J. Nawrocki, PSP, Lecture 13
Phased inspectionsPhased inspections
Defects:Defects:• indigenousindigenous• seededseeded
J. Nawrocki, PSP, Lecture 13
SummarySummary
Fagan inspection are a formal Fagan inspection are a formal and rigorous method of and rigorous method of checking quality.checking quality.
Inspections are a basic tool in Inspections are a basic tool in software quality assurance.software quality assurance.
Some aspects of Fagan Some aspects of Fagan inspections are outdated and inspections are outdated and their should be updated.their should be updated.
J. Nawrocki, PSP, Lecture 13
Further readingsFurther readings
M. Fagan, “Design and Code Inspections ..”,M. Fagan, “Design and Code Inspections ..”,
IBM System J., vol. 15, no.3, 1976, 182-211.IBM System J., vol. 15, no.3, 1976, 182-211.
M. Fagan, “Advances in Software Inspections”,M. Fagan, “Advances in Software Inspections”,
IEEE TSE, vol. SE-12, no. 7, 1986.IEEE TSE, vol. SE-12, no. 7, 1986.
J.C. Knight, E.A. Myers, An improved inspectionJ.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. 51-61.pp. 51-61.
J. Nawrocki, PSP, Lecture 13
Quality assessmentQuality assessment
1. What is your general 1. What is your general impression ? (1 - 6)impression ? (1 - 6)
2. Was it too slow or too fast ?2. Was it too slow or too fast ?
3. Did you learn something 3. Did you learn something important to you ?important to you ?
4. What to improve and how ?4. What to improve and how ?