SlideShare a Scribd company logo
Introduction to Software Review Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii
Objectives Understand the motivation for technical review. Become acquainted with  “best practices” for “industrial strength” formal technical review. Begin the journey toward 'optimal' review in your own practice.
Optimal Review For me, an 'optimal' review will: find all important defects give all reviewers deep insight into the code enable the author to improve the code all with least possible effort In other words: Optimal quality improvement Optimal knowledge acquisition With lowest possible cost Normally, though, it ’s “pick any two”.
Families of Review Methods Walkthroughs Minimal overhead Developer training Quick turnaround Defect discovery Ambiguity resolution Training Method Family Typical Goals Typical Attributes Little/no preparation No formal process No measurement Technical Reviews Some formal process Multiple stages Wide range of discussion Inspections Detect and remove all defects efficiently and effectively. Very formal process Measurement Verification
Methods vs. Optimality Walkthroughs: Cost: very low Knowledge transfer: undependable Quality improvement: undependable Technical reviews: Cost: moderate Knowledge transfer: better Quality improvement: at least some  Inspection: Cost: high (and not necessarily  ‘least possible’) Knowledge transfer: almost guaranteed. Quality improvement: almost guaranteed
What reviews do that testing doesn't 1. Reviews improve schedule predictability. 2. Reviews reduce rework. Rework can account for 44% of dev. cost! Reqs (1%), Design (12%), Coding (12%), Testing (19%) 3. Reviews are  pro-active  tests. Find errors not possible through testing, such as Errors of Omission (i.e. unimplemented requirement) 4. Reviews are training. Domain, corporate standards, group. N o R e v s . R e v s Req Design Code Test R R R Req Design Code Test
Industry experience Aetna Insurance Company: Review found 82% of errors, 25% cost reduction. Bell-Northern Research: Inspection cost: 1 hour per defect. Testing cost: 2-4 hours per defect.  Post-release cost: 33 hours per defect. Hewlett-Packard Est. 1 year savings (1993): $21,454,000 IBM (using Cleanroom) C system software No errors from time of first compile.
There are many  different kinds of review TekInspect Development Method Non-Cleanroom Cleanroom FTR inFTR Code Inspection (Fagan76) Inspection (Gilb93) 2-Person Inspection (Bisant89) N-Fold Inspection (Martin90) Walkthrough (Yourdon89) Verification- based Inspection (Dyer92) Active Design Reviews (Parnas85) FTArm (Johnson94) ICICLE (Brothers90) Scrutiny (Gintell93) CAIS (Mashayekhi94) Manual Tool-Based Code Reading (McConnell93) Software Review (Humphrey90) Phased Insp. (Knight93)
Inspection:  the most formal review Preparation Orientation Planning Review Meeting Rework Verify Ensure rework was done correctly Correct defects. Consolidate issues. Check product, note issues. Present product, process, goals. Choose team, materials, dates.
Planning Objectives Gather  review package : work product, checklists, references, and data sheets. Form inspection team. Determine dates for meetings.  Planning Orientation Preparation Review Mt. Rework Verify
Orientation Objectives Author provides overview. Reviewers obtain review package. Preparation goals established. Reviewers commit to participate. Planning Orientation Preparation Review Mt. Rework Verify
Preparation Objectives Find maximum number of non-minor issues. Planning Orientation Preparation Review Mt. Rework Verify
Example Issue Classification Critical Defects that may cause the system to hang, crash, produce incorrect results or behavior, or corrupt user data.  No known work-arounds. Severe Defects that cause incorrect results or behavior with known work-arounds. Large and/or important areas of the system is affected. Moderate Defects that affect limited areas of functionality that can either be worked around or ignored. Minor Defects that can be overlooked with no loss of functionality.
Review Meeting Objectives Create consolidated, comprehensive listing of non-minor issues. Provide opportunity for group synergy. Improve reviewing skill by observing others.  Create shared knowledge of work product. Planning Orientation Preparation Review Mt. Rework Verify
Rework Objectives Assess each issue, determine if it is a defect, and remove it if necessary. Produce written disposition of non-minor issue. Resolve minor issues as necessary. Planning Orientation Preparation Review Mt. Rework Verify
Verify Objectives Assess the (reworked) work product quality. Assess the inspection process. Pass or fail the work product. Planning Orientation Preparation Review Mt. Rework Verify
ICS Software Engineering  Technical Reviews
Goals for our Tech. Reviews 1. Learn how to obtain useful feedback from classmates about your software system. 2. Learn how to critically read and evaluate code written by another developer. 3. Learn the difference between low-impact,  “waste of time” reviews and high-impact, “would have never noticed this myself” reviews. 4. Learn that reviewing other code can be an effective way to improve your own coding skills.
Initial approach:  Checklist-based technical review Use a checklist to: focus reviewer attention. specify the concerns of the review Write down reviewer comments to: provide a clear record of reviewer feedback. assess coverage of review. Go over reviewer comments with author to: Clarify meaning of comments.  Assess validity. Provide opportunity for new issues to arise.
Goals for the semester We will be doing reviews all semester. When doing a review, ask yourself: Is my review revealing problems? Is my review increasing understanding? Is my review doing (1) and (2) efficiently? If not, think about ways to improve your review process.
Bonus: How to ask questions Effective software review requires effective technical communication. "How to ask questions the smart way" addresses effective communication in another context: online discussion forums. Use this semester to improve your ability to "ask questions the smart way". We will likely see examples of "smart" and "not so smart" questions to the class discussion group!

