|Rebecca Wirfs-Brock, Wirfs-Brock Associates
Presentation: What Every Java Developer Needs to Know About
Roles, Responsibilities and Collaborative Contracts
There is a gap between object design and implementation that makes it hard to explain and preserve a design's intent. We propose you narrow this gap by preserving object roles, responsibilities and contracts within an implementation. To do so, you must clearly clearly characterize your design, and describe it in commentary that lives with the code. You also should be able to reconstruct more abstract views of a design by examining existing interfaces and classes. This talk presents a conceptual framework that is useful for both describing and "reverse engineering" a design.
Tutorial: The Art of Writing Use Cases
Use Cases describe the behavior of a software system from an external usage perspective. There is an art to writing them clearly. Written carefully, use cases convey key usage specifications and can be tied to other requirements. Written poorly, use cases are confusing and ambiguous. This tutorial presents examples of good and bad Use Case descriptions drawn from real projects, and practical techniques for writing three forms of descriptions: narratives, scenarios, and conversations. Narratives are high-level descriptions written from an external perspective. We show how to elaborate these high-level descriptions, choosing either a scenario form, which emphasizes sequence, or a conversation, which highlights interactions between a user and the system. Tips for naming use cases, describing policies, errors and exceptions, attaching other important information, and writing glossary entries are also presented. This is a hands-on tutorial. Attendees will practice writing, critically reading and revising use cases in various forms.
Students should be looking for practical ways to improve their writing. They should be familiar with writing and reading software requirements and usage descriptions. Since Use Cases are part of the Unified Modeling Language (UML), students could benefit from an introduction to object concepts. However, an object background is not a pre-requisite!
Participants will be able to apply principles and writing techniques to their own projects, writing appropriate usage descriptions.
Slides, lecture, short writing and reviewing exercises followed by comment and suggested solution(s).
Thursday 09:00 - 12:00
Rebecca Wirfs-Brock is president of Wirfs-Brock Associates, a firm specializing in the transfer of object analysis and design expertise to organizations and individuals through training, mentoring, and consulting. She spent 17 years as a Software Engineer at Tektronix, where among other accomplishments, she managed the first commercial Smalltalk effort and was the technical lead for the development of Color Smalltalk. She has written articles, lectured and presented tutorials on object analysis, design and management topics, and has been an innovator in object technology since 1984. Recently, she has authored use cases for a telecommunications framework and an online banking system. She practices what she teaches! Rebecca is co-inventor of the Responsibility-Driven Design method and co-author of the classic, "Designing Object-Oriented Software."