COMPUTER SYSTEMS RESEARCH
Program Iteration Reports 2006-2007
Software Construction

Software Construction (from Code Complete, Steve McConnell):

  1. Problem definition - Clear statement of the problem this iteration is supposed to solve, and perhaps how this fits into the larger scale, or longer term, problem you are trying to solve or investigate with your project or system.

  2. Requirements - checklist from Code Complete:

  3. Architecture of your program - software architecture is the high-level part of software design, the frame that holds the more detailed parts of the design (see Code Complete: p. 43)

  4. Summary of your preparation for software construction (from Code Complete, p. 59):
    1. The overarching goal of preparing for construction is risk reduction. Be sure your preparation activities are reducing risks, not increasing them.
    2. If you want to develop high quality software, attention to quality must be part of the software development process from the beginning to the end. Attention to quality at the beginning has a greater influence on product quality than attention at the end.
    3. The kind of project you're working on significantly affects construction prerequisites - many projects should be highly iterative, others should be more sequential.
    4. If a good problem definition hasn't been specified, you might be solving the wrong problem during construction.
    5. If good requirements work hasn't been done, you might have missed important details ofthe problem. Requirements changes cost 20 to 100 times as much in the stages following construction as they do earlier, so be sure the requirements are right before you start programming.
    6. If a good architectural design hasn't been done, you might be solving the right problem the wrong way during construction. The cost of architectural changes increases as more code is written for the wrong architecture, so be sure the architecture is right.