[6 January 2010] | Added case studies and instructions for in-class activities. Linked to project page. |
[5 January 2010] | Added project ideas. |
[30 November 2009] | Tentative schedule posted. |
[24 September 2009] | Course times have changed to 13:00-14:30. |
Instructor: | Martin Robillard |
Time and place: | Tuesdays and Thursdays 13:05-14:25 in TR 0070. |
Office hours: | TBD or by appointment. |
Credits: | 4 |
Prerequisite: | COMP 303 or equivalent. |
TA: | Barthélémy Dagenais |
TA availability: | Wednesdays 10:30-11:30 TR 3060 (tentative), or by appointment. |
At the end of the course students should be able to:
Classes will consists of a 30-45min lecture followed by in-class
activities that involve student participation (discussions or presentations).
Taylor, Medvidovic, Dashofy. Software Architecture: Foundations, Theory,
and Practice. Wiley, 2009.
Additional Resources
Note that some of the free on-line resources may only be
available from within the McGill domain.
Reference Material
Course Textbook
Copies will be available at
the Paragraphe
Bookstore.
A copy is also in reserve at the Schulich
Library. Companion website
[GS1994] | Garlan and Shaw. An Introduction to Software Architecture. TR CMU-CS-94-166, 1994. |
[BHS2007] | Buschmann et al. Pattern-Oriented Software Architecture, vol. 4: A Pattern Language for Distributed Computing, 2007. |
[CBB2003] | P. Clements et al. Documenting Software Architectures: Views and Beyond. Addison Wesley Professional, 2003. |
[BCK2003] | L. Bass, P. Clements, R. Kazman. Software Architecture in Practice, Second Edition. Addison Wesley Professional, 2003. |
[IEEE1471] | IEEE Recommended Practice for Architectural Description of Software-Intensive Systems, IEEE Std 1471-2000. |
[ALB2003] | S.T. Albin. The Art of Software Architecture. Wiley, 2003. |
[SAJ2009] | The Architecture Journal (Microsoft) |
[SEI2007] | The Software Engineering Institute's Software Architecture Website. |
[SERadio] | The Software Engineering Radio Podcast. |
[ArchStudio] | ArchStudio4 (and how to make hierarchical diagrams) |
In-class Exam | 35% |
Class activities and participation | 20% |
Project | 45% |
A mark of 50% or more for the project is required to pass the course, irrespective of the total final mark.
Participation marks can be collected by presenting one or more technical capsules, signing up for discussion points for the case studies, asking and answering questions during the discussions, and evaluating project presentations. Regular class attendance is strongly recommended.
In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.
Academic Integrity: McGill University values academic
integrity. Therefore all students must understand the meaning
and consequences of cheating, plagiarism,
and other academic offenses under the Code of Student Conduct
and Disciplinary Procedures (see http://www.mcgill.ca/integrity
for more information).
Each student is required to perform at least one technical capsule. If
time permits, additional capsules can be performed for bonus
marks.
To perform your technical capsule:
The capsule will be evaluated along the following criteria:
The project deliverables are to be completed in three milestones
releases.
Projects are to be completed in groups of one to three
(two is recommended, and only experienced systems developers
should elect to work alone). The number of team members will be
taken into account for when evaluating the significance of
projects.
NOTE: Some of the links will only work from within the McGill domain.
Class Activities
Technical Capsules
Technical capsules are 5-minute introductory oral presentations
about a technology relevant to software architecture. The goal
of technical capsules is to raise awareness of different
technological opportunities that can be considered when
architecting a system.
Case Study Discussions
Each class will involve the discussion of the architecture of an
actual sytem. The discussion will be moderated by 2-3
students. Sign up for case study discussion by emaililng the TA
(see instructions on WebCT). Details on how to lead discussions
will be presented in class.
Project
In accordance with its credit weight, this course requires
students to complete a significant project. The project will
involve the developement of a new, architecturally-significant
software system following an architecture-centric development
process. The system will be created from existing components,
with the focus being on integration, as opposed to coding. An
important part of the project will be the analysis of the reused
components.
Project Examples
The following are examples of projects succesfully completed in
past sections of COMP 529 (or slight variations):
Instructions
Milestones are to be submitted through WebCT. Additional
instructions for completing the project milestones will be
posted here.
Schedule
This schedule is subject to change. It is necessary
to do the readings before class to be able to participate in the
in-class activities.
Date | Lecture Topics | Reading | Case Study |
Tuesday 5 Jan | Introduction to software architecture | Chapter 1-2,17 | |
Thursday 7 Jan | Basic concepts | Chapter 3 | Aesop |
Tuesday 12 Jan | Architectural styles | Chapter 4 | MySQL |
Thursday 14 Jan | Architectural styles | Chapter 4 | Apache Web Server |
Tuesday 19 Jan | Connectors | Chapter 5 | Web Browsers |
Thursday 21 Jan | Connectors | Chapter 5 | Wikimedia |
Tuesday 26 Jan | Modeling | Chapter 6 | Air Traffic Control |
Thursday 28 Jan | Modeling | Chapter 6 | Linux |
Tuesday 2 Feb | Visualization | Chapter 7 | Eclipse Plug-Ins |
Thursday 4 Feb | Extensibility mechanisms | Chapter 9 | Firefox Plug-Ins |
Tuesday 9 Feb | Architectural Analysis | Chapter 8 | J2EE |
Thursday 11 Feb | Enterprise Architectures | Chapter 9 | Salesforce |
Tuesday 16 Feb | Deployment and mobility | Chapter 10 | Android |
Thursday 18 Feb | Non-functional properties | Chapter 12 | Amazon |
Tuesday 23 Feb | No class (study week) | ||
Thursday 25 Feb | No class (study week) | ||
Tuesday 2 Mar | Security and trust | Chapter 13 | Google Chrome |
Thursday 4 Mar | Security and trust | Chapter 13 | SELinux |
Tuesday 9 Mar | Evolution and adaptation | Chapter 14, [MSN2001], [BR2006] | Web Services |
Thursday 11 Mar | Evolution and adaptation | Chapter 14, [SJS2005] | Gnutella |
Tuesday 16 Mar | Computer Game Architectures | ||
Thursday 18 Mar | Domain-specific architectures | Chapter 15 | |
Tuesday 23 Mar | No class | Chapter 8 | |
Thursday 25 Mar | Exam |   | |
Tuesday 30 Mar | Aspect-Orientation | [KHH2001] | CelsiusTech |
Thursday 1 Apr | Exam review and presentation preparation | Internet Information Systems | |
Tuesday 6 Apr | Project presentations | ||
Thursday 8 Apr | Project presentations | ||
Tuesday 13 Apr | Project presentations |