Rebecca Wirfs-Brock and Joe Yoder: Flexible design techniques


The CCSL at IME/USP invites you to attend two presentations on modern approaches to flexible design (Adaptive Object Models and Responsibility-driven design), which will be given by two international renowned experts in the field.

Date: September 22nd

Where: Auditório Jacy Monteiro, IME/USP, building B

14:00h: Software Patterns and Quality: Can Patterns Help Quality?

Speaker: Joe Yoder

Abstract: A software pattern is an abstract repeatable solution to a commonly occurring problem that arises under a certain context and forces that derive the solution. Patterns help people involved in the software community to share experience-based, proven solutions. They also help develop software; manage processes, projects, and organizations; and with people communicating more efficiently and effectively.

Quite often when we talk about patterns, you hear mention of its QWAN ("Quality Without A Name"). QWAN is "the quality" that imparts incommunicable beauty and immeasurable value to a structure. Christopher Alexander, who has highly influenced the patterns community, proposes the existence of an objective quality of aesthetic beauty that is universally recognizable. He claims there are certain timeless attributes and properties which are considered beautiful and aesthetically pleasing to all people in all cultures (not just "in the eye of the beholder"). It is these fundamental properties which combine to generate the QWAN, and which make a structure feel "whole" and "alive".

Software Patterns in general are all about quality. For example, the GoF patterns are about building quality reusable object-oriented systems. Sometimes quality can be seen as external attributes of the system how does it look, how does it feel, and how cool is it (i.e. the iPod). There are also many other internal qualities of an architecture that can be much harder to measure such as non functional requirements. For example, how secure is the system, how reusable is it, how hard is it to change, etc. This talk will look at Patterns and Quality and describe ways in which Patterns have helped weave quality into our Software Architectures.

15:45 Break

16:00 to 17:45: Responsibility-Driven Design

Speaker: Rebecca Wirfs-Brock

Abstract: Responsibility-Driven Design is a way to design that emphasizes behavioral modeling using objects, responsibilities and
collaborations. In a responsibility-based model, objects play specific roles and occupy well-known positions in the application architecture. Each object is accountable for a specific portion of the work. They collaborate in clearly defined ways, contracting with each other to fulfill the larger goals of the application. By creating a "community of objects", assigning specific responsibilities to each, you build a collaborative model of our application.

This tutorial, which includes material from the book Object Design: Roles, Responsibilities and Collaborations, will be an example-based tour of Responsibility-Driven Design. It presents our latest innovations and practical techniques. Topics include: an updated view of CRC card models, finding and evaluating the qualities of candidate design objects, mapping roles to classes and interfaces, strategies for assigning object responsibilities, deciding on the control style of an application, collaboration trust regions, and collaboration contracts.

A picture of the speakers after their talks

21/Sep (2010), 21:00 - 22/Sep (2010), 20:59