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 | |
| Week 2 | Jan 15-19 | Design patterns | PPT | |
| Week 3 | Jan 22-26 | Architectural analysis | PPT | |
| Conceptual architecture | PPT | |||
| Execution architecture | PPT | |||
| Week 4 | Jan 29-Feb 2 | Refactoring | PPT | |
| Architecture Examples | PPT | |||
| Week 5 | Feb 5-9 | Classroom discussion | ||
| Week 6 | Feb 12-16 | ICONIX | PPT | |
| Week 9 | Mar 5-9 | Pipes and Filters | PPT | |
| Middleware | PPT | |||
| Week 10 | Mar 12-16 | Lecture cancelled | ||
| Midterm | ||||
| Week 11 | Mar 12-16 | Peer to Peer | PPT | |
| Performance Analysis I | PPT | |||
| Week 11 | Mar 19-23 | Performance Analysis II | PPT |
Readings
- Design patterns: you are responsible for knowing all of these
- Software
Practice (we're using many of their lecture notes)
- See also Reekie and McAdam: A Software Architecture Primer
- A Reference Architecture for Web Servers
- Omondo UML tools for Eclipse
- SOA and all that:
- Readings on REST:
- Performance Modeling
- Willig: Short Introduction to Queueing Systems
- Adan: Stochastic Models for Design and Planning
- Zhao: Single Queueing Systems
- Perros: Computer Simulation Techniques
- Cooper: Intro to Queueing Theory
- Sigman: Queueing Theory and Applications
- Stallings: Queueing Analysis
- Recommended Reading