Thursday, December 16, 2010

Code Complete by Steve McConnell : Chapter 2

The author emphasizes on metaphors or models or analogies that help one understand a poorly understood topic. The author provides examples of the wave theory of light and the kinetic theory of gases which were analogous to a similar theory of sound and billiard ball model respectively. The author warns against over-extending any analogy citing the example of "ether", the medium that was supposed to be propagating light the way air propagates sound.

Author feels a metaphor is much nearer to heuristics than algorithm.

Author points out that the software engineering is a younger field (was a younger field in 1994 when the book was written but not now) and does not have standard set of metaphors.

The author provides four metaphors to better understand software construction:
  1. Software Penmanship: Writing a software is like writing a letter. Just throw as many drafts in wastebasket as required before the final letter comes up.
  2. Software Farming: Consider growing software as planting seeds and growing crops.
  3. Software Oyster Farming: Software creation is incremental just like how oyster makes a pearl by adding small amount of calcium carbonate.
  4. Software Construction: Author finds this metaphor to be the most powerful. A lot of parallels can be drawn between building a house and building a large software.
On an average for a 750,000-line system, about 6000 pages of functional specs would be required.

No comments:

Post a Comment