Software need not be impervious to failure. But it shouldn't easily break. A large part of software design involves building our software to accommodate situations that, although unlikely, still have to be addressed. Once you've decided on the basic architecture of your system, assigned responsibilities to objects, and designed collaborations, you can take a closer look at making specific collaborations more reliable--by designing objects to detect and recover from exceptional conditions. This tutorial covers reliable collaboration design from A to Z. Topics include: resolving the mismatch between use case and program level exceptions, check-and-act and try-and-see exception recovery strategies, objects that are naturally suited for taking on exception-handling responsibilities, and how to streamline error checking by identifying trusted collaboration regions and designing for trusted and untrusted collaborations. We'll also present guidelines for naming exceptions and common exception-handling traps to avoid.
Prerequisites: Attendees should be familiar with object-oriented design and programming.
Lecture with many examples, case studies, and guidelines based on real-world experiences and projects
Rebecca Wirfs-Brock is a world-renowned innovator in practical object analysis and design techniques. She is lead author of the new book, "Object Design: Roles, Responsibilities and Collaborations" (Addison-Wesley 2003). She invented the set of development practices known as Responsibility-Driven Design. Most recently, she has focused on ways to effectively communicate design ideas, designing flexible software without over- or under-engineering a solution, and effective ways to think through design alternatives. Among her widely used innovations are use case conversations and object role stereotypes. She specializes in the transfer of object analysis and design expertise through mentoring, consulting, and training.