CS497REJ - Software Patterns, Spring 1997

Credit: .5 to 1 unit

This course is for those who know something about patterns and frameworks but want to become expert. Each person will dissect one or more frameworks and determine the patterns that are in them. We'll make presentations in class on the patterns we've found. Those who take the course for 1 unit will be expected to write a paper on what they've found and to work on larger (or more) frameworks. The course will be student-driven; expect to do more work than I do.

The course will meet from 4-6 on Monday, in 2501 DCL. The call number is 07971

There is a new page that has all the latest activity on the course. This page will remain for historical purposes.

My current plan is to divide the course into two parts. The first will compare and contrast "technical frameworks" and the second will look at some more domain-specific and application oriented frameworks. The technical frameworks are for user interfaces and component integration. These include Java systems like AWT or Beans, OpenDoc, OpenStep, ET++, MFC, and OLE.

One way to compare these systems is to see how they fit together. There are patterns that any windowing system or component integration system has to support. How does a part get more screen real estate? How do you define how a window is displayed? Comparing these systems will be enlightening.

Descriptions of application-oriented frameworks are harder to come by, mostly because the authors usually keep them a secret. One of the most public is a framework for automating factories produced by Sematech (http://www.sematech.org/public/cim-framework/home.html). Andersen Consulting's Eagle Project is part technical framework, but oriented to business computing and it contains things like a workflow manager which is fairly application oriented. SGI's Inventor is a framework for 3D graphics.

I will expect more than just oral presentations. You might write up the frameworks you've studied on the Patterns Stories Web. You might write a paper like "Patterns Generate Architectures" that described the framework. If we get a bunch of decent papers, we could write a book!

Ralph Johnson