[15 November 2007] | Final changes to the schedule. The final exam will be released on December 6 (am). |
[20 September 2007] | Released description of Project 2. |
[31 August 2007] | Released description of Project 1. |
[15 June 2007] | Course outline and basic description of the project. |
[13 June 2007] | The course schedule has changed to the 8:35-9:55 slot. |
Instructor: | Martin Robillard |
Time and place: | Tuesdays and Thursdays 8:35-9:55 in Trottier 0060. |
Office hours: | Tuesday and Thursdays 10:00-11:00 or by appointment. |
Credits: | 4 |
TA: | Barthélémy Dagenais (bart at cs dot mcgill dot ca) |
TA availability: | Tuesday 11:30-12:30; Thursday 13:00-14:00 in Trottier 3106 |
NOTE: This course is an informal prerequisite for
graduate students who would like to take my seminar course on software
evolution in the winter term.
I. Gorton. Essential Software
Architecture. Springer, 2006.
Additional References
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.
[MCB2007] | M. McBride. The Software Architect. Communications of the ACM, 50(5):75-81, May 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. |
[SEI2007] | The Software Engineering Institute's Software Architecture Website. |
[SERadio] | The Software Engineering Radio Podcast. |
Midterm exam | 20% |
Class participation | 10% |
Project 1 (Integration) | 20% |
Project 2 (Case study) | 20% |
Final exam | 30% |
A mark of 50% or more for each project is required to pass the course, irrespective of the total final mark.
The following material is subject to evaluation: Anything I said in class, anything that is part of the learning objectives for the in-class workshops, material found in the mandatory reading, and any general knowledge related to the project objectives.
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).
Projects
There will be two projects for this class. In the first project,
you will study how to integrate existing components. In the
second project, you will prepare a case study of the
architecture of an existing system.
Schedule
This schedule is subject to change. It is strongly recommended
to do the readings before class. Reading in italics are optional.
Date | Lecture Topics | Reading | Projects |
Tuesday 4 Sep | Introduction to Software Architecture | Gorton, c. 1-2; [MCB2007] | |
Thursday 6 Sep | Quality Attributes | Gorton, c.3; [BCK2003], c.4-5 | |
Tuesday 11 Sep | Architectural Mismatch (introduction) | [GAO1995] | Project groups complete |
Thursday 13 Sep | Software Components | Handouts; Gorton, 4.1,4.2,5.1 | |
Tuesday 18 Sep | Java Beans | [JavaBeans Spec] | Email project overview to TA (by 23:59) |
Thursday 20 Sep | Architectural Mismatch (solutions) | [BCK2003], 18.2 | |
Tuesday 25 Sep | Documenting Software Architectures | Gorton, c.6; [BCK2003], c.6,9 | |
Thursday 27 Sep | Workshop | None | |
Tuesday 2 Oct | Frameworks: Principles and Challenges | None | |
Thursday 4 Oct | Eclipse and OSGi | Eclipse Platform Technical Overview; About the OSGi Service Platform | |
Tuesday 9 Oct | No class (Monday classes scheduled today) | ||
Thursday 11 Oct | Eclipse Plug-In Architecture | Notes on the Eclipse Plug-In Architecture | |
Tuesday 16 Oct | Introduction to Middleware-based Architectures | Gorton, c.4 | |
Thursday 18 Oct | Middleware-based Architectures (discussion) | [ICG2007] | |
Tuesday 23 Oct | Midterm | None | |
Thursday 25 Oct | Enterprise and Web Applications | Gorton, 5.2, 5.3 | |
Tuesday 30 Oct | MVC and the Spring Framework (lecture by B. Dagenais) | ||
Thursday 1 Nov | Software Product Lines | Gorton, c.9 | |
Tuesday 6 Nov | Aspect-Oriented Programming | Gorton, c. 10; [LAD2002], [EFB2001] | |
Thursday 8 Nov | Aspect-Oriented Programming | [SCH2004], [AspectJ] | Project 1 Due (by 23:59) |
Tuesday 13 Nov | Architectural Conformance: JMantlet | [BR2006] | |
Thursday 15 Nov | Architectural Conformance: Fragments | [FGS2006] | |
Tuesday 20 Nov | Architectural Conformance: ArchJava | [ACN2001] | |
Thursday 22 Nov | Architectural Recovery: DiscoTect | [YGS2004] | |
Tuesday 27 Nov | Student Presentations | ||
Thursday 29 Nov | Student Presentations | ||
Friday 30 Nov | |||
Tuesday 4 Dec | No class | Project 2 Due (by 23:59) |