Course on Software Architecture, spring 2001

The course Software Architecture is given by Marcello Bonsangue. It serves students of the third and fourth year of the school in computer science at the University of Leiden. It is complementary to the course Software Engineering

This course is worth 4 study points. It is taught in English.

In the academic year 2000/2001, the course is scheduled in the second semester.

The lessons will be given on Tuesday morning (January 23,30; February 6,13,20,27; March 6,13,20,27; and April 3,10,24), from 9:15 till 11:00 o'clock, in room WI 403.


Objective:

As the software component of systems becomes larger and more complex, the need to understand them at a higher level of abstraction becomes more important. The software architecture of a computing system describes the overall structure of the system in terms of the software components, the externaly visible properties of those components, and the relationships among them. For large software system like traffic management systems, process control systems, and command-and-control systems, the choice of a software architecture is becoming more crucial within the overall development process. This course will discuss different software architecture styles, their properties and the types of problems for which they are most appropriate, it will examine different formalisms for specifying a software architecture, and it will explore the role of software architecture throughout the software development life cycle.


Prerequisites:

Students should have taken the course Software Engineering.


Course Outline:

The course is concerned with an analysis of the architecture styles that have evolved to date including data flow architectures, procedure based architectures, object oriented architectures, event driven architectures, shared information systems (blackboard, databases, repositories for integration), distributed architectures, dynamic architectures. For each architectural style we discuss the technological background of their evolution, their vocabulary, their advantages and disadvantages, their formal model. The course also deals with the role of software architectures in the software life cycle: requirements analysis, architecture reviews, architecture reuse.


Grades:

Students will be evaluated on the basis of their in-class participation (15%), small home assignments (25%), and a final oral examination (60%).


Required Textbook:

cover
The main text for the course is the book "Software Architecture: Perspectives on an Emerging Discipline", by M. Shaw and D. Garlan, Prentice Hall, 1996 (ISBN 0-13-182957-2).
 
As supplementary text we will use the book "Software Architecture in Practice", by L. Bass, P. Clements, and R. Kazman, Addison Wesley, 1998 (ISBN 0-201-19930-0).


Schedule of lectures

Nun Date Topic Reading Homework
1.1 23 Jan Overview and organization    
1.2   Why software architecture [SG96]:1, [BCK98]:1  
2.1 30 Jan What is a software architecture [SG96]:2.1; [BCK98]:2  
2.2   Data flow architectural style:
- Batch Sequential
- Pipes and filters
- Process-Control systems
[SG96]:2.2,2.8  
3.1 6 Feb Call and return architectural style:
- Procedure call
- Remote procedure call
[SG96]:2.9  
3.2   - Layered systems
- Object oriented systems
[SG96]:2.3,2.5 Homework 1 on Pipes and Filter architecture of (due on 27 Feb)
  13 Feb No class    
4.1 20 Feb Independent components architectural style:
- Communicating processes
[And91]  
4.2   - Client-server systems [ZA96]:4  
5.1 27 Feb - Event systems (implicit and explicit)
Data centered architectural styles
- Passive repositories: Linda
[SG96]:2.4,2.6  
5.2   - Active repositories: Blackboard
Other architectural styles
- virtual machines
- mixed syles
[SG96]:2.7,2.10  
6.1 6 Mrt Quality attributes [BCK98]:5  
6.2   Choosing an architectural style [SG96]:3.1,3.4  
7.1 13 Mrt Case study: World Wide Web [BCK98]:7  
7.2   Case study: OMA/CORBA [BCK98]:8  
8.1 20 Mrt Modifiability analysis: SAAM [BCK98]:9  
8.2   Discussion homework 1   Homework 2 on architectural design (due on 10 Apr)
9.1 27 Mrt Tradeoff analysis: ATAM [KKBLLC98]  
9.2   Presenting an architecture [SG96]:7.1,7.2  
10.1 3 Apr Architecture Description Languages [SG96]:8  
10.2   From architecture to design:
overview of ROOM
  Homework 3 on ATAM (due on 24 Apr)
11.1 10 Apr Reusing architectures
- Product lines
- Reference architectures
- open systems
[BCK98]:15,17  
11.2   Componentware: a technological overview    
12.1 24 Apr Componentware: a technological overview (cont'd)    
12.2   Architectural mismatch [GAO95]  


Bibliography

[And91] G. Andrews, Paradigms for process interaction in distributed programs, ACM Computing Surveys, 23(1):49-90, 1991.
[Pdf copy]

[BCK98] L. Bass, P. Clements and R. Kazmann, Software Architecture in Practice, Addison Wesley, 1998.

[GAO95] D. Garlan, R. Allen, and J. Ockerbloom, Architectural Mismatch, or Why it is hard to build systems out of existing parts, in Proceedings Seventeenth International Conf on Software Engineering (ICSE-17), April 1995.
[Postscript copy]

[KKBLLC98] R. Kazman, M. Klein, M. Barbacci, T. Longstaff, H. Lipson and J. Carriere, "The Architecture Tradeoff Analysis Method", in Proceedings of ICECCS, August 1998.
[Pdf copy]

[SG96] M. Shaw and D. Garlan, Software Architectures Perspectives on an Emerging Discipline, Prentice Hall, 1996.

[ZA96] D. Zantinge and P. Adriaans, Managing Client/Server, Addison Wesley, 1996.


Bonsangue Marcello
Last modified: Mon Apr 23 10:42:55 MET DST 2001