More Related Content

What's hot

Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
SHREEHARI WADAWADAGI
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
Aman Adhikari
 
Software testing
Software testingSoftware testing
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 
IT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management ProcessIT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management Process
Yolanda Williams
 
White box ppt
White box pptWhite box ppt
White box ppt
Chintakunta Hariteja
 
Software quality management lecture notes
Software quality management lecture notesSoftware quality management lecture notes
Software quality management lecture notes
AVC College of Engineering
 
Software coding and testing
Software coding and testingSoftware coding and testing
Software coding and testing
Sandeep Kumar Nayak
 
UML for Aspect Oriented Design
UML for Aspect Oriented DesignUML for Aspect Oriented Design
UML for Aspect Oriented Design
Edison Lascano
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
Charotar University Of Science And Technology,Gujrat
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle Model
J.T.A.JONES
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
Poonkodi Jayakumar
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
Ameer Hasan Malik
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
arvind pandey
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
Priyanka Karancy
 
Integration testing
Integration testingIntegration testing
Integration testing
queen jemila
 
Function Point Analysis
Function Point AnalysisFunction Point Analysis
Function Point Analysis
Araf Karsh Hamid
 
Verification and Validation in Software Engineering SE19
Verification and Validation in Software Engineering SE19Verification and Validation in Software Engineering SE19
Verification and Validation in Software Engineering SE19
koolkampus
 
Ch 9 traceability and verification
Ch 9 traceability and verificationCh 9 traceability and verification
Ch 9 traceability and verification
Kittitouch Suteeca
 
component based development model
component based development modelcomponent based development model
component based development model
Muneeba Qamar
 

What's hot (20)

Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software testing
Software testingSoftware testing
Software testing
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
IT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management ProcessIT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management Process
 
White box ppt
White box pptWhite box ppt
White box ppt
 
Software quality management lecture notes
Software quality management lecture notesSoftware quality management lecture notes
Software quality management lecture notes
 
Software coding and testing
Software coding and testingSoftware coding and testing
Software coding and testing
 
UML for Aspect Oriented Design
UML for Aspect Oriented DesignUML for Aspect Oriented Design
UML for Aspect Oriented Design
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle Model
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
 
Integration testing
Integration testingIntegration testing
Integration testing
 
Function Point Analysis
Function Point AnalysisFunction Point Analysis
Function Point Analysis
 
Verification and Validation in Software Engineering SE19
Verification and Validation in Software Engineering SE19Verification and Validation in Software Engineering SE19
Verification and Validation in Software Engineering SE19
 
Ch 9 traceability and verification
Ch 9 traceability and verificationCh 9 traceability and verification
Ch 9 traceability and verification
 
component based development model
component based development modelcomponent based development model
component based development model
 

Viewers also liked

Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assurance
ruth_reategui
 
