Winter 2003 CS 746. Advanced Topics: Software Architecture

Department of Computer Science, University of Waterloo

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

TA. Andrew Trevors, adtrevors@plg.uwaterloo.ca

Course newsgroup. uw.cs.cs746 Course email. cs746@swag.uwaterloo.ca

Organizational meeting. Thursday, January 9, 2003. DC3314

Meetings. Mondays & Thursdays, 4:00-6:00, DC3314

Web site. http://plg.uwaterloo.ca/~holt/cs/746/03/

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

Prerequisites. 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.

Seminar organization. The course will be run as a sequence of seminars in which papers relating to software architecture are discussed.

Moderator. In a typical meeting of the class, we will discuss one to three papers. Before hand, one class member, called the "moderator", will be chosen for each paper. The moderator will introduce the paper to the class, 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. There is a strict 20 minute time limit for all presentations, followed by a 10-15 minute discussion on the paper. Before the class, the moderator is to attempt to find and study the web pages of the article's author(s). A tentative schedule for papers being covered can be found at http://plg.uwaterloo.ca/~holt/cs/746/03/schedule.html

Participation. 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.

Assignments. There will be three assignments done either individually or in teams. The first two will explore methods of architecture recovery and analysis using GNU Emacs as a guinea pig system. The final assignment will involve locating and presenting articles on software architecture from recent conferences and journals.

Project. Each student or team of students 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 architecture structures. Some sample topics can be found at http://plg.uwaterloo.ca/~holt/cs/746/03/project.html

Project presentation. Each student or team will present their 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 or team is to turn in their project paper.

Text: 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.

Marking scheme: Class participation 15, Presentation of papers 15, Assignments 30, Course project 40, TOTAL 100.

Last revised 2 Jan 2003, RCH