The Discipline:

Architects (who)

Architecting (how)

Architecture (what)

Motivation (why)

Organization (where)

Lifecyle (when)


Bredemeyer Consulting




Software Design Classics

Code Structure and Modularity Papers

[responsibilities and CRC cards] Kent Beck and Ward Cunningham, "A Laboratory For Teaching Object-Oriented Thinking," 1989 [pdf]

D. L. Parnas, “On the Criteria to Be Used in Decomposing Systems into Modules,” 1972 [pdf]

David Parnas, “The influence of software structure on reliability” 1975 [pdf]

D.L. Parnas, P. Clements, and D.M. Weiss, “The Modular Structure of Complex Systems,” 1984 [pdf]

Ben Moseley and Peter Marks, Out of the Tar Pit," 2006 [pdf]

Mary Shaw, “Abstraction Techniques in Modern Programming Languages", 1984 [pdf]

Systems and Software Engineering Papers

Proceedings of the 1968 NATO Software Engineering Conference [pdf]

Proceedings of the 1969 NATO Software Engineering Conference [pdf]

Butler Lampson, Hints for Computer System Design, 1983 [pdf]

Barbara Liskov, A design methodology for reliable software systems, 1972 [PDF]

Peter Naur, “Programming as theory building,” 1985 [pdf]

David Parnas and Paul Clement, A Rational Design Process: How and why to fake it”, 1986 [pdf]

David Parnas and David Weiss, Active Design Reviews: Principles and Practices,

Code Structure and Modularity Books

[Coupling] Glenford J. Myers, Composite/Structured Design, 1978

[Coupling] Glenford J. Myers, Reliable Software Through Composite Design, 1975

[Connasence] Meilir Page-Jones, What Every Programmer Should Know About Object-Oriented Design, 1995

Visual Design Classics

Software Modeling

[state charts] David Harel, "On Visual Formalisms," 1988 [pdf]

Architecture Classics

Software Architecture

Roy Fielding, "Architectural Styles and the Design of Network-based Software Architectures," 2000 [pdf]

Brian Foote and Joseph Yoder, "Big Ball of Mud," 1999 [pdf]

David Garlan and Mary Shaw, "An Introduction to Software Architecture," 1994 [pdf]

Philippe Kruchten, "Architectural Blueprints—The “4+1” View Model of Software Architecture." 1995 [pdf]

Systems Architecture

Herbert A. Simon, "The Architecture of Complexity," 1962 [pdf]

Eberhardt Rechtin and Maier, The Art of Systems Architecting, [pdf]


Organizational Design Classics

Chris Argyris, "Double Loop Learning in Organizations," 1977 [pdf]

Melvin Conway, “How do committees Invent?”, 1968 [pdf]

Karl Weick, "Small Wins: Redefining the scale of social problems," 1994 [pdf]



“there is a desperate need for a powerful methodology to help us think about programs. ... conventional languages create unnecessary confusion in the way we think about programs” Backus 1977 Backus [Bac78]

“we have to keep it crisp, disentangled, and simple if we refuse to be crushed by the complexities of our own making” Dijkstra said [Dij97, EWD1243]

“there is one quality that cannot be purchased... — and that is reliability. The price of reliability is the pursuit of the utmost simplicity” 1980 Hoare [Hoa81]

"[.. begin] with a list of difficult design decisions or design decisions which are likely to change" -- Parnas

Copyright © 1999-2019 by Bredemeyer Consulting
Page Created: November 1999
Last Updated: September 17, 2019