Fall 2008: CS 746. Advanced Topics: Software Architecture

School of Computer Science, University of Waterloo

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

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

Organizational meeting. Thursday, September 11, 2008. MC2036B

Meetings. Thursdays, 4:00-6:30, MC2036B

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

Description. This is a seminar course that reviews 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. Ideally, there will be 20 minutes for the 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/08/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. The course assignments are covered in a separate web page.

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.

Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. All members of the UW community are expected to hold to the highest standard of academic integrity in their studies, teaching, and research. The Office of Academic Integrity's website (www.uwaterloo.ca/academicintegrity) contains detailed information on UW policy for students and faculty. This site explains why academic integrity is important and how students can avoid academic misconduct. It also identifies resources available on campus for students and faculty to help achieve academic integrity in — and out — of the classroom.

Grievance:  A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70 - Student Petitions and Grievances, Section 4, http://www.adm.uwaterloo.ca/infosec/Policies/policy70.htm

Discipline: A student is expected to know what constitutes academic integrity, to avoid committing academic offenses, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course professor, academic advisor, or the Undergraduate Associate Dean. When misconduct has been found to have occurred, disciplinary penalties will be imposed under Policy 71 – Student Discipline. For information on categories of offenses and types of penalties, students should refer to Policy 71 - Student Discipline, http://www.adm.uwaterloo.ca/infosec/Policies/policy71.htm

Avoiding Academic Offenses:  Most students are unaware of the line between acceptable and unacceptable academic behaviour, especially when discussing assignments with classmates and using the work of other students.  For information on commonly misunderstood academic offenses and how to avoid them, students should refer to the Faculty of Mathematics Cheating and Student Academic Discipline Policy, http://www.math.uwaterloo.ca/navigation/Current/cheating_policy.shtml

Appeals: A student may appeal the finding and/or penalty in a decision made under Policy 70 - Student Petitions and Grievances (other than regarding a petition) or Policy 71 - Student Discipline if a ground for an appeal can be established. Read Policy 72 - Student Appeals, http://www.adm.uwaterloo.ca/infosec/Policies/policy72.htm

Last revised 10 Sept  2008, RCH