Class Notes (1,100,000)
CA (620,000)
Western (60,000)
SOFTENG (10)
Lecture 13

Software Engineering 4453A/B Lecture Notes - Lecture 13: Cyclomatic Complexity, Pair Programming, Software Development Process


Department
Software Engineering
Course Code
SOFTENG 4453A/B
Professor
Abdelnasser Hassan Ouda
Lecture
13

Page:
of 8
Unit 5
Software Quality
Software Standards
Reviews and Inspections
Software Measurement and Metrics
Reviews and Inspections
a group examines part or all of a process or system and its documentation to find
potential problems
documents may be “signed off” at a review which signifies that progress to the next
development stage has been approved
different types of review with different objectives:
Inspections for defect removal (product)
Reviews for progress assessment (product and process)
Quality reviews (product and standards)
Quality Reviews
based on documents that have been produced during the software development
process
code, designs, specifications, test plans, standards, can all be reviewed
not the same as management progress reviews
progress reviews take external factors into account, and changed circumstances may
mean that software under development is no longer required (or radically changed)
Software Review Process
Reviews and Agile Methods
review process in agile development is usually informal:
Scrum - review meeting after each iteration where quality is discussed
Extreme - pair programming ensures code is constantly being examines and
reviewed by another team member
XP relies on individuals taking initiative to improve and refractor code
Program Inspections
peer reviews where engineers examine source of a system with aim of discovering
anomalies and defects
inspections do not require execution of a system
can be used before implementation
may be applied to any representation of the system
have been shown to be an effective technique for discovering program errors
Inspection Checklists
checklist of common errors should be used to drive inspection
checklists are programming language dependent and reflect characteristic errors that
are likely to arise in the language
generally, the weaker the type checking, the larger the checklist
Agile Methods and Inspections
agile processes rarely use formal inspection or peer review processes
they rely on team members cooperating to check each others code
extreme programming practitioners argue that pair programming is an effective
substitute for inspection as this is a continual inspection process