Course on Software Architecture, fall 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 2001/2002, the course is scheduled in the first semester.

The lessons will be given on Monday morning (September 3,17,24; October 1,8,15,22; November 5,12,19,26; December 3), from 11:15 till 13:00 o'clock, in room WI 401.


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 and exams:

Students will be evaluated on the basis of three small home assignments (40%), and a final written examination (80%). At the retrial examination, students will be evaluated only on the basis of an oral examination.
Nun Name HW1 HW2 HW3 HW E FE   TOT
9926054 L. Bakker 5 5 7.5 2 9 7   9
9806903 V. Blanovich
-
-
-
0
4
3
 
3
9900837 J. de Bruin 10 10 7.5 4 9 7   10
9910921 E.-J. de Bruin 7.5 5 5 2 5 4   6
0118540 M. Coleman 5 5 7.5 2 4,5 4    6
9909451 M. Groeneweg 2.5 5 7.5 2  -    
9808280 M. Hoogeboom 7.5 7.5 2.5 2 9 7   9
0149667 C. Hongqin 5 10 10 3  4 3    6
9221085 M.-J. Lenstra 7.5 7.5 5 3  4,5 4   7
0152609 H. Li 10 7.5 10 4  7 6   10
9900845 G. Liem 7.5 5 10 3 2 2   5
0025291 A. Paril 2.5 - - 0  -    
9908839 E. Rikkers 5 - - 1 - -    
9633189 P. Simoons 5 - - 1  -  -    
9706909 M. de Swart 7.5 10 7.5 3  10 8   10
9733752 A. Tijms 5 7.5 7.5 3  8,5 7   10
9819053 J. Visser 2.5 - - 0  7,5 6   6
9842276 W.-M. Wong 10 5 10 3  0,5 0   3
0161691 S. Yafei 2.5 7.5 7.5 2  8 6   8

HWi = 0..10 (Grade homework i)

HW = (HW1+HW2+HW3/3)*4/10 (average HWi's normalized to 4)

E = 0..10 (Grade written examination)

FE = E*8/10 (examination normalized to 8)

TOT = min{10,HW+FE} (final grade)

The final examination will take place in room 412 on Tuesday 15 January, from 10:00 to 13:00 o' clock.


Required Textbook:

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


Schedule of lectures

Nun Date Topic Reading Homework
1.1 3 Sep Overview and organization    
1.2   Why software architecture [SG96]:1, [BCK98]:1  
  10 Sep No class    
2.1 17 Sep What is a software architecture [BCK98]:2  
2.2   Data flow architectural style:
- Batch Sequential
- Pipes and filters
- Process-Control systems
[BCK98]:5.1, [SG96]:2.2,2.8 Homework 1: a billing system (due on Oct 1st)
3.1 24 Sep Call and return architectural style:
- Procedure call
- Remote procedure call
- Layered
[SG96]:2.5  
3.2   - Object-oriented [BCK98]:5.1, [SG96]:2.3  
4.1 1 Oct Independent components architectural style:
- Communicating processes
[BCK98]:5.3, [And91]  
4.2   - Client-Server [ZA96]:4  
5.1 8 Oct - Event systems
Data centered architectural styles
- Passive repositories
[SG96]:2.4,2.6  
5.2   - Active repositories
Other architectural styles
- virtual machines
- mixed syles
[SG96]:2.7,2.10  
6.1 15 Oct Quality attributes [BCK98]:4  
6.2   Choosing an architectural style [BCK98]:5 Homework 2: a small bank software system (due on Nov 5th)
7.1 22 Oct Creating an architecture [BCK98]:6.1  
7.2   Case study on interoperability: WWW [BCK98]:7  
  29 Oct No class    
8.1 5 Nov Case study on interoperability: WWW [BCK98]:7  
8.2   Case study on integrability: CORBA [BCK98]:8  
  12 Nov No class    
9.1 19 Nov Case study on integrability: CORBA [BCK98]:8  
9.2   Modifiability analysis: SAAM [BCK98]:9 Homework 3: A scenario-based analysis of WWW (due on Dec 3rd)
10.1 26 Nov Tradeoff analysis: ATAM [KKBLLC98]  
10.2   Architecture Description Languages [SG96]:7.1,7.2  
11.1 3 Dec Reusing architectures
- Product lines
- Reference architectures
- open systems
[BCK98]:15,17  
11.2   Architectural mismatch    


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.

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


M.M. Bonsangue

Last modified: Tue Dec 11 13:21:15 CET 2001