Code Complete Checklists
by Lord Omlette.
Created 2003-06-18 771 BMT.
Updated 2005-03-26 408 BMT.
These are a few of the checklists from Steve McConnell's Code Complete. The book is really good, but I felt it would be better if I could get to these checklists wherever I was.
Requirements Content
- Are all the inputs to the system specified, including their source, accuracy, range of values, and frequency?
- Are all the outputs from the system specified, including their destination, accuracy, range of values, frequency, and format?
- Are all the report formats specified?
- Are all the external hardware and software interfaces specified?
- Are all the communication interfaces specified, including handshaking, error-checking, and communication protocols?
- Is the expected response time, from the user's point of view, specified for all the necessary operations?
- Are other timing considerations specified, such as processing time, data-transfer rate, and system throughput?
- Are all the tasks the user wants to perform specified?
- Are the data used in each task and the data resulting from each task specified?
- Is the level of security specified?
- Is the reliability specified, including the consequences of software failure, the vital information that needs to be protected from failure, and the strategy for error detection and recovery?
- Is maximum memory specified?
- Is the maximum storage specified?
- Is the maintainability of the system specified, including its ability to adapt to changes in the operating environment, in its interfaces w/ other software, in its accuracy, and in its performance?
- Are acceptable trade-offs between competing attributes specified - for example, between robustness and correctness?
- Is the definition of success included? Of failure?
Requirements Completeness
- Where information isn't available beore development begins, are the areas of incompleteness specified?
- Are the requirements complete in the sense that if the product satisfies every requirement, it will be acceptable?
- Are you uneasy about any part of the requirements? Are some parts impossible to implement and included just to please your customer or your boss?
Requirements Completeness
- Are the requirements written in user language? Do the users think so?
- Does each requirement avoid conflicts w/ other requirements?
- Do the requirements avoid specifying the design?
- Are the requirements at a fairly consistent level of detail? Should any requirement be specified in less detail?
- Are the requirements clear enough to be turned over to an independent group for implementation and still be understood?
- Is each item relevant to the problem and its solution? Can each item be traced to its origin in the problem environment?
- Is each requirement testable? Will it be possible for independent testing to determine whether each requirement has been satisfied?
- Are all possible changes to the requirements specified, including the likelihood of each change?
Architecture
- Is the overall organization of the program clear, including a good architectural overview and justification?
- Are modules well defined, including their functionality and their interfaces to other modules?
- Are all the functions listed in the requirements covered sensibly, by neither too many or too few modules?
- Is the architecture designed to accommodate likely changes?
- Are necessary buy-vs.-build decisions included?
- Does the architecture describe how reused code will be made to conform to other architectural objectives?
- Are all the major data structures hidden behind access routines?
- Is the database organization and content justified?
- Are all key algorithms described and justified?
- Are all major objects described and justified?
- Is a strategy for handling user input described?
- Is a strategy for handling I/O described and justified?
- Are key aspects of the user interface defined?
- Is the user interface modularized so that changes in it won't affect the rest of the program?
- Are memory-use estimates and a strategy for memory management described and justified?
- Does the architecture set space and speed budgets for each module?
- Is a strategy for handling strings described, and are character-string storage estimates provided?
- Is a coherent error-handling strategy provided?
- Are error messages managed as a set to present a clean user interface?
- Is a level of robustness specified?
- Is any part over- or under-architected? Are expectations in this area set out explicitly?
- Are the major system goals clearly stated?
- Does the whole architecture hang together conceptually?
- Is the top-level design independent of the machine and language that will be used to implement it?
- Are the motivations for all major decisions provided?
- Are you, as a programmer who will implement the system, comfortable with the architecture?
If you're just some random person wondering why you need this stuff, read these three books (in order):
Experience:
(an older version is available in the library, but the 25th Anniversary Ed. offers alot 20/20 hindsight...)
Theory:
Practice:
At the bottom of this page, it says ""Code Complete Checklists" is Copyright 2003 Lord Omlette." That's just auto-generated fluff, the checklists are Copyright Steve McConnell, that's a huge "Duh"...
"Code Complete Checklists" is Copyright © 2005 Lord Omlette. If you know otherwise, hollar.
Printable Version
quote #1862:
exmoure: unrelated: never let someone get you to try this thing they call "Kombucha"
exmoure: wild oats and the rest of the "organic" cult call it something like an "all natural enzyme culture tea"
exmoure: some kind of cure-all detoxifier
Everlight Knight: sounds like laxitive if you ask me
exmoure: worse
exmoure: let me put it this way
exmoure: If #2 equals Gundam....
Everlight Knight: #3 = DBZ?
exmoure: ZSLJFFXCZJRSHIO
exmoure: ROFLGAMOB
Everlight Knight: lol
exmoure: THAT's funny shit
exmoure: oh man
Everlight Knight: or rather funny DBZ? :3 :3 :3
Everlight Knight: LOL
exmoure: SUPER SAYAN.... POWER LEVEL THREEEEEEEE
exmoure: that's quality gundam right there
exmoure: oh man
Everlight Knight: ITT we post Quality!
exmoure: I just about kombucha'd my pants
Everlight Knight: lolz0r
-added 2006-06-15 by ek