From Ralph Johnson, University of Illinois
Call for Participation
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
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 email@example.com with the subject
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
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.