CSC407 Software Architecture

Winter 2007

Overview

Welcome to CSC407H: Software Architecture. This course is an introduction to the development of system-level architectures and class-level object-oriented designs for software systems. There is a special emphasis on the study of architecture and design patterns: the core of solutions to commonly occurring design problems; representations of design/architecture (with emphasis on the use of UML as a class-level design notation); architectural assessment; product lines; architecture extraction; and refactoring. A knowledge of UML as used for requirements analysis and a working knowledge of Java are assumed.

General Information

Instructor: Greg Wilson

Email: gvwilson@cs.utoronto.ca

Office: BA 4234

Lectures: Mon and Wed 12:00-13:00 MS 2173

Office hours: Wed 11:00-12:00 or by appointment

Tutorials: When and as announced

We will be using Subversion for version control in this course. Check out your repository using:

svn co https://stanley.cs.toronto.edu/svn/csc407-2007-01/your_cdf_id csc407

If you would like to use the rest of DrProject, you may; the URL for the server is:

https://stanley.cs.toronto.edu/csc407-2007-01/drproject

Log in with your CDF user ID and password; your personal project has the same name as your CDF ID.

The course bulletin board is at https://wwwcgi.cdf.toronto.edu/~csc407h/cgi-bin/winter/yabb2/YaBB.pl. Your password is initially set to your student number.

Grading

One half of the mark for each assignment (25% of the total course mark) will be given for a term paper, which is to be written by pairs of students. This paper must describe and contrast the architectures of two open source applications that seek to meet the same needs, such as:

Teams are free to propose other pairs, but must obtain instructor approval.

Exercise 1 10% 2007-01-31 Min Ave Max
...Solution Design patterns 1.5 6.3 10.0
Term paper 4.0 6.5 8.5
Overall 7.5 12.9 18.0
Exercise 2 20% 2007-02-28
Midterm 10% 2007-03-14
Exercise 3 20% 2007-04-09
Final Exam 40% See the schedule

Remark Requests

If you would like an assignment remarked, or want any other adjustment to a grade once it has been given out, please fill in this form and submit it to Greg. Please note that grades may go down as well as up as a result of remarking.

Late Policy

Assignments are due by 17:00 Toronto time on the date specified. Anything submitted between then and midnight on that day will be marked with a 20% penalty; anything submitted after that will receive 0. Exceptions will only be made for medical and family emergencies, with supporting documentation.

All work must be submitted via Subversion. It is your responsibility to ensure that it is readable on CDF; if your PDF or image files cannot be viewed there, the TAs will not mark them.

Lectures

Week 1 Jan 8-12 Introduction; code quality PPT PDF
Week 2 Jan 15-19 Design patterns PPT PDF
Week 3 Jan 22-26 Architectural analysis PPT PDF
Conceptual architecture PPT PDF
Execution architecture PPT PDF
Week 4 Jan 29-Feb 2 Refactoring PPT PDF
Architecture Examples PPT PDF
Week 5 Feb 5-9 Classroom discussion
Week 6 Feb 12-16 ICONIX PPT PDF
Week 9 Mar 5-9 Pipes and Filters PPT PDF
Middleware PPT PDF
Week 10 Mar 12-16 Lecture cancelled
Midterm
Week 11 Mar 12-16 Peer to Peer PPT PDF
Performance Analysis I PPT PDF
Week 11 Mar 19-23 Performance Analysis II PPT PDF

Readings