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 |