Software Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@PersistentSoftware Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@Persistent
Persistent Systems Ltd.
 
Qa
QaQa
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1
Abdul Basit
 
Introduction to automated quality assurance
Introduction to automated quality assuranceIntroduction to automated quality assurance
Introduction to automated quality assurance
Philip Johnson
 
CMS & Chrome Extension Development
CMS & Chrome Extension DevelopmentCMS & Chrome Extension Development
CMS & Chrome Extension Development
Sarang Ananda Rao
 
Физика элементарных частиц: от микромира к проблемам Вселенной
Физика элементарных частиц: от микромира к проблемам ВселеннойФизика элементарных частиц: от микромира к проблемам Вселенной
Физика элементарных частиц: от микромира к проблемам Вселенной
Ilya Orlov
 
Redundancy schemes for deduplicated cloud storage systems
Redundancy schemes for deduplicated cloud storage systemsRedundancy schemes for deduplicated cloud storage systems
Redundancy schemes for deduplicated cloud storage systems
Sarang Ananda Rao
 
Software Reliability and Testing
Software Reliability and TestingSoftware Reliability and Testing
Software Reliability and Testing
mdfachowdhury
 
DFA minimization algorithms in map reduce
DFA minimization algorithms in map reduceDFA minimization algorithms in map reduce
DFA minimization algorithms in map reduce
Iraj Hedayati
 
Building testable chrome extensions
Building testable chrome extensionsBuilding testable chrome extensions
Building testable chrome extensions
Seth McLaughlin
 
Unit 6-energy-resources
Unit 6-energy-resourcesUnit 6-energy-resources
Unit 6-energy-resources
anuragmbst
 
DFA Minimization
DFA MinimizationDFA Minimization
DFA Minimization
guest5873b2d
 
Optimization of dfa
Optimization of dfaOptimization of dfa
Optimization of dfa
Kiran Acharya
 
Chapter 8 software quality assurance and configuration audit
Chapter 8 software quality assurance and configuration auditChapter 8 software quality assurance and configuration audit
Chapter 8 software quality assurance and configuration audit
Cliftone Mullah
 
DFA Minimization in Map-Reduce
DFA Minimization in Map-ReduceDFA Minimization in Map-Reduce
DFA Minimization in Map-Reduce
Iraj Hedayati
 
Lec 3 ---- dfa
Lec 3  ---- dfaLec 3  ---- dfa
Lec 3 ---- dfa
Abdul Aziz
 
software failures
 software failures software failures
software failures
Respa Peter
 
How To Review Software Requirements
How To Review Software RequirementsHow To Review Software Requirements
How To Review Software Requirements
Craig Brown
 
Software Testing - Defect Metrics & Analysis
Software Testing - Defect Metrics & AnalysisSoftware Testing - Defect Metrics & Analysis
Software Testing - Defect Metrics & Analysis
OAK Systems Pvt Ltd
 

Viewers also liked (20)

Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assurance
 
Software Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@PersistentSoftware Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@Persistent
 
Qa
QaQa
Qa
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1
 
Introduction to automated quality assurance
Introduction to automated quality assuranceIntroduction to automated quality assurance
Introduction to automated quality assurance
 
CMS & Chrome Extension Development
CMS & Chrome Extension DevelopmentCMS & Chrome Extension Development
CMS & Chrome Extension Development
 
Физика элементарных частиц: от микромира к проблемам Вселенной
Физика элементарных частиц: от микромира к проблемам ВселеннойФизика элементарных частиц: от микромира к проблемам Вселенной
Физика элементарных частиц: от микромира к проблемам Вселенной
 
Redundancy schemes for deduplicated cloud storage systems
Redundancy schemes for deduplicated cloud storage systemsRedundancy schemes for deduplicated cloud storage systems
Redundancy schemes for deduplicated cloud storage systems
 
Software Reliability and Testing
Software Reliability and TestingSoftware Reliability and Testing
Software Reliability and Testing
 
DFA minimization algorithms in map reduce
DFA minimization algorithms in map reduceDFA minimization algorithms in map reduce
DFA minimization algorithms in map reduce
 
Building testable chrome extensions
Building testable chrome extensionsBuilding testable chrome extensions
Building testable chrome extensions
 
