syllabus
1. Information regarding the programme
1.1 Higher education institution 	Babeş Bolyai University	
1.2 Faculty	Faculty of Mathematics and Computer Science	
1.3 Department	Department of Computer Science	
1.4 Field of study	Computer Science	
1.5 Study cycle	Master	
1.6 Study programme / Qualification 	Component-based Programming	

2. Information regarding the discipline 
2.1 Name of the discipline	Software architecture	
2.2 Course coordinator 	Prof.PhD. Bazil Parv	
2.3 Seminar coordinator	Prof.PhD. Bazil Parv	
2.4. Year of study	2	2.5 Semester	2	2.6. Type of evaluation	E	2.7 Type of discipline	compulsory	

3. Total estimated time (hours/semester of didactic activities) 
3.1 Hours per week 	3	Of which: 3.2 course	2	3.3 seminar/laboratory	1	
3.4 Total hours in the curriculum 	36	Of which: 3.5 course	24	3.6 seminar/laboratory	12	
Time allotment:	hours	
Learning using manual, course support, bibliography, course notes	30	
Additional documentation (in libraries, on electronic platforms, field documentation) 	30	
Preparation for seminars/labs, homework, papers, portfolios and essays	80	
Tutorship	12	
Evaluations	12	
Other activities: ..................	-	
3.7 Total individual study hours 	164	
3.8 Total hours per semester	200	
3.9 Number of ECTS credits	8	

4. Prerequisites (if necessary)
4.1. curriculum	•	Fundamentals of programming
•	Object-oriented programming
•	Programming paradigms (optional)	
4.2. competencies	•	Average programming skills	

5. Conditions (if necessary)
5.1. for the course	•	Videoprojector	
5.2.  for the seminar /lab activities	•	Computers	

6. Specific competencies acquired 
Professional competencies	•	Understanding and working with basic concepts in software architecture;
•	Capability of analysis and synthesis;
•	Proficient use of tools and languages specific to software systems development
•	Knowing the specifics of main architectural patterns and how to apply them to specific projects.	
Transversal competencies	•	Professional communication skills; concise and precise description, both oral and written, of professional results, 
•	Independent and team work capabilities; able to fulfill different roles
•	Antepreneurial skills;	

7. Objectives of the discipline (outcome of the acquired competencies)
7.1 General objective of the discipline
	•	Know and understand fundamental concepts of software architecture. 
•	Be able to use different architectural styles to different programming projects	
7.2 Specific objective of the discipline
	At the end of the course, students
•	know the main concepts and principles of software architecture
•	have a good understanding of the following terms: software architecture definition(s), architectural styles and models, architecture definition language(s);
•	learn the importance of architectural design and how to use tools for this task;
•	know software architecture case studies taken from real-world applications;	

8. Content
8.1 Course	Teaching methods	Remarks	
1.	Introduction. From Programming Languages to Software Architecture: definitions, early work, high-level programming languages, abstract data types	Exposure,description, explanation, debate and dialogue, discussion of case studies		
2.	Common architectural styles: pipes and filters, data abstraction and object-oriented organization, event-based (implicit invocation), layered systems, repositories, table-driven interpreters, other architectures, heterogeneous architectures	Exposure,description, explanation		
3.	Case studies: Key Word in Context, Instrumentation Software, Mobile Robots	Exposure,description, explanation, case studies		
4.	Case studies: Cruise Control, A Layered Design with Different Styles for Layers, An Interpreter Using Different Idioms for the Components, A Blackboard Globally Recast as Interpreter	Exposure,description, explanation, case studies		
5.	Shared information systems: definitions, database integration, integration in software development environments, integration in the design of buildings, architectural structures	Exposure,description, explanation, case studies		
6.	Client/server architectures: introduction, evolution - mainframe architecture, file sharing architecture, client-server architecture with examples, two-tier architectures (fat client, thin client)	Exposure,description, explanation, case studies		
7.	Client/server architectures: three (multi)-tier architectures - general issues, different approaches (with multiple transaction processing monitor, with message server, with application server)	Exposure,description, explanation, discussion of case studies		
8.	Client/server architectures: three (multi)-tier architectures with object request broker, distributed/collaborative enterprise architecture	Exposure,description, explanation, discussion of case studies		
9.	Architectural models and elements: definitions, model elements and types, traditional architectural notations, architecture description languages	Exposure,description, explanation		
10.	Architectural models and elements: 4+1 View Model (Kruchten), information systems architectures (Zachman framework, Data warehouse)	Exposure,description, explanation		
11.	Architectural notations: informal diagrams, module interconnection languages, SGL (Software Glue Language)	Exposure,description, explanation		
12.	Architectural notations: ADL (Architecture Description Language), modeling/specification languages (UML, ModeChart). Final review	Exposure,description, explanation		
Bibliography
1.	BASS, L., CLEMENTS, P., KAZMAN R.: Software Architecture in Practice, 2nd ed., Addison-Wesley, 2003
2.	KRUCHTEN, PH.: Architectural Blueprints – The 4+1 View Model of Software Architecture, IEEE Software 12 (6), 1995, pp. 42-50. 
3.	MALVEAU, R., MOWBRAY, T.J.: Software Architect Bootcamp, Prentice Hall, (1st ed., 2000, 2nd ed., 2003).
4.	SHAW, M.: 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, M., GARLAN, D.: Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, 1996.	
8.2 Seminar / laboratory	Teaching methods	Remarks	
1.	Establish paper title	Conversation, debate, case studies	Seminar is organized as a total of 6/7 hours – 2 hours every other week	
2.	Establish project title	Conversation, debate, case studies, examples		
3.	Paper presentations & project progress reports	Exposure, debate, case studies, examples		
4.	Paper presentation & project progress reports	Exposure, debate, case studies, examples		
5.	Paper presentations & project progress reports	Exposure, debate, case studies, examples		
6.	Project presentation	Exposure, live demos		
Bibliography
Paper work:
Project work: students will be organized in teams of 2 to 4 members. Each team will solve a problem (so-called model problem), and each team member will implement a different architectural style.
The concept and examples of model problems: www.cs.cmu.edu/afs/cs/Web/People/ModProb	

9. Corroborating the content of the discipline with the expectations of the epistemic community, professional associations and representative employers within the field of the program

•	This course follows the IEEE and ACM Curricula Recommendations for Software Engineering studies;
•	Courses with similar content are taught in the major universities in Romania offering similar study programs;
•	Course content is considered very important by the software companies for improving average software development skills	

10. Evaluation
Type of activity	10.1 Evaluation criteria	10.2 Evaluation methods	10.3 Share in the grade (%)	
10.4 Course	- know the basic concepts of software architecture;
- apply different architectural styles to different problem domains	Written exam
	40%	
10.5 Seminar/lab activities	- be able to study and review literature regarding software architecture
- be able to solve a problem using different architectural patterns	-Paper work
-Project work
-Seminar/lab attendance
-Default	20% 
20%
10%
10%	
10.6 Minimum performance standards	
•	At least grade 5 (from a scale of 1 to 10) at written exam, paper and project work.	

Date			Signature of course coordinator 		Signature of seminar coordinator
October 1, 2012	Prof.PhD. Bazil PARV			Prof.PhD. Bazil PARV	

Date of approval  					  Signature of the head of department	
...........................................						...........…............................