syllabus
1. Information regarding the programme
1.1 Higher education institution 	Babes-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	Bachelor	
1.6 Study programme / Qualification 	Computer Science	

2. Information regarding the discipline 
2.1 Name of the discipline	Software Component Models	
2.2 Course coordinator 	PhD Lecturer Andreea Vescan	
2.3 Seminar coordinator	PhD Lecturer Andreea Vescan 	
2.4. Year of study	3	2.5 Semester	5	2.6. Type of evaluation	C	2.7 Type of discipline	optional	

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	24	
Additional documentation (in libraries, on electronic platforms, field documentation) 	24	
Preparation for seminars/labs, homework, papers, portfolios and essays	24	
Tutorship	18	
Evaluations	24	
Other activities: ..................	0	
3.7 Total individual study hours 	114	
3.8 Total hours per semester	150	
3.9 Number of ECTS credits	6	

4. Prerequisites (if necessary)
4.1. curriculum	•		
4.2. competencies	•		

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

6. Specific competencies acquired 
Professional competencies	•	Knowledge, understanding and use of basic concepts of theoretical Computer Science 
•	Ability to work independently in order to solve problems in defined professional contexts.	
Transversal competencies	•	Improved programming abilities: debugging and correcting compilers errors	

7. Objectives of the discipline (outcome of the acquired competencies)
7.1 General objective of the discipline
	Instead of building monolithic systems from scratch, Component-based Software Development (CBD) aims to construct systems by assembling ready-made components, and thereby reduce production cost and time-to-market, whilst increasing software reuse. The cornerstone of a CBD approach is the underlying component model, which defines what components are and how they can be composed. Current component models do not yet achieve the aforementioned objectives of CBD. In this course, we will study current component models and how they measure up to the goals of CBD.

•	The aims of this course are:

1. To introduce the basic concepts and the goals of the CBD paradigm 
2. To provide an overview of current component models
3. To provide an in-depth exposition of key representative component models	
7.2 Specific objective of the discipline
	•	Students will learn the current component models.
•	Students will know similarities and differences between component models.
•	Students will know how to model a component-based system using a specific component model.	

8. Content
8.1 Course	Teaching methods	Remarks	
1.	Basic concepts ( components, composition, component models) 	Presentation, Didactic demonstration, Problematizations		
2.	The CBD process ( component life cycle, system life cycle)	Presentation, Didactic demonstration, Problematizations		
3.	The Semantics of Software Components	Presentation, Didactic demonstration, Problematizations		
4.	The Syntax of Software Components	Presentation, Didactic demonstration, Problematizations		
5.	The Composition of Software Components
5.1.	An Idealized Component Life Cycle
5.2.	Composition in the Design Phase	Presentation, Didactic demonstration, Problematizations		
6.	Composition in the Deployment Phase 	Presentation, Didactic demonstration, Problematizations		
7.	Software Component Models 
7.1.	Category 1: Design without Repository - This category includes all simple Acme-like ADLs, UML2.0,
PECOS, and Fractal.
7.2.	Category 2: Design with Deposit-Only Repository - This category includes EJB, COM, .NET, CCM, and Web Services. The representative example is EJB.
7.3.	Category 3: Deployment with Repository - This category contains only JavaBeans.
7.4.	Category 4: Design with Repository - This category includes Koala, SOFA, and KobrA. 	Presentation, Didactic demonstration, Problematizations		
8.	A taxonomy 
8.1.	Categories Based on Component Semantics
Based on semantics, current component models can be grouped into three categories: 1) component models in which components are classes, 2) models in which components are objects, and 3) those in which components are architectural units
1.1.	Categories Based on Component Syntax
Based on component syntax, current models fall into three categories: 1) models in which components are defined by
object-oriented programming languages, 2) those in which an IDL is used and in which components can be defined in
programming languages with mappings from the IDL, and  3) those in which components are defined by ADLs
1.2.	A Taxonomy Based on Composition 	Presentation, Didactic demonstration, Problematizations		
Bibliography
[1] K.-K. Lau, Z. Wang, Software Component Models, IEEE Trans. on Software Engineering, V 33, n. 10, pp. 709-724, 2007.

[2] Szyperski, C.: Component Software. Beyond Object-Oriented Programming, Addison-Wesley (1st ed. 1998, 2nd ed. 2002). 
[3] Crnkovic, I., Larsson, M., Building Reliable Component-Based Software Systems, Artech House Publisher, ISBN 1-58053-327-2, 2002

Optional references 
Internet resources and conferences
	
8.2 Seminar / laboratory	Teaching methods	Remarks	
Theme 1 (lab 1-2, weeks 1-4) 
   The first two labs are dedicated to surveying information sources available on Internet and Intranet. In the lab 2 the student must communicate the project title. Live demos are scheduled in the last week.	Presentation, Conversation, Problematizations, Discovery, Other methods – individual study, exercises		
Theme 2 (lab 3-4, weeks 5-8) 
     Project design –choose a component model  	Presentation, Conversation, Problematizations, Discovery, Other methods – individual study, exercises		
Theme 3 (lab 5-6, weeks 9-12) 
     Project implementation and presentation.	Presentation, Conversation, Problematizations, Discovery, Other methods – individual study, exercises		
Bibliography

	

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

•	 Students will know the current existing component models.
•	Students will know how to model a component-based system using a specific component model.

	

10. Evaluation
Type of activity	10.1 Evaluation criteria	10.2 Evaluation methods	10.3 Share in the grade (%)	
10.4 Course	GF=GradeFinal = graded paper at the final exam, during lecture 12		40	
	Passing the final exam is conditioned by the grade GF being at least 5.			
10.5 Seminar/lab activities	GA=Grade Activity = lab activity 
	attendance + activity in class	20	
	GP=GradeProjects = documentations, programs and projects developed		40	
10.6 Minimum performance standards	
•	Students will know the current existing component models.
•	At least grade 5 (from a scale of 1 to 10) at written exam and laboratory work and project work.	

Date				Signature of course coordinator 	Signature of seminar coordinator
09.24.2012			Lect.  PhD. Andreea Vescan          Lect. PhD. Andreea Vescan	

Date of approval  					  Signature of the head of department	
...........................................					Prof. PhD. Bazil Parv