Unit 6-energy-resources
Unit 6-energy-resourcesUnit 6-energy-resources
Unit 6-energy-resources
 
DFA Minimization
DFA MinimizationDFA Minimization
DFA Minimization
 
Optimization of dfa
Optimization of dfaOptimization of dfa
Optimization of dfa
 
Chapter 8 software quality assurance and configuration audit
Chapter 8 software quality assurance and configuration auditChapter 8 software quality assurance and configuration audit
Chapter 8 software quality assurance and configuration audit
 
DFA Minimization in Map-Reduce
DFA Minimization in Map-ReduceDFA Minimization in Map-Reduce
DFA Minimization in Map-Reduce
 
Lec 3 ---- dfa
Lec 3  ---- dfaLec 3  ---- dfa
Lec 3 ---- dfa
 
software failures
 software failures software failures
software failures
 
How To Review Software Requirements
How To Review Software RequirementsHow To Review Software Requirements
How To Review Software Requirements
 
Software Testing - Defect Metrics & Analysis
Software Testing - Defect Metrics & AnalysisSoftware Testing - Defect Metrics & Analysis
Software Testing - Defect Metrics & Analysis
 

Similar to Introduction to Software Review

Lecture 10 Static Testing.ppt
Lecture 10 Static Testing.pptLecture 10 Static Testing.ppt
Lecture 10 Static Testing.ppt
ssuser9a23691
 
Check upload1
Check upload1Check upload1
Check upload1
Nitish Bhardwaj
 
Prvt file test
Prvt file testPrvt file test
Prvt file test
dummyuser1analytics
 
Software testing
Software testingSoftware testing
Software testing
thaneofife
 
Check upload1
Check upload1Check upload1
Check upload1
Referral Bhai
 
Chapter 15
Chapter 15Chapter 15
Chapter 15
Benjamin Yu
 
chapter 7.ppt
chapter 7.pptchapter 7.ppt
chapter 7.ppt
TesfahunAsmare1
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
David O'Dowd
 
Aim (A).pptx
Aim (A).pptxAim (A).pptx
Aim (A).pptx
14941
 
Software Inspection And Defect Management
Software Inspection And Defect ManagementSoftware Inspection And Defect Management
Software Inspection And Defect Management
Ajay K
 
Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology  Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology
Zoe Gilbert
 
Testing techniques
Testing techniquesTesting techniques
Testing techniques
cnpltesters
 
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIESCHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
Samruddhi Sheth
 
CTFL Module 03
CTFL Module 03CTFL Module 03
CTFL Module 03
Davis Thomas
 
Software_Testing_ppt.pptx
Software_Testing_ppt.pptxSoftware_Testing_ppt.pptx
Software_Testing_ppt.pptx
BharathReddy615859
 
Stm unit1
Stm unit1Stm unit1
Stm unit1
Chaitanya Kn
 
Chapter Three Static Techniques
Chapter Three Static TechniquesChapter Three Static Techniques
Chapter Three Static Techniques
elvira munanda
 
Fundamentals of Testing Section 1/6
Fundamentals of Testing   Section 1/6Fundamentals of Testing   Section 1/6
Fundamentals of Testing Section 1/6
International Personal Finance Plc
 
Testing overview
Testing overviewTesting overview
Testing overview
Anandhababu Msj
 
Software-Testing-ppt.pptx
Software-Testing-ppt.pptxSoftware-Testing-ppt.pptx
Software-Testing-ppt.pptx
Sushilkumar744913
 

Similar to Introduction to Software Review (20)

Lecture 10 Static Testing.ppt
Lecture 10 Static Testing.pptLecture 10 Static Testing.ppt
Lecture 10 Static Testing.ppt
 
Check upload1
Check upload1Check upload1
Check upload1
 
Prvt file test
Prvt file testPrvt file test
Prvt file test
 
Software testing
Software testingSoftware testing
Software testing
 
Check upload1
Check upload1Check upload1
Check upload1
 
Chapter 15
Chapter 15Chapter 15
Chapter 15
 
chapter 7.ppt
chapter 7.pptchapter 7.ppt
chapter 7.ppt
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Aim (A).pptx
Aim (A).pptxAim (A).pptx
Aim (A).pptx
 
