Fall 2004 CS 746. Advanced Topics: Software Architecture

School of Computer Science, University of Waterloo

Professor. Ric Holt, DC 3003, x7242, holt@uwaterloo.ca

TA. Jingwei Wu, j25wu@uwaterloo.ca

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

Organizational meeting. Tuesday, September 14, 2004. DC3314

Meetings. Tuesdays, 4:00-6:00, DC3314

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

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/04f/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 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. Presenter should hand out hardcopy of slides at beginning of 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 22 September 2004, RCH