Wirfs-Brock Associates Home Page > Resources
Wirfs-Brock Associates encourages use of these resources for personal enrichment. For commercial use or if you would like a presentation at your event, please contact Rebecca@Wirfs-Brock.com.
IEEE Software Design Column Starting in January 2006, Rebecca became the IEEE Software design columnist. Her last column was in the November/December 2009 issue.
"The Responsible Designer" in the November/December 2009 issue.
Vol. 26, No. 6. A responsible designer should make informed decisions about whats an appropriate amount of design flexibility. Download PDF (261k)
"Design for Test" in the September/October 2009 issue.
Vol. 26, No. 5. Design of tests and of the code that satisfies them should be complementary parts of a development process. Download PDF (204k)
"Principles in Practice" in the July/August 2009 issue.
Vol 26, No. 4. A good design principle provides a framework for thinking. Download PDF (205k)
"Creating Sustainable Designs in the May/June 2009 issue.
Vol. 26, No. 3. We should look to Christopher Alexander's properties of living things for inspiration on making software sustainable. Download PDF (240k)
"Designing with an Agile Attitude" in the March/April 2009 issue.
Vol. 26, No. 2. What distinguishes agile design from other design processes? Download PDF (211k)
"Designing in the Future" in the January/February 2009 issue.
Vol. 26, No. 1. The best preparation for future design challenges is to learn from today's problems. Download PDF (291k)
"Designing Then And Now" in the November/December 2008 issue.
Vol. 25 / No. 6. Design rhythms may have changed, but thinking and professionalism are still required. Download PDF (350k)
"Enabling Change" in the September/October 2008 issue.
Vol. 25, No. 5. Evolving software must be cleaned up regularly so that technical debt doesn't overwhelm the design. Download PDF (218k)
"Up-front Design" in the July/August 2008 issue.
Vol. 25, No. 4. When preparation matters upfront design can payoff. Upfront doesn't have to be a four letter word. Download PDF (306k)
"Design Strategy" in the May/June 2008 issue.
Vol. 25, No. 3. Design matters, but not every design task deserves the same attention. Download PDF (218k)
"Connecting Design with Code" in the March/April 2008 issue.
Vol. 25, No. 2. The best commentary shares what the designer was thinking. Download PDF (217k)
"Valuing Design Repair" in the January/February 2008 issue.
Vol. 25, No. 1. Designing fixes to working software can be much harder than designing new stuff. Download PDF (198k)
"Does Beautiful Code Imply Beautiful Design?" in the November/December 2007 issue.
Vol. 24, No. 6. Instead of arguing for truth or beauty, we should think more about making our software more habitable. Download PDF (784k)
"Designing Extensible Classes" in the September/October 2007 issue.
Vol. 24, No. 5. A responsible class designer must strike a balance between openness, clarity, safety and ease of extension. Download PDF (154k)
"Giving Design Advice" in the July/August 2007 issue.
Vol. 24, No. 4. Being aware of some common cognitive biases, you can tweak your design advice and increase the likelihood of it being accepted. Download PDF (304k)
"Handling Design Criticism" in the May/June 2007 issue.
Vol. 24, No. 3. Effectively giving and receiving criticism are skills every designer needs to master. Download PDF (516k)
"Toward Design Simplicity" in the March/April 2007 issue.
Vol. 24, No. 2. Although the perfectly beautiful design is impossible to achieve, a disciplined approach to removing clutter can lead to simplifications. Download PDF (94k)
"Driven to...Discovering Your Design Values" in the January/February 2007 issue.
Vol. 24, No 1. Design is based on principles and values. And while a lot has changed about software design, common threads run through several practices. Download PDF (450k)
"Explaining Your Design" in the November/December 2006 issue.
Vol. 23, No 6. To plot a compelling story about your design consider what your audience needs to know, how much you think they already know, and what you want to emphasize. Download PDF (194k)
"Toward Exception Handling Best Practices and Patterns" in the September/October 2006 issue.
Vol 23, No 5. This column presents guidelines and explores the state of exception handling patterns. Download PDF (288k)
"Designing For Recovery" in the July/August 2006 issue.
Vol 23, No 4. This column explores the design of software recovery actions when failing fast isn't an option. Download PDF (478 k)
"Refreshing Patterns" in the May/June 2006 issue.
Vol 23, No.3. This column explores how a preferred form of a pattern can change with use and experience. Download PDF (146k)
"Characterizing Classes" in the March/April 2006 issue.
Vol 23, No.2. The column introduces several key properties of classes. Download PDF (180k)
"Looking for Powerful Abstractions" in the January/February 2006 issue.
Vol 23, No.1. This column explains why identifying reasonable classes isn't as simple as underlining nouns or modeling "real world" concepts. Download PDF (177K)
Presentations by Rebecca Wirfs-Brock (Updated August 2010)
Understanding Design Complexity (updated August 2010). This presentation introducess two tecchniques for untangling complex requirements, commonality-variabilty analys and hotspot cards, and presents practical design tactics for managing complexity. Download presentation PDF (5.3MB) Download notes PDF (2.4MB)
Lessons Learned from Architecture Reviews (updated May 2009). This presentation explores how to give and receive constructive advice as well as what it means to present, sell, and critique software architecture. Download PDF (6.5MB)
A Brief Tour of Responsibility-Driven Design: This presentation (updated July 2006) introduces the popular design practice called Responsibility-Driven Design and several tools for thinking clearly about objects roles, interactions, and contractual relations. Download PDF ( MB)
Skills for the Agile Designer. This presentation (updated July 2007) introduces useful tools and techniques that designers can use to sharpen their seeing, shaping, and problem solving skills. Download PDF (2.0MB)
Designing Reliable Collaborations. This presentation covers reliable collaboration design from A to Z. Topics include: designing for trusted and untrusted collaborations; guidelines for using program level exceptions; exception recovery strategies; where should exceptions be handled; and how to streamline checking by identifying trusted collaboration regions. Download PDF (2.9 MB)
The Art of Writing Use Cases. This presentation covers essential techniques for writing clear, concise, and informative use cases. It also introduces three forms of use cases and explores their strengths and weaknesses. Download PDF (1.2MB)
What Every Java Developer Should Know about Roles, Responsibilities, and Collaborative Contracts: Presented at JAOO 2000, this talk introduces key Responsibility-Driven Design concepts and shows how they apply to Java programs. Download PDF (455K)
The Art of Telling Your Design Story. (updated July 2006) The best way to present your design isnt likely to be the same way you came up with it. To be an effective communicator, you need to know what belongs together and what deserves special emphasis. Download PDF (1. MB)
Articles by Rebecca Wirfs-Brock
Once Upon a Design in the July/Aug 2003 STQE magazine. This article, drawing on material from our book Object Design, explains how to tell compelling stories about your softwares behavior and structure. Download PDF (116K)
What It Really Takes to Handle Exceptional Conditions presented at forUse 2002. A large part of software design involves accommodating situations that, although unlikely, still have to be dealt with. This paper draws on material from the book Object Design. Download PDF (405K)
Adding to Your Conceptual Toolkit: Whats Important About Responsibility-Driven Design in the Report on Object Analysis and Design, Volume 1, Number 2. The aspects of a design model you concentrate on as you develop it, and the order in which you do so, have a profound impact on your results. Download PDF (320K)
How Designs Differ in the Report on Object Analysis and Design", Volume 1, Number 4. Two Boeing engineers, Bob Sharble and Sam Cohen, created different designs for a brewery control application. This article explores key design choices and their impact: use of inheritance, patterns of collaboration, and the predominance of specific role stereotypes. Download PDF (228K)
Characterizing Your Objects in the February 1992 Smalltalk Report, Volume 2, Number 5. This is the original article that introduced role stereotypes. Download PDF (84K)
Characterizing Your Application's Control Style in the Sept/Oct 1994 Report on Object Analysis and Design, Volume 1, Number 3. This article discusses several different application control styles. Download PDF (136K)
Determining Object Roles and Responsibilities from the Smalltalk Report. The task of the designer is to assign each object an appropriate role. Each role is constrained to fit within the existing object model, but a lot of discretion is still involved. Download PDF (96K)
Implementing Design Responsibilities A designers job isnt over until codings done. Heres some advice on how to transform a design into good code. Download PDF (144K)
How Can a Subsystem Be Both a Package and a Classifier? by Joaquin Miller and Rebecca Wirfs-Brock. Presented at UML 99. UML specifies that a subsystem is both a package and a classifier. This paper explores what that could possibly mean and explains why that was the right choice. Download PDF (115 K)
Object Visibility: Making the Necessary Connections from the October 1991 issue of The Smalltalk Report, Volume 2, Number 2. An early article describing how to turn an imprecise list of collaborations into a more rigorous design description, and finally into Smalltalk code. Download PDF (120K)
Responsibility-Driven Design from the Smalltalk Report. An early article describing Responsibility-Driven Design concepts. Download PDF (128K)
Problem Frame Patterns, presented at PLoP 2006, by Rebecca Wirfs-Brock, Paul Taylor and James Noble. A gentle introduction to problem frames, written as patterns, for analysts and designers. Download PDF (615K)
Introducing Problem Frames. This presentation (updated July 2006) introduces Jackson's five problem frame patterns and illustrates the frames found in an email application. Download PDF (3.1MB)
Use Case Articles