Software Inspection And Defect Management
Software Inspection And Defect ManagementSoftware Inspection And Defect Management
Software Inspection And Defect Management
 
Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology  Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology
 
Testing techniques
Testing techniquesTesting techniques
Testing techniques
 
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIESCHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
 
CTFL Module 03
CTFL Module 03CTFL Module 03
CTFL Module 03
 
Software_Testing_ppt.pptx
Software_Testing_ppt.pptxSoftware_Testing_ppt.pptx
Software_Testing_ppt.pptx
 
Stm unit1
Stm unit1Stm unit1
Stm unit1
 
Chapter Three Static Techniques
Chapter Three Static TechniquesChapter Three Static Techniques
Chapter Three Static Techniques
 
Fundamentals of Testing Section 1/6
Fundamentals of Testing   Section 1/6Fundamentals of Testing   Section 1/6
Fundamentals of Testing Section 1/6
 
Testing overview
Testing overviewTesting overview
Testing overview
 
Software-Testing-ppt.pptx
Software-Testing-ppt.pptxSoftware-Testing-ppt.pptx
Software-Testing-ppt.pptx
 

More from Philip Johnson

Kukui Cup 2012 Energy Data
Kukui Cup 2012 Energy DataKukui Cup 2012 Energy Data
Kukui Cup 2012 Energy Data
Philip Johnson
 
Introduction to ICS 691: Software Engineering for the Smart Grid
Introduction to ICS 691: Software Engineering for the Smart GridIntroduction to ICS 691: Software Engineering for the Smart Grid
Introduction to ICS 691: Software Engineering for the Smart Grid
Philip Johnson
 
Kukui Cup 2012 Organizing Committee February Meeting
Kukui Cup 2012 Organizing Committee February MeetingKukui Cup 2012 Organizing Committee February Meeting
Kukui Cup 2012 Organizing Committee February Meeting
Philip Johnson
 
How to plan a Kukui Cup
How to plan a Kukui CupHow to plan a Kukui Cup
How to plan a Kukui Cup
Philip Johnson
 
Honors thesis overview: Katie Amberg-Johnson
Honors thesis overview: Katie Amberg-JohnsonHonors thesis overview: Katie Amberg-Johnson
Honors thesis overview: Katie Amberg-Johnson
Philip Johnson
 
Introduction to Issue Driven Project Management
Introduction to Issue Driven Project ManagementIntroduction to Issue Driven Project Management
Introduction to Issue Driven Project Management
Philip Johnson
 
Introduction to continuous integration
Introduction to continuous integrationIntroduction to continuous integration
Introduction to continuous integration
Philip Johnson
 
Introduction to WattDepot
Introduction to WattDepotIntroduction to WattDepot
Introduction to WattDepot
Philip Johnson
 
Introduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingIntroduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project Hosting
Philip Johnson
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
Philip Johnson
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testing
Philip Johnson
 
Introduction to Software Build Technology
Introduction to Software Build TechnologyIntroduction to Software Build Technology
Introduction to Software Build Technology
Philip Johnson
 
Introduction to Robocode
Introduction to RobocodeIntroduction to Robocode
Introduction to Robocode
Philip Johnson
 
Codings Standards
Codings StandardsCodings Standards
Codings Standards
Philip Johnson
 
Interactive Development Environments
Interactive Development EnvironmentsInteractive Development Environments
Interactive Development Environments
Philip Johnson
 
Introduction to Intermediate Java
Introduction to Intermediate JavaIntroduction to Intermediate Java
Introduction to Intermediate Java
Philip Johnson
 
Professional Persona
Professional PersonaProfessional Persona
Professional Persona
Philip Johnson
 
01.intro
01.intro01.intro
01.intro
Philip Johnson
 
iHale Milestone 2 Kickoff
iHale Milestone 2 KickoffiHale Milestone 2 Kickoff
iHale Milestone 2 Kickoff
Philip Johnson
 
iHale Milestone 1 Feedback
iHale Milestone 1 FeedbackiHale Milestone 1 Feedback
iHale Milestone 1 Feedback
Philip Johnson
 

More from Philip Johnson (20)

Kukui Cup 2012 Energy Data
Kukui Cup 2012 Energy DataKukui Cup 2012 Energy Data
Kukui Cup 2012 Energy Data
 
Introduction to ICS 691: Software Engineering for the Smart Grid
Introduction to ICS 691: Software Engineering for the Smart GridIntroduction to ICS 691: Software Engineering for the Smart Grid
Introduction to ICS 691: Software Engineering for the Smart Grid
 
Kukui Cup 2012 Organizing Committee February Meeting
Kukui Cup 2012 Organizing Committee February MeetingKukui Cup 2012 Organizing Committee February Meeting
Kukui Cup 2012 Organizing Committee February Meeting
 
How to plan a Kukui Cup
How to plan a Kukui CupHow to plan a Kukui Cup
How to plan a Kukui Cup
 
Honors thesis overview: Katie Amberg-Johnson
Honors thesis overview: Katie Amberg-JohnsonHonors thesis overview: Katie Amberg-Johnson
Honors thesis overview: Katie Amberg-Johnson
 
Introduction to Issue Driven Project Management
Introduction to Issue Driven Project ManagementIntroduction to Issue Driven Project Management
Introduction to Issue Driven Project Management
 
Introduction to continuous integration
Introduction to continuous integrationIntroduction to continuous integration
Introduction to continuous integration
 
Introduction to WattDepot
Introduction to WattDepotIntroduction to WattDepot
Introduction to WattDepot
 
Introduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingIntroduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project Hosting
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testing
 
Introduction to Software Build Technology
Introduction to Software Build TechnologyIntroduction to Software Build Technology
Introduction to Software Build Technology
 
Introduction to Robocode
Introduction to RobocodeIntroduction to Robocode
Introduction to Robocode
 
Codings Standards
Codings StandardsCodings Standards
Codings Standards
 
Interactive Development Environments
Interactive Development EnvironmentsInteractive Development Environments
Interactive Development Environments
 
Introduction to Intermediate Java
Introduction to Intermediate JavaIntroduction to Intermediate Java
Introduction to Intermediate Java
 
Professional Persona
Professional PersonaProfessional Persona
Professional Persona
 
01.intro
01.intro01.intro
01.intro
 
iHale Milestone 2 Kickoff
iHale Milestone 2 KickoffiHale Milestone 2 Kickoff
iHale Milestone 2 Kickoff
 
iHale Milestone 1 Feedback
iHale Milestone 1 FeedbackiHale Milestone 1 Feedback
iHale Milestone 1 Feedback
 

Recently uploaded

Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 

Recently uploaded (20)

Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 

Introduction to Software Review

  • 1. Introduction to Software Review Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii
  • 2. Objectives Understand the motivation for technical review. Become acquainted with “best practices” for “industrial strength” formal technical review. Begin the journey toward 'optimal' review in your own practice.
  • 3. Optimal Review For me, an 'optimal' review will: find all important defects give all reviewers deep insight into the code enable the author to improve the code all with least possible effort In other words: Optimal quality improvement Optimal knowledge acquisition With lowest possible cost Normally, though, it ’s “pick any two”.
  • 4. Families of Review Methods Walkthroughs Minimal overhead Developer training Quick turnaround Defect discovery Ambiguity resolution Training Method Family Typical Goals Typical Attributes Little/no preparation No formal process No measurement Technical Reviews Some formal process Multiple stages Wide range of discussion Inspections Detect and remove all defects efficiently and effectively. Very formal process Measurement Verification
  • 5. Methods vs. Optimality Walkthroughs: Cost: very low Knowledge transfer: undependable Quality improvement: undependable Technical reviews: Cost: moderate Knowledge transfer: better Quality improvement: at least some Inspection: Cost: high (and not necessarily ‘least possible’) Knowledge transfer: almost guaranteed. Quality improvement: almost guaranteed
  • 6. What reviews do that testing doesn't 1. Reviews improve schedule predictability. 2. Reviews reduce rework. Rework can account for 44% of dev. cost! Reqs (1%), Design (12%), Coding (12%), Testing (19%) 3. Reviews are pro-active tests. Find errors not possible through testing, such as Errors of Omission (i.e. unimplemented requirement) 4. Reviews are training. Domain, corporate standards, group. N o R e v s . R e v s Req Design Code Test R R R Req Design Code Test
  • 7. Industry experience Aetna Insurance Company: Review found 82% of errors, 25% cost reduction. Bell-Northern Research: Inspection cost: 1 hour per defect. Testing cost: 2-4 hours per defect. Post-release cost: 33 hours per defect. Hewlett-Packard Est. 1 year savings (1993): $21,454,000 IBM (using Cleanroom) C system software No errors from time of first compile.
  • 8. There are many different kinds of review TekInspect Development Method Non-Cleanroom Cleanroom FTR inFTR Code Inspection (Fagan76) Inspection (Gilb93) 2-Person Inspection (Bisant89) N-Fold Inspection (Martin90) Walkthrough (Yourdon89) Verification- based Inspection (Dyer92) Active Design Reviews (Parnas85) FTArm (Johnson94) ICICLE (Brothers90) Scrutiny (Gintell93) CAIS (Mashayekhi94) Manual Tool-Based Code Reading (McConnell93) Software Review (Humphrey90) Phased Insp. (Knight93)
  • 9. Inspection: the most formal review Preparation Orientation Planning Review Meeting Rework Verify Ensure rework was done correctly Correct defects. Consolidate issues. Check product, note issues. Present product, process, goals. Choose team, materials, dates.
  • 10. Planning Objectives Gather review package : work product, checklists, references, and data sheets. Form inspection team. Determine dates for meetings. Planning Orientation Preparation Review Mt. Rework Verify
  • 11. Orientation Objectives Author provides overview. Reviewers obtain review package. Preparation goals established. Reviewers commit to participate. Planning Orientation Preparation Review Mt. Rework Verify
  • 12. Preparation Objectives Find maximum number of non-minor issues. Planning Orientation Preparation Review Mt. Rework Verify
  • 13. Example Issue Classification Critical Defects that may cause the system to hang, crash, produce incorrect results or behavior, or corrupt user data. No known work-arounds. Severe Defects that cause incorrect results or behavior with known work-arounds. Large and/or important areas of the system is affected. Moderate Defects that affect limited areas of functionality that can either be worked around or ignored. Minor Defects that can be overlooked with no loss of functionality.
  • 14. Review Meeting Objectives Create consolidated, comprehensive listing of non-minor issues. Provide opportunity for group synergy. Improve reviewing skill by observing others. Create shared knowledge of work product. Planning Orientation Preparation Review Mt. Rework Verify
  • 15. Rework Objectives Assess each issue, determine if it is a defect, and remove it if necessary. Produce written disposition of non-minor issue. Resolve minor issues as necessary. Planning Orientation Preparation Review Mt. Rework Verify
  • 16. Verify Objectives Assess the (reworked) work product quality. Assess the inspection process. Pass or fail the work product. Planning Orientation Preparation Review Mt. Rework Verify
  • 17. ICS Software Engineering Technical Reviews
  • 18. Goals for our Tech. Reviews 1. Learn how to obtain useful feedback from classmates about your software system. 2. Learn how to critically read and evaluate code written by another developer. 3. Learn the difference between low-impact, “waste of time” reviews and high-impact, “would have never noticed this myself” reviews. 4. Learn that reviewing other code can be an effective way to improve your own coding skills.
  • 19. Initial approach: Checklist-based technical review Use a checklist to: focus reviewer attention. specify the concerns of the review Write down reviewer comments to: provide a clear record of reviewer feedback. assess coverage of review. Go over reviewer comments with author to: Clarify meaning of comments. Assess validity. Provide opportunity for new issues to arise.
  • 20. Goals for the semester We will be doing reviews all semester. When doing a review, ask yourself: Is my review revealing problems? Is my review increasing understanding? Is my review doing (1) and (2) efficiently? If not, think about ways to improve your review process.
  • 21. Bonus: How to ask questions Effective software review requires effective technical communication. "How to ask questions the smart way" addresses effective communication in another context: online discussion forums. Use this semester to improve your ability to "ask questions the smart way". We will likely see examples of "smart" and "not so smart" questions to the class discussion group!