CS 746G Topics in Software Design, Concentrating on Software Architecture

Department of Computer Science, University of Waterloo, Winter 1998


Ric Holt, DC 2508, x4671, holt@uwaterloo.ca


Tuesdays & Thursdays, 4:00-5:30, DC 3307

Web site:



This is a seminar course that reviews current literature on software architecture.


There is no formal course prerequisite. However, students are expected to be familiar with the problems of structuring large, complex software systems. Courses such as CS446 and CS445 may be useful background, but are not required. Some industrial experience may be helpful.


The course will be run as a sequence of seminars in which papers relating to software architecture are discussed. In a typical meeting of the class, we will discuss one or two papers. Before hand, one class member, called the "moderator", will be chosen for each paper. The moderator will introduce the paper to the class, in about 10 minutes, and make sure that the relevant points in the paper are clarified in the discussion. Points in the paper should be related to points in other papers. Before the class, the moderator is to attempt to find and study the web pages of the article's author(s).

All participants are to read each article before the meeting that discusses the article. All participants have the responsibility to see that they and other participants get the maximum benefit from the discussions.

Each student will do a project along the theme of software architecture. Ideally, this will involve practical work, such as investigating the architecture of an actual software system, or building demo tools for displaying software structures.

Each student will present his/her project during the last few weeks of class. Presentations are to be professional quality, with well prepared slides, beginning with a clear statement of the area of interest, and proceeding to an easy-to-follow technical presentation. On the last day of class, each student is to turn in his/her project paper.


The text that is closest to this material is Shaw and Garlan's book on Software Architecture. However, their book serves primarily as background and does not cover the breadth of this course.