Software design methods share many characteristics with design methods in other fields. All these methods are the progeny of philosophies of design that are in turn influenced by more general philosophic movements. This essay begins with the influence of philosophies of science on the study of design, highlighting the effects on design discourse of Cartesian rationality, the hypothetico-deductive account of scientific progress, and Kuhnian paradigms. Next, the influence of the constructivist and humanist movements on design thinking are considered, culminating in the introduction of a philosophy of design based on hermeneutics, or interpretation. The influence of design philosophy on software design methods begins a categorization of several software design methods according to the design theory framework, with some emphasis on design methods that support a hermeneutical style of design. Some justification for a pluralistic approach to software design methodology rounds out the essay. ...
|
3853
|
Design Patterns: Elements of Reusable Object-Oriented Software
– Gamma, Helm, et al.
- 1995
|
|
1539
|
Object-Oriented Modeling and Design
– Rumbaugh, Blaha, et al.
- 1991
|
|
1295
|
The C++ Programming Language
– Stroustrup
- 1991
|
|
1208
|
Object-Oriented Software Construction
– Meyer
- 1988
|
|
1179
|
A Discipline of Programming
– Dijkstra
- 1976
|
|
998
|
An axiomatic basis for computer programming
– Hoare
- 1969
|
|
900
|
The Sciences of the Artificial
– Simon
- 1968
|
|
872
|
The Structure of Scientific Revolutions
– Kuhn
- 1962
|
|
821
|
The Computer for the 21st Century
– Weiser
- 1991
|
|
807
|
Object-Oriented Analysis and Design with Applications
– Booch
|
|
777
|
Object-Oriented Software Engineering- A Use Case Driven Approach
– Jacobson, Christerson, et al.
- 1992
|
|
775
|
Metaphors we live by
– Lakoff, Johnson
- 1980
|
|
715
|
A spiral model of software development and enhancement
– Boehm
- 1986
|
|
577
|
Systematic Software Development Using VDM
– Jones
- 1986
|
|
437
|
The Logic of Scientific Discovery
– Popper
- 1959
|
|
404
|
The Science of Programming
– Gries
- 1981
|
|
398
|
No silver bullet -- the essence and accidents of software engineering
– Brooks
- 1987
|
|
382
|
The Mythical Man-Month
– Brooks
- 1975
|
|
360
|
A field study of the software design process for large systems
– Curtis, Krasner, et al.
- 1988
|
|
327
|
Design Patterns for object-oriented Software Development
– Pree
- 1995
|
|
315
|
Managing the Software Process
– Humphrey
- 1989
|
|
294
|
Mindstorms: Children Computes, and Powerful Ideas
– Papert
- 1980
|
|
289
|
Philosophical Investigations
– Wittgenstein
- 1953
|
|
261
|
Beyond the chalkboard: Computer support for collaboration and problem solving in meetings
– Stefik, Foster, et al.
- 1987
|
|
255
|
Understanding Computers and Cognition
– Winograd, Flores
- 1987
|
|
252
|
Structured Analysis and System Specification
– DeMarco
- 1978
|
|
248
|
Design at work: Cooperative design of computer systems
– Greenbaum, Kyng
- 1991
|
|
244
|
Software Engineering
– Boehm
- 1981
|
|
219
|
Designing Object-Oriented Software
– Wirfs-Brock, Wilkerson, et al.
- 1990
|
|
201
|
Score-keeping in a language game
– Lewis
- 1979
|
|
198
|
Program Development by Stepwise Refinement
– Wirth
- 1971
|
|
188
|
The n-version approach to faulttolerant software
– Avizienis
- 1985
|
|
183
|
Notes on the Synthesis of Form
– Alexander
- 1964
|
|
180
|
P.C.: A Rational Design Process: How and Why to Fake It
– Parnas, Clements
- 1986
|
|
148
|
The Structure of Ill-structured Problems
– Simon
- 1973
|
|
139
|
Managing the development of large software systems
– Royce
- 1970
|
|
130
|
A study of thinking
– Bruner, Goodnow, et al.
- 1956
|
|
130
|
The structure of the THE multiprogramming system
– DIJKSTRA
- 1968
|
|
130
|
KR: Conjectures and refutations. The growth of scientific knowledge Fourth edition
– Popper
- 1976
|
|
127
|
Being and Time
– Heidegger
- 1962
|
|
108
|
Scenario-Based Design: Envisioning Work and Technology
– Carroll
- 1995
|
|
101
|
A cognitive model of planning
– Hayes-Roth, Hayes-Roth
- 1979
|
|
99
|
Principles of Program Design
– Jackson
- 1975
|
|
98
|
A Laboratory for Teaching Object-Oriented Thinking
– Beck, Cunningham
- 1989
|
|
95
|
Dilemmas in a General Theory of Planning
– Rittel, Webber
- 1973
|
|
91
|
User Centered System Design: New Perspectives on Human-Computer Interaction
– Norman, Draper
- 1986
|
|
90
|
Object-Oriented Patterns
– Coad
- 1992
|
|
90
|
Principles of OBJ2
– Futatsugi, Goguen, et al.
- 1985
|
|
90
|
Pragmatic presuppositions
– Stalnaker
- 1974
|
|
89
|
The Larch family of specification languages
– Guttag, Horning, et al.
- 1985
|