Seminarium Software Architecture, spring 2000

The seminarium Software Architecture is given by Marcello Bonsangue. It is complementary to the course Software Engineering and the Seminarium Advanced Software Engineering. It serves students of the third and fourth year of the http://www.wi.leidenuniv.nl/CS/edu/deeltijd.html"> Master in Computer Science.

The seminarium is worth 5 study points.

In the academic year 1999/2000, the seminarium is scheduled in the second semester.

The lessons will be given on Thursday evening (February 3,10,17,24; March 2,23,30; April 6,13; and May 11,18,25), from 18:45 till 21.45, in room 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:

Students will be evaluated on the basis of their in-class participation (15%), small home assignments (15%), a set of presentation assignments (in English) (30%), and a literature review/architectural design project (40%).


Final grades for the students of the spring 2000 seminar:

Name 15% A 15% B 30% C 40% D Sum FINAL GRADE
J. Broer            
P. van Gent            
P. Kwantes 1.1 (7) 1.2 (8) 1.2 (4) 2.2 (5.5) 5.7 6
R. van der Meel 1.4 (9) 1.2 (8) 2.3 (7.5) 3.0 (7.5) 7.9 8
S. Purwanto 1.1 (7) 0 (0) 2.0 (6.5) 2.6 (6.5) 5.7 6
G. Schiopu 0.9 (6) 0.9 (6) 2.1 (7) 1.6 (4) 5.5 6
J. Guillen Scholten 1.5 (10) 0.9 (6) 2.7 (9) 4.0 (10) 9.1 9
P. Tas 1.4 (9) 1.1 (7) 2.7 (9) 4.0 (10) 9.2 9
J. Verhoeven 1.1 (7) 1.2 (8) 2.1 (7) 2.8 (7) 7.2 7
H.J. van der Wijk            
A = Class presence and participation
B = Home assignments 1 and 2
C = In class presentations 1 and 2
D = Final project

Note: Between paranthesis is the `unweighted' grade.


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

For the presentation assignments, students will read several papers from other sources. Some of these papers are electronically available, the others will be made available in class when needed.


Schedule of presentation assignments

Nun Student Date Topic Reading
1 Gratian Schiopu 17 Feb A case study on architectural views [BCK98]:3
2 Juan Guillen Scholten 17 Feb Communicating processes [And91], [Hoa78]
3 Ronald van der Meel 24 Feb Data repositories [CG90], [BJ97], [Cor91]
4 Peter van Gent 2 Mar Quality attributes [BCK98]:4, [BKLW95]
5 Peter Tas 2 Mar Choosing an architectural style [BCK98]:5.1-5.4
6 Henk Jan van der Wijk 23 Mar Case study: Interoperability and WWW [BCK98]:7
7 Pieter Kwantes 23 Mar Case study: Integrability and CORBA [BCK98]:8
8 Jules Verhoeven 30 Mar Design guidance: the design space [SG96]:5.1
9 Silwanus Purwanto 30 Mar Design guidance: the quantified design space [SG96]:5.2
10 Jack Broer 6 Apr Attribute-Based Architectural Styles [KKBCBL99]
11 Juan Guillen Scholten 6 Apr Architectural analisys: SAAM [BCK98]:9
12 Ronald van der Meel 6 Apr Architectural analisys: ATAM [KKBLLC98]
13 Peter Tas 13 Apr Architecture representation [SG96]:7.1,7.2
14 Gratian Schiopu 13 Apr Unicon and Aesop [SG96]:8.1,8.2
15 Pieter Kwantes 11 May Architectural mismacth [GAO95],[Sha95]
16 Jules Verhoeven 11 May Reuse within an organization [BCK98]:15
17 Henk Jan van der Wijk 18 May Communitywide reuse [BCK98]:17
18 Silwanus Purwanto 18 May Beyond Objects: Components [MN97]
19 Jack Broer ?? Component programming [Jaz95]
20 Peter van Gent 25 May Semantic foundations  


Schedule of lectures

Nun Date Topic Lecturer Reading Assignment
1.1 3 Feb Overview and organization M. Bonsangue    
1.2   Why software architecture   [SG96]:1, [BCK98]:1  
1.3   What is a software architecture   [SG96]:2.1, [BCK98]:2 Read [PW92]
Refresh OO concepts
2.1 10 Feb Data flow architectures:
- Batch Sequential
M. Bonsangue [SG96]:2.1  
2.2   - Pipes and filters
- Process control loops
  [SG96]:2.2, 2.8 Give a P&F model of a cruise control [SG96]:3.4
2.3   Call and return architectures:
- Procedure call
- Remote procedure call
- Layered systems
  [SG96]:2.9, 2.5, [BCK98]:5.1 Read [BCK98]:3 and [And91]
3.1 17 Feb - Object oriented systems M. Bonsangue [SG96]:2.3 Read [Cor91], [CG90]:3 and [BJ97]
3.2   A case study on architectural views G. Schiopu [BCK98]:3  
3.3   Independent components:
- Communicating processes
J. Scholten [And91], [Hoa78]  
4.1 24 Feb Independent components:
- Event systems
M. Bonsangue [SG96]:2.4  
4.2   Data-centered architectures:
- Active repositories
- Passive repositories
R. van der Meel [SG96]:2.6, [Cor91], [CG90]:3 and [BJ97] Read [SG96]:2.7,3.5.3 and [Nii86]. Show how to separate abstract design concerns (the blackboard) from implementation concerns (the interpreter) for the HASP architecture as examined in [SG96]:3.5.3 for the Hearsay-II architecture. The HASP architecture is the other major example on blackboard system presebnted in [Nii86].
4.3   Discussion homework 10 Feb M. Bonsangue   Read [BCK98]:4, [BCK98]:5
5.1 2 Mar Other architectural styles:
- Virtual machines
- Heterogeneous architectures
- Client/Server architectures
M. Bonsangue [SG96]:2.7, 3.5.2, 2.10 Read [SG96]:5
5.2   Quality attributes P. van Gent [BCK98]:4  
5.3   From qualities to architectures P. Tas [BCK98]:5 Read [SG96]:3.1,[BCK98]:7 and [BCK98]:8
6.1 23 Mar A case study in interoperability:WWW H.J. van der Wijk [BCK98]:7  
6.2   A case study in integrability: CORBA P. Kwantes [BCK98]:8 Write the major differences between data integration of applications (WWW) and programmatic integration of applications (CORBA).
6.3   Presentation final projects M. Bonsangue   Choose one final project. Read [SG96]:5.1,5.2.
7.1 30 Mar Assignment final projects M. Bonsangue   Read [KKBCBL99], [BCK98]:9 and [KKBLLC98]
7.2   Design guidance:
- The design space
J. Verhoeven [SG96]:5.1  
7.3   - The quantified design space S. Purwanto [SG96]:5.2 Write significant differences in the way the designer interact with a design space and with a quantified designed space.
8.1 6 Apr Architectural analisys: SAAM J. Scholten [BCK98]:9  
8.2   Architectural analisys: ATAM R. van der Meel [KKBLLC98]  
8.3   Attribute-Based Architectural Styles J. Broer [KKBCBL99] Read [SG96]:7.1,7.2,8.1,8.2
9.1 13 Apr Attribute-Based Architectural Styles J. Broer [KKBCBL99]  
9.2   Architectural representation P. Tas [SG96]:7.1,7.2  
9.3   Unicon and Aesop G. Schiopu [SG96]:8.1,8.2 Read [GAO95], [Sha95] and [BCK98]:15
10.1 11 May Architectural mismatch M. Bonsangue [GAO95] and [Sha95] Write briefly what are the differences among wrappers, bridges, and mediators.
10.2   Reuse within an organization J. Verhoeven [BCK98]:15  
10.3   Discussion homework M. Bonsangue   Read [BCK98]:17, [MN97] and [Jaz95]
11.1 18 May Communitywide reuse H.J. van der Wijk [BCK98]:17  
11.2   Beyond Objects: Components S. Purwanto [MN97]  
11.3   What is architecture good/bad at? M. Bonsangue    
12.1 25 May Component programming J. Broer [Jaz95]  
12.2 25 May Semantic foundations P. van Gent    
12.3   Conclusion and feedback M. Bonsangue    


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.

[BKLW95] M. Barbacci, M. Klein, T. Longstaff, and C. Weinstock Quality attributes, technical report CMU/SEI-95-TR-021, 1995. [Postscript copy]

[BJ97] M. Boasson and E. de Jong, Software Architecture for Large Embedded Systems. An html copy is available here.

[CG90] N. Carriero and D. Gelenter, How to write parallel programs, The MIT press, 1990.

[Cor91] D. Corkill, Blackboard Systems, AI Expert, 6(9):40-47. [Postscript copy]

[GAO95] David Garlan, Robert Allen, and John 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]

[Jaz95] M. Jazayeri, Component programming, a fresh look at software components, tehcnical report TUV-1841-95-01, University of Vienna, 1995. [Postscript copy]

[KKBCBL99] M. Klein, R. Kazman, L. Bass, J. Carriere, M. Barbacci, H. Lipson, Attribute-Based Architecture Styles, in Proceedings of the First Working IFIP Conference on Software Architecture (WICSA1), San Antonio, TX, 1999, 225-243. [Pdf 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]

[MN97] T.D. Meijler and O. Nierstrasz, Beyond Objects: Components in M.P. Papazoglou, G. Schlageter (eds.) "Cooperative Information Systems: Current Trends and Directions", Academic Press, 1997, pp. 49-78. [Pdf copy]

[Nii86] H.P. Nii, Blackboard systemsAI Magazine 7(3):38-53 and 7(4):82-107. A pdf copy is available as technical report CS-TR-86-1123, Stanford University, 1986.

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

[Sha95] M. Shaw, Architectural Issues in Software Reuse: It is Not Just the Functionality, It is the Packaging, Summary for talk at Symposium of Software Reuse, April 1995. [Postscript copy]

[PW92] D.E. Perry and A.L. Wolf, Foundations for the Study of Software Architectures, ACM SIGSOFT Software Engineering Notes, October 1992. [Postscript copy]


Comments, remarks and suggestions can be sent to Bonsangue Marcello

Last modified: Wed Jan 15 12:26:42 CET 2003