Cambridge: Cambridge University Press, 2009. — 449 p.
The author examines logic and methodology of design from the perspective of computer science. Computers provide the context for this examination both by discussion of the design process for hardware and software systems and by consideration of the role of computers in design in general. The central question posed by the author is whether or not we can construct a theory of design.
The Architectonics of Design
- The Inadequacy of Definitions
Demarcating engineering from science
The matter of values
- The Nature of Design Problems
Empirical requirements
Conceptual requirements
The impreciseness of design problems
Bounded rationality and the incompleteness of design problems
Designs as blueprints
Designs as user guides
Designs as media for criticism and change
The satisficing nature of design decisions
The intractability of design optimization problems
Design as an evolutionary process
Empirical evidence of evolution in design
Ontogenic and phylogenic design evolution
Empirical evidence of evolution in phylogenic design
Design Paradigms
Kuhnian paradigms
Defining the design paradigm concept
Design paradigms in computer science
Characteristics
Some instances of ASE-based design methods
Inductivism as the logical foundation for ASE
Limitations of the ASE paradigm
Remarks on requirements engineering
The use of conceptual models
Designs as formal entities
The formal approach in programming
Hoare logic
The formal development of programs
The FD paradigm in computer architecture
The formal design of microprograms
The formal design of hardware structures
Limits to the universality of formal design
On the distinction between proofs of design correctness and mathematical proofs
Constraints
The plausibility of a constraint
Plausibility states
The nature of evidence in TPD
Plausibility statements
The logic of plausibility states
The structure of plausibility-driven design
Justification constraints
Exercises in plausibility-driven design
Discussion, contrasts and comparisons
The automation of design
General structure of the AI design paradigm
Representing knowledge using production rules
Thought experiments in rule-based design
Weak methods revisited
Multiple goal resolution
The notion of style as a knowledge type
The TPD paradigm revisited
Compiling as an algorithmic style
Knowledge representation in the algorithmic paradigm
Algorithmic translation
Algorithmic transformation
The issue of `real' optimization
Design and Science
A reference model of science
Two examples of scientific discoveries from physics
The DSD model
Two thought experiments
On the richness of designs-as-theories