COMP 529 Software Architecture - Fall 2007


[News] [Basic Information] [Description] [Reference Material] [Evaluation] [Projects] [Schedule]


News

[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.

Basic Information

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

Description

Overview

Very little software is actually written from scratch. Instead, software projects usually rely on existing libraries, frameworks, and components. Such building blocks must be carefully integrated to ensure that the resulting applications are robust and maintainable. The necessity to integrate, reuse, and maintain large collections of software components has led to important challenges for computer scientists and engineers which, in turn, resulted in the elaboration of various component models and integration mechanisms. This course will address issues of large-scale software development usually referred to as "software architecture", including architectural design and documentation, component models and technologies, software product lines, frameworks, and aspect-oriented programming.

Learning Outcomes

Course Format

The course format will include traditional lectures, in-class workshops, and two projects.

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.

Reference Material

Course Textbook

I. Gorton. Essential Software Architecture. Springer, 2006.
Copies will be available at the Paragraphe Bookstore. A copy is also in reserve at the Schulich Library.

Additional References

Note that some of the free on-line resources may only be available from within the McGill domain.

[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.

Evaluation

Midterm exam20%
Class participation10%
Project 1 (Integration)20%
Project 2 (Case study)20%
Final exam30%

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.

DateLecture TopicsReadingProjects
Tuesday 4 SepIntroduction to Software ArchitectureGorton, c. 1-2; [MCB2007]
Thursday 6 SepQuality AttributesGorton, c.3; [BCK2003], c.4-5
Tuesday 11 SepArchitectural Mismatch (introduction)[GAO1995]Project groups complete
Thursday 13 SepSoftware Components Handouts; Gorton, 4.1,4.2,5.1
Tuesday 18 SepJava Beans[JavaBeans Spec]Email project overview to TA (by 23:59)
Thursday 20 SepArchitectural Mismatch (solutions)[BCK2003], 18.2
Tuesday 25 SepDocumenting Software ArchitecturesGorton, c.6; [BCK2003], c.6,9
Thursday 27 SepWorkshopNone
Tuesday 2 OctFrameworks: Principles and ChallengesNone
Thursday 4 OctEclipse and OSGiEclipse Platform Technical Overview; About the OSGi Service Platform
Tuesday 9 OctNo class (Monday classes scheduled today)
Thursday 11 OctEclipse Plug-In ArchitectureNotes on the Eclipse Plug-In Architecture
Tuesday 16 OctIntroduction to Middleware-based ArchitecturesGorton, c.4
Thursday 18 OctMiddleware-based Architectures (discussion)[ICG2007]
Tuesday 23 OctMidtermNone
Thursday 25 OctEnterprise and Web ApplicationsGorton, 5.2, 5.3
Tuesday 30 OctMVC and the Spring Framework (lecture by B. Dagenais)
Thursday 1 NovSoftware Product LinesGorton, c.9
Tuesday 6 NovAspect-Oriented ProgrammingGorton, c. 10; [LAD2002], [EFB2001]
Thursday 8 NovAspect-Oriented Programming[SCH2004], [AspectJ]Project 1 Due (by 23:59)
Tuesday 13 NovArchitectural Conformance: JMantlet[BR2006]
Thursday 15 NovArchitectural Conformance: Fragments[FGS2006]
Tuesday 20 NovArchitectural Conformance: ArchJava[ACN2001]
Thursday 22 NovArchitectural Recovery: DiscoTect[YGS2004]
Tuesday 27 NovStudent Presentations
Thursday 29 NovStudent Presentations
Friday 30 Nov
Tuesday 4 DecNo classProject 2 Due (by 23:59)