+ All Categories
Home > Documents > Software Reviews Copyright, 1999 © Jerzy R. Nawrocki [email protected] Personal Software...

Software Reviews Copyright, 1999 © Jerzy R. Nawrocki [email protected] Personal Software...

Date post: 14-Dec-2015
Category:
Upload: brenna-hopton
View: 217 times
Download: 0 times
Share this document with a friend
26
Software Reviews Software Reviews Copyright, 1999 © Jerzy R. Nawrocki [email protected] [email protected] www.cs.put.poznan.pl/jnawrocki/ www.cs.put.poznan.pl/jnawrocki/ mse/psp/ mse/psp/ Personal Software Personal Software Process Process Lecture 13 Lecture 13
Transcript
Page 1: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 2: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 3: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 4: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 5: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 6: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 7: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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” !!!

Page 8: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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)

Page 9: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 10: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 11: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 12: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 13: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 14: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 15: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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?

Page 16: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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?

Page 17: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 18: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 19: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 20: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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

Page 21: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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)

Page 22: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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.

Page 23: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

J. Nawrocki, PSP, Lecture 13

Phased inspectionsPhased inspections

Defects:Defects:• indigenousindigenous• seededseeded

Page 24: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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.

Page 25: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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.

Page 26: Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl Personal Software Process Lecture.

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 ?


Recommended