[6 October 2006] | The final exam is December 8, 2PM, in SH 688 (688 Sherbrooke St.) Room 295. |
[7 September 2006] | I added a message board in the course's WebCT page. You can use it to form your project teams. |
[4 June 2006] | The class time has been updated. |
[12 June 2006] | Major update of the schedule, with reading list. Basic description of the project and homework. |
[4 May 2006] | I posted a tentative schedule. The details will likely change, but the main topics will remain. |
[2 May 2006] | Registration: The fall course section is now open for registration. |
Instructor: | Martin Robillard |
Time and place: | Tuesdays and Thursdays 8:35-9:55 in MAAS 328. |
Office hours: | Thursday 10:00-10:30 |
Credits: | 4 |
TA: | Xiaopeng (Sean) Qu (xqu at cs mcgill ca) |
TA availability: | Wednesdays 16:00-17:00 in the Trottier Lab |
In this course, you will acquire the concepts and techniques that will enable you to understand, analyze, maintain, and improve the architecture of large software systems. The course will also touch on some key issues of software engineering research related to the question of software modularity.
The course format will include traditional lectures, a software development project, and a series of self-directed tutorials. The practical aspects of the course will involve mostly Java-based component technology (e.g., Eclipse plug-ins, J2EE components).
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.
A course pack containing
the mandatory reading material will be
available at the McGill Bookstore
Complete References
In reserve at the library.
Reference Material
Required Material
[BCK1998] | L. Bass, P. Clements, R. Kazman. Software Architecture in Practice. Addison-Wesley, 1998. |
[BCK2003] | L. Bass, P. Clements, R. Kazman. Software Architecture in Practice, Second Edition. Addison-Wesley, 2003. Ebook. |
[CL2002] | I. Crnkovic and M. Larsson (Eds). Building Reliable Component-based Software Systems. Artech House, 2002. |
[MMY2002] | H. Mili, A. Mili, S. Yacoub, E. Addy. Reuse-Based Software Engineering: Techniques, Organization, and Controls. Wiley Inter-Science, 2002. |
[RJB2005] | J. Rumbaugh, I. Jacobson, and G. Booch. The Unified Modeling Language Reference Manual, 2nd edition. Addison-Wesley, 2005. |
[SZY2002] | Clemens Szyperski. Component Software: Beyond Object-Oriented Programming, 2nd Edition. Addison-Wesley, 2002. |
Midterm exam | 25% |
Project | 35% |
Final exam | 40% |
A mark of 50% or more for the 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, material found in the mandatory reading, lessons learned from the tutorials, and any general knowledge related to the project objectives. The midterm will cover all the material covered until and including 19 October. The final will cover everything.
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).
The project will give you the opportunity to experiment first
hand with the issues and trade-offs associated with component-based
software development. For the project you will be required to
design, implement, and test a software application that uses
third-party components and that integrates into the Eclipse Rich
Client Platform. The project will be broken down into three
deliverables.
The tutorials series will cover the key aspects of different
component technologies that will not necessarily be used for the
project (e.g., Java Beans, J2EE, CORBA, AOP). The tutorials are
self-directed and can be done at the discretion of the students.
There are no deliverables associated with the tutorials.
However, they are a mandatory part of the course and the
material they contain will be evaluated as part of the
exams. The tutorials will be available on-line through WebCT.
Project Description
Project and Homework
The practical aspects of the course will include two different
types of activities: a project, and a series of
tutorials.
Schedule
This schedule is subject to change. It is strongly recommended
to do the readings before class. The keys in the reading
list refer to the list
of references. References in italics are optional.
Date | Lecture Topics | Reading | Project & Homework |
Tuesday 5 Sep | Introduction to Software Architecture | [BCK1998] Chapter 2 | |
Thursday 7 Sep | Basic Concepts of Component-Based Software Engineering (CBSE) | [CL2002] Chapter 1; [SZY2002] Section 4.1; [MMY2002] Chapter 21 | |
Tuesday 12 Sep | Architectural Mismatch | [BCK2003] Chapter 18; [GAO1995] | |
Thursday 14 Sep | Component Models: Java Beans | [CL2002] Chapter 2; [SZY2002] Section 14.3; [CL2002] Chapter 4, 66-70 | Email your group information to the TA; Complete Tutorial 1: Java Beans |
Tuesday 19 Sep | Documenting Architectures | [RJB2005] Section "Components"; [BCK2003] Chapter 9; [ICG2004] | |
Thursday 21 Sep | Design Workshop | ||
Tuesday 26 Sep | No lecture (replaced by demos) | Email your project proposal to the TA (23:59) | |
Thursday 28 Sep | Application Frameworks | [MMY2002] Chapter 13 | |
Tuesday 3 Oct | The Eclipse Platform | Eclipse Platform Technical Overview | Complete Tutorial 2: Eclipse Plug-Ins |
Thursday 5 Oct | The Eclipse Plug-In Architecture | Notes on the Eclipse Plug-In Architecture | Complete Tutorial 3: Eclipse Extensions |
Tuesday 10 Oct | No class (Monday classes scheduled today) | ||
Thursday 12 Oct | Case study: the Model View Controller | [RW2005] | Project 1 Due (23:59) |
Tuesday 17 Oct | Component Models: OSGI | [CL2002] Chapter 4, 79-83; OSGi Framework | |
Thursday 19 Oct | Component Models: Enterprise Java Beans | J2EE Tutorial, Section 1; [SZY2002] Chapter 14 | Complete Tutorial 4: J2EE |
Tuesday 24 Oct | Midterm | ||
Thursday 26 Oct | Component Models: CORBA | [SZY2002] Chapter 13 | Complete Tutorial 5: CORBA |
Tuesday 31 Oct | Mining Aspects from Version History (guest Lecture by S. Breu). The course will start at 9:00am | [BZ2006a] | |
Thursday 2 Nov | Component Models: COM and .NET | [CL2002] Chapter 4, 71-72; [SZY2002], Chapter 15 | |
Tuesday 7 Nov | Managing Concern Interfaces (guest lecture by J.S. Boulanger) | [BR2006] | |
Thursday 9 Nov | Guest lecture by E. Dyke, Ericsson Canada | Project 2 Due (23:59) | |
Tuesday 14 Nov | Aspect-Oriented Programming Part 1 | [LAD2002], [EFB2001] | |
Thursday 16 Nov | Aspect-Oriented Programming Part 2 | [SCH2004], [AspectJ] | Complete Tutorial 6: AOP |
Tuesday 21 Nov | Advanced Topics on Frameworks | [FGS2006] | |
Thursday 23 Nov | Architectural Conformance | [MNS2001] sections 1-3, 7-8 | Schedule project demo |
Tuesday 28 Nov | Architecture Description Languages in Practice | [ACN2001] | Complete Tutorial 7: ArchJava |
Thursday 30 Nov | Technical Capsules | ||
Tuesday 5 Dec | Software Product Lines and Generative Programming | [MMY2002] Chapter 22 | Project 3 due (23:59) |