Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Masterat
Domeniul: Informatica
Programul de studii: Sisteme Inteligente - în limba engleză
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MID1010	Software Architecture	

Semester	Hours: C+S+L	Category	Status	
4	2+1+1	speciality	compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
PÂRV Bazil	Ph.D.	Prof.	Programming  Languages and Methods	*			

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
The course introduces core concepts and principles of software architecture, focusing on software architecture definition(s), architectural styles and models, architecture definition languages, and tool support for architectural design. All theoretical concepts are introduced by using case studies, taken from real applications.

IV. Course contents
1. Introduction. From Programming Languages to Software Architecture 
1.1. Definitions
1.2. Early work on software architecture
1.3. High-level Programming Languages 
1.4. Abstract Data Types
1.5. Software Architecture
2. Common Architectural Styles
2.1. Pipes and Filters 
2.2. Data Abstraction and Object-Oriented Organization 
2.3. Event-based, Implicit Invocation 
2.4. Layered Systems 
2.5. Repositories
2.6. Table Driven Interpreters 
2.7. Other Familiar Architectures
2.8. Heterogeneous Architectures
3. Case Studies
3.1. Case Study 1: Key Word in Context 
3.2. Case Study 2: Instrumentation Software 
3.3. Case Study 3: Mobile Robots
3.4. Case Study 4: Cruise Control 
3.5. Case Study 5: A Layered Design with Different Styles for Layers
3.6. Case Study 6: An Interpreter Using Different Idioms for the Components
3.7. Case Study 7: A Blackboard Globally Recast as Interpreter 
4. Shared Information Systems
4.1. Shared Information Systems
4.2. Database Integration
4.3. Integration in Software Development Environments
4.4. Integration in the Design of Buildings
4.5. Architectural Structures for Shared Information Systems
5. Client/Server Architectures
5.1. Introduction
5.2. Evolution of software architectures
5.2.1. Mainframe architecture
5.2.2. File sharing architecture
5.2.3. Client-server architecture
5.3. Examples of client-server architectures
5.3.1. Two tier architectures
5.3.2. Three (multi) tier architectures
5.3.2.1. Three tier architectures with transaction processing monitor technology
5.3.2.2. Three tier with message server
5.3.2.3. Three tier with an application server
5.3.2.4. Three tier with an ORB architecture
5.3.2.5. Distributed/collaborative enterprise architecture
6. Architectural models and elements
6.1. Model elements and types
6.2. Traditional architectural notations
6.3. Architecture description languages
6.4. 4+1 View Model
6.5. Information systems architectures
6.5.1. Zachman framework
6.5.2. Data warehouse
7. Architectural notations
7.1. Informal diagrams
7.2. Module interconnection languages
7.3. SGL (Software Glue Language)
7.4. ADL (Architecture Description Language)
7.5. Modeling/Specification Languages (UML, ModeChart)

Lab activities

Students will be organized in teams of 3 to 5 members. Each team will solve a problem, and each team member will implement a different architectural style. 
Main lab activities are:
&#8226; project management phase (weeks 1 to 3)
&#8226; analysis/design phase (weeks 4 to 7)
&#8226; implementation/testing phase (weeks 8 to 11)
&#8226; live demos and documentation (weeks 12) 

The course and seminar materials are/will be available on the Computer Science Department@s server, in the folder ..	

V. Bibliography
Bibliografie

1. FUSSELL, MARK L.: A Good Architecture for Object-Oriented Information Systems. Structures, Designs, and Patterns, OOPSLA@96 Tutorial 23, [http://www.chimu.com/ publications/oopsla96tutorial23/oopsla96tutorial23.pdf].
2. KRUCHTEN, PHILIPPE: Architectural Blueprints - The 4+1 View Model of Software Architecture, IEEE Software 12 (6), 1995, pp. 42-50. 
3. MOWBRAY, THOMAS J. - MALVEAU, RAPHAEL: Software Architect Bootcamp, Prentice Hall, (1st ed., 2000, 2nd ed., 2003).
4. SHAW, MARY: The Coming-of-Age of Software Architecture Research, in Proc. of the 23rd ICSE, IEEE Comp. Soc. 2001, 656, [http://www.cs.cmu.edu/afs/cs.cmu.edu/project/vit/ ftp/pdf/shaw-keynote-rev.pdf] 
5. SHAW, MARY - GARLAN, DAVID: Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, 1996.
6. Software Architecture Resources, [http://www.bredemeyer.com/papers.htm ]	

VI. Thematic of didactic activities per weeks

VII. Didactic methods used

VIII. Assessment
The final mark will cover lab work (i.e. completing a project) and the written exam results. It is computed as follows, on a 10-point scale:
1pt by default
1pt lab attendance
4pts the project
4pts the written exam.

IX. Additional references

	Dean,							Chair head,

	Date,							Course responsible,
								Prof. PÂRV Bazil, Ph.D.