W. Bengough, “Scene in the old Congressional Library,” 1897
© CORBIS. All rights reserved.
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.
3.145.166.149