OOPSLA'95 DesignFest
Call for Participation

From Ralph Johnson, University of Illinois

The OOPSLA'95 DesignFest celebrates the importance of design and the creativity of designers. You'll work in small groups to solve a particular design problem, bringing to bear your experience in object-oriented design and/or in working on similar problems. The goal is to learn new techniques from each other, to uncover and articulate the analysis and design patterns that we already use subconsciously, and to develop communities interested in design within particular problem domains.

We will provide a timetable, process hints and a list of deliverables to give you a framework for your design efforts and the discovery of patterns. The process will include comparing your work with others, and cooperating in producing a joint final output. Expert mentors will assist the groups with their work.

Each group will have a "recorder" and a "moderator". The recorder is responsible for recording what the group has learned. The moderator is responsible for making sure that the group makes progress. Both should be even-handed and impartial. People with strong opinions about how to solve these problems are especially welcome to DesignFest, but please don't volunteer to be a recorder or a moderator!

Each group at DesignFest will work on one of five problems. Each problem has been defined by a domain expert who will act as your customer. You'll find brief descriptions of each problem at the end of this page. You'll get a more detailed description when you arrive at OOPSLA.

This isn't a design class, so in order to take part you should either know the domain well and have some experience of OO analysis and design, or should be an expert in object-oriented analysis and design.

If you are interested in participating, please apply by sending a brief biography to the DesignFest chair, stating which of the five problems you are interested in, and why you are suited to work on them. Please indicate if you would be willing to be a recorder or a moderator, and why you would be suited for this role. The chair will use this information to create balanced groups. The chair will accept people first-come first-serve. You can even apply at OOPSLA if space is still available. But since space is limited, it is best to apply immediately.

Apply by sending e-mail to designfest@chip.cs.uiuc.edu with the subject "apply".

The five problems (and their domain experts) are:

Distributed programming - Douglas C. Schmidt - Washington University

Design the software architecture for a distributed imaging service. This service will be used to store and retrieve medical images (such as X-rays) in a large-scale distributed health care delivery system (such as a metropolitan hospital system connected by high-speed and low-speed LANs and WANs). Your solution must be efficient, which means it will have to use (1) various communication mechanisms (such as message passing and bulk image transfer), (2) parallelism (to support concurrent image storage and retrieval at image servers), and (3) dynamic configuration (which allows flexible partitioning of services onto hosts to support both high-speed and low-speed networks and computers).

Process Control -- Doug Lea -- SUNY Oswego

Design the control system for a radio controlled toy car. The car is told the general direction to go. It then goes in that direction, except that it might run into obstacles. A guidance component is told when the car runs into obstacles, and will develop a plan to go around it. Other components control the speed of the engine and the steering, observe the speed of the wheels, and calculate the speed and direction of the car. They signal the guidance component when the car runs into an obstacle, and take instructions from the guidance component to go in a new direction. You are to design all aspects of the system except the guidance component, which will be contracted out according to your specifications.

Navigating Objects in Repositories -- Ken Auer -- Knowledge Systems Corporation

Patterns are taking off. More and more organizations need a toolset to help navigate through a sea of p-baked (0 < p < 1) patterns and pattern languages that they have collected and are being added to. Design a system that can store and retrieve these patterns in either an RDBMS, OODBMS, or formatted flatfile (HTML, WindowsHelp, etc.). Each customer will want to store their patterns in their own repository. Patterns should be able to be exported to or imported from one repository to another (one format to another). Raw text patterns (e.g. one from an Internet mailing lists) should be able to be converted to a form suitable for the repository (possibly with a tool allowing someone to mark up the raw text to provide hypertext links, keywords, etc.). You are working for a "for profit" software tool provider who sees this tool as release 1 of a series of tools that exploit patterns for software developers.

Workflow -- Larry Best -- American Management Systems

Design a system for collecting delinquent accounts for a bank with a large portfolio of consumer loans (car loans, credit card, mortgages, etc.) Some customers are late in paying. The overall business objective is to collect as many of these payments as possible by calling delinquent borrowers on the telephone. An important strategy is to give a priority to calls and to assign specific collectors based on various factors, including the amount past due, the number of payments past due, the number of prior delinquent payments, and customer demographics. Since it takes an average of three calls to reach a person, the system dials out on as many as twice the number of lines as there are collectors to take the call. Once the call is answered by a person, the computer assigns the call to a particular collector and displays a script and other related borrower information. The collector then logs the result of the conversation by categorizing the call result (promised to pay, wants to reschedule payments, etc.) and entering free-form comments as appropriate. The system then follows up on this result as appropriate, for example, scheduling a call for the promised payment date, sending a letter, or assigning the case to skip-trace (specialists in tracking down a borrower who has moved without providing a forwarding address).

Reservations and Scheduling -- Desmond D'Souza -- ICON Computing

Design a system to manage reservations, room preferences, room occupancy, and payment, for a nationwide chain of hotels. The chain maintains several Automatic Reservation Machines (ARMs), which allow access to any of the participating hotels, and issues electronic ARM cards to selected customers. The card can also be used as a credit card (it permits the customer to plan and use hotel arrangements without paying immediately; the customer is billed monthly by the chain). Reservations may be wait-listed. When promoted from the waiting list, the customer is contacted automatically to accept the confirmation. There are some policies about how to select reservations to promote from waiting list to confirmed, and how far to over-book the hotel rooms. If a reservation for a hotel is canceled at least 2 weeks before the arrival date, any deposit is refunded to the appropriate account (or mailed to the customer). If a reservation is confirmed, then an appropriate room _must_ be guaranteed upon arrival.