In this course you will be covering several topics in Modern Software Architecture design and analysis. Design is covered by the book: Applied Software Architecture by Christine Hofmeister, Robert Nord and Dilip Soni, Addison Wesley. Analysis (working with existing code, integrating purchased Software, repair and maintenance) is a research topic that is not covered in any books. For this purpose we will be reading several papers on various subtopics. A project in analysing open source systems will help you to apply and increase understanding about what you are learning. (Many thanks to Richart Holt from University of Waterloo for helping with setting up the structure of this class).
This course has few formal lectures and is mostly run by student participation and preparation for predetermined subjects. During the first week, students are expected to pick subjects of their choice for which they will become expertand present research and progress on project on a weekly basis. There will be regular quizzes in each class to ensure your attention and attendance.
Projects can be done in teams of two. Pick an open source system and analyze its architecture. This is done in two ways:
Students will give 45 minute seminars along with reports (5000 words) by choosing from the topics in the schedule. A systematic review is a means of evaluating and interpreting all available research relevant to a particular topic area. Each report is handed in one week before the presentation. For each topic papers listed in the schedule serve only as a starting point. I expect to see a much more extended Bibliography with each paper.
Reading ScheduleEach lecture will start with a quiz on last week's topic. I will then give a brief introduction to the topic of this week. This is then followed by student presentations on the subject based on individual research and overview of the topic. Readings listed for each class are to be read beforehand. For the student who is going to review that particular topic, these papers serve as a starting point. For the other students this serves as a basis for discussion. The quiz will cover random content from papers to ensure that you read the papers. |
Week | Topic | Homework |
Introduction | ||
1 |
What is Software Architecture |
- Garlan: An Introduction to Software Architecture |
ARCHITECTURAL RESTAURATION -- Analysis | ||
2 |
Software Decay |
- Parnas: Software Aging |
3 |
Reverse Engineering |
- Hassan: Architecture Recovery of Web Applications |
4 |
ADL |
- Shaw: Perspectives on an Emerging Discipline, Ch. 2 |
ARCHITECTURAL CONSTRUCTION -- Design | ||
5 |
Architectural Views |
- Hofmeister: Applied Software Architecture, Ch.1,4-7 |
6 |
Model Driven Architecture |
- Stalder: The basics of Model Driven Architecture |
7 |
Reference Architectures |
- Hassan: A Reference Architecture for Web Servers |
8 |
COTS and Reuse |
- Big Ball of Mud |
9 |
Connectors |
- Allen: A Formal Basis for Architectural Connection |
10 |
Case Studies I |
Project Reports |
11 |
Case Studies II |
Project Reports |
12 |
Software Architecture and how it fits into the Software Engineering Process |
- Fowler: Who Needs an Architect |