Java Inspection Checklist 1. Specification / Design Is the functionality described in the specification fully implemented by the code? Is only specified functionality implemented with no additional functionality added? Is the program interface implemented as described in the javadocs Are the javadocs complete, including DBC or Error checking specs as appropriate? Does the code conform to theclass coding standard? Is the code correct? Does the code implement the detailed design provided? (Suggestion: perform a hand trace of the execution to verify correctness. Does the implementation avoid bonehead programming? Is the code free of "smells?" (Duplicate code, long methods, big classes, breaking encapsulation, etc.) 2. Initialization and Declarations Are variables and class members of thecorrect type and appropriate mode Are descriptive variable and constant names used in accord with naming conventions? Are there variables or attributes with confusingly similar names? Is every variable and attribute correctly typed? Is every variable and attribute properly initialized? Could any non-local variables be made local? Are all for-loop control variables declared in the loop header? Arethere literal constants that should be named constants? Are there variables or attributes that should be constants? Are there attributes that should be local variables? Do all attributes have appropriate access modifiers (private, protected, public)? Are there static attributes that should be non-static or vice-versa Are variables declared in the proper scope? Is a constructor called when a newobject is desired? Is a constructor called when a new object is desired? Are all object references initialized before use? Are all object references initialized before use? 3. Method Calls Are parameters presented in the correct order? Is the correct method being called, or should it be a different method with a similar name? Are method return values used properly? Are descriptive method names used inaccord with naming conventions? Is every method parameter value checked before being used? For every method: Does it return the correct value at every method return point? Do all methods have appropriate access modifiers (private, protected, public)? Are there static methods that should be non-static or vice-versa? 4. Class Definition Problems Does each class have appropriate constructors anddestructors? Do any subclasses have common members that should be in the superclass? Can the class inheritance hierarchy be simplified? 5. Arrays Are there no off-by-one errors in array indexing? Have all array (or other collection) indexes been prevented from going out-of-bounds? Is a constructor called when a new array item is desired? 6. Object Comparison Are all objects (including Strings)compared with "equals" and not "=="?
7. Output Format Are displayed outputs free of spelling and grammatical errors? Are error messages comprehensive and provide guidance as to how to correct the problem? Is the output formatted correctly in terms of line stepping and spacing? 8. Computation, Comparisons and Assignments Check order of computation/evaluation, operator precedence andparenthesizing Are all denominators of a division prevented from being zero? Is integer arithmetic, especially division, used appropriately to avoid causing unexpected truncation/rounding? Are the comparison and Boolean operators correct? If the test is an error-check, can the error condition actually be legitimate in some cases? Is the code free of any implicit type conversions? 9. Exceptions Are allrelevant exceptions caught? Is the appropriate action taken for each catch block? 10. Flow of Control In a switch statement, are all cases by break or return? Do all switch statements have a default branch? Are all loops correctly formed, with the appropriate initialization, increment and termination expressions? For each loop: Is the best choice of looping constructs used? Will all loops...