28. Recommended Reading

W. Bengough, “Scene in the old Congressional Library,” 1897
© CORBIS. All rights reserved.

image

The Bibliography includes complete citations for all the references in the text, plus other relevant and high-quality items on the design process. I here point to certain of these works that I find exceptionally valuable for those interested in the design process as such. They are in alphabetical order by author, with brief comments.

Blaauw, G. A., and F. P. Brooks, Jr. [1997]. Computer Architecture: Concepts and Evolution.

Section 1.1 distinguishes architecture, implementation, and realization. Section 1.2 gives an overview of the design of computer architectures. It also formalizes and illustrates the concept of a design tree of individual design decisions. Section 1.4 undertakes to define and characterize what makes an architecture good.

Boehm, B. [2007]. Software Engineering: Barry Boehm’s Lifetime Contributions to Software Development, Management and Research.

An indispensable set of papers covering many aspects of software design.

Brooks, F. P., Jr. [1975, 1995]. The Mythical Man-Month: Essays on Software Engineering, Anniversary edition.

Chapter 16, “No silver bullet,” separates design problems into the essential and the accidental (or incidental, if you prefer). Chapter 19 gives a 1975-to-1995 retrospective.

Burks, A. W., H. H. Goldstine, and J. von Neumann [1946]. “Preliminary discussion of the logical design of an electronic computing instrument.”

The most important computer paper ever written. Stunningly comprehensive. Available on line.

Cross, N., [2006]. Designerly Ways of Knowing.

Contains Cross’s devastating critique of Simon: real designers don’t do it that way, and here are the studies that show it. Other papers in the book are also valuable.

DeMarco, T., and T. Lister [1987]. Peopleware: Productive Projects and Teams, 2nd edition.

Important research results and insights on the nontechnical factors affecting design quality.

Hales, C. [1987, 1991]. An Analysis of the Engineering Design Process in an Industrial Context.

Probably the most complete published documentation of a real, substantial design process, done by a co-designer who also served simultaneously as a scholarly observer. Originally Hales’s Cambridge PhD dissertation.

Hennessy, J., and D. A. Patterson [1990, 2006]. Computer Architecture: A Quantitative Approach, 4th edition.

The definitive text on the design of computer architectures. Dramatically shows the convergence to a standard architecture.

Hoffman, D., and D. Weiss, eds. [2001]. Software Fundamentals: Collected Papers by David L. Parnas.

The other indispensable set of papers covering many aspects of software design.

Mills, H. D. [1971]. “Top-down programming in large systems.” In Debugging Techniques in Large Systems, ed. R. Rustin.

Teaches and argues for incremental design and programming.

Royce, W. [1970]. “Managing the development of large software systems.” Proceedings of IEEE Wescon.

The classic paper describing and decrying the Waterfall Model. It advocates an alternative model.

Schön, D. [1983]. The Reflective Practitioner.

Simon, H. A. [1969, 1996]. The Sciences of the Artificial, 3rd edition.

The most influential and articulate proposal of the Rational Model for design.

Winograd, T., et al., eds.[1996]. Bringing Design to Software.

A very helpful collection, including important papers.

Wozniak, S. [2006]. iWoz: From Computer Geek to Cult Icon: How I Invented the Personal Computer, Co-Founded Apple, and Had Fun Doing It.

An illuminating autobiography from an engineer’s engineer, giving many insights into design.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.116.50.87