• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/28

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

28 Cards in this Set

  • Front
  • Back
Reviews
management practice of meetings to informally consider state of the project at certain stages, in order to gain confidence in project direction
Walkthroughs
informal technical review, normally carried out by developers to improve product quality
Inspections
completely formal process of review - a formal system used to identify and remove defects, and improve the overall quality of the development process
Defect Classification: Critical
Defects that will cause the system to hang, crash, or produce incorrect results or behaviour, with no known workarounds
Defect Classification: Severe
Defects that will cause incorrect results or behaviour, but have known workarounds
Defect Classification: Moderate
Defects that affect limited areas of functionality that can either be
worked around or ignored
Defect Classification: Minor
Defects that can be overlooked without loss of functionality
Checklists
Checklists often include questions concerning completeness,
style, adherence to company standards, etc.
• Code inspection checklists often include detailed questions about use of language features (e.g., no gotos), naming of variables,
methods and classes, depth of nesting, etc.
References
may include Company standards documents, high quality examples of artifacts similar to the one being inspected, etc
Code Checklists
Give a concrete list of (general and specific, desired and undesired) properties of the code to check for

Inspector should look through the code to check for the presence or absence of each individual property, and check it off the list
Code Paraphrasing
Consists of reading the lines of code for their meaning (in English) in the problem domain, not in the programming language

Goal is to insure that the code really does implement what we want to have done
Structured Code Walkthroughs
Guided tour of the program, led by a “tour guide” who describes the points of interest etc.

Can be static or dynamic.
Dynamic Code Walkthrough
Conducted by the code reviewers in the meeting as a sort of exploration of the codeʼs workings
Static Code Walkthrough
Annotated version of the source code with the tour guideʼs comments shown alongside the code itself
Lightweight inspection practices
attempt to gain the advantages
of code inspections without the formal process, as in XP
Four eyes principle
Programmers work in loose pairs, where each module or class authored by one programmer is informally inspected by the other

(Both are equally responsible for the code).
Chief Programmer Teams
Involves weekly meetings in which the whole team informally reviews the system design, architecture, interfaces and schedule once each week, continuously updating
each of these as the project proceeds
Extreme Programming - Continuous Inspection
XPʼs code refactoring is a continuous inspection method descended from CPTʼs weekly design reviews
White Box Testing (By Hand)
When applied manually, most white box testing methods force the test author to examine the code in detail in order to create the tests - in practice this is how most defects are found
Heavyweight inspection practices
Formalize code inspection all the way to formal verification
Cleanroom Software Development
The main components are formal specification, and

Incremental development: software is partitioned into increments which are developed separately using the Cleanroom approach

Structured programming: only a limited number of control and data constructs are allowed to be used in the code

Stepwise refinement: code is developed directly as a refinement of the formal specification

Static verification: developed software components are not tested but statically verified using mathematically based correctness arguments
Pair Programming - Code Inspection
Continuous immediate inspection
of new code

Increases quality because all code being written is inspected

Increases productivity because it avoids the cognitive overhead of the programmer continually switching between the code level of understanding and higher level of understanding
Pair Programming - Different Roles - The Driver
Can confidently charge forward in the immediate coding task
Pair Programming - Different Roles - The Partner
Keeps track of the big picture - where whole thing is going (replaces paraphrasing) and watches for simple clerical and coding errors that may go unnoticed by the driver (replaces code checklists)
Code Refactoring
Improves the design of code without affecting its behaviour
Code Refactoring - Abstracting
The creation of a new method for a
repeated code section when the repetition is made
Code Refactoring - Simplification
Shortening code by joining similar
cases or removing redundancies when new cases are added
Code Refactoring - Design Constraints
1. The system (code plus tests) must communicate everything you want to communicate

2. The system must contain no duplicate code

3. The system should have the fewest possible classes

4. The system should have the fewest possible methods