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

SYLLABUS

I. General data
Code	Subject	
MID1012	Framework Design	

Semester	Hours: C+S+L+P	Category	Status	
4	2+1+0+1	speciality	optional	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
LAZAR Ioan	Ph.D.	Lect.	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
To introduce the student in advanced design techniques used to develop application frameworks.
To present some existing lightweight frameworks as a novel approach for building enterprise applications.
To offer the student the opportunity to participate at designing a new framework during didactical activities.
To offer the student the instruments that will allow him/her to develop other small lightweight framework for different classes of applications.	

IV. Course contents
Lightweight frameworks and design patterns 
Middle tier data access & ORM
Web User Interfaces
Web Services 
Designing a framework for AJAX applications 
Eclipse plug-in development 
Developing an Eclipse AJAX plugin-in	

V. Bibliography
1. Erich Gamma et al. Design Patterns: Elements of Reusable Object Oriented Software. Addison Wesley, 1995.
2. Erich Gamma and Kent Beck. Contributing to Eclipse: Principles, Patterns, and Plug-Ins. Addison Wesley, 2003.
3. Martin Fowler. Patterns of Enterprise Application Architecture. Addison Wesley, 2002.
4. Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition. Addison Wesley, 2003.
5. Michael Mahemoff. Ajax Design Patterns. O@Reilly, 2006.
6. Rod Johnson et al. Spring 2.0 Reference Documentation. 2006. http://www.springframework.org/
7. Stephen J. Mellor, Kendall Scott, Axel Uhl, and Dirk Weise. MDA Distilled: Principles of Model-Driven Architecture. Addison Wesley, 2004.	

VI. Thematic of didactic activities per weeks
Week 1:  Lightweight frameworks and design patterns 
	Inversion of Control, Resources
	Aspect Oriented Programming
	Reference: [Johnson, 2006]
Week 2:  Middle tier data access & ORM
	Transaction management
	Data access object
	Object relational mappings
	Reference: [Fowler, 2002], [Johnson, 2006]
Week 3: Web UI - part I
	Web MVC pattern
	Integrating view technologies
	Reference: [Johnson, 2006]
Week 4: Web UI - part II
	Integrating with other view technologies
	Integrating with AJAX technologies
	Reference: [Johnson, 2006], [Mahemoff, 2006]
Week 5: Web Services 
	Exposing services using RMI
	Exposing services using HTTP
	Reference: [Johnson, 2006]
Week 6: Designing a framework for AJAX applications 
	Modeling Web UI &#8211; an MDA approach
	UML Model Transformations
	Web Remoting: Web Service, XMLHttpRequest, HTTP Streaming, On demand JavaScript
	Reference: [Fowler, 2003], [Mahemoff, 2006]
Week 7: Eclipse plug-in development &#8211; part I
	Initiating the development of an AJAX Plug-in development
	Integrating the AJAX plug-in with Spring
	Reference: [Gamma and Beck, 2003]
Week 8: Eclipse plug-in development &#8211; part II
	Integrating the AJAX plug-in with UML CASE tools
	Reference: [Gamma and Beck, 2003]
Week 9: Eclipse plug-in development &#8211; part III
	Applying other principles, and patterns
	Reference: [Gamma and Beck, 2003], [Gamma et al, 1995]
Week 10: Eclipse plug-in development &#8211; part IV
	Integrating with other AJAX frameworks
	Reference: [DWR, GWT, Wicket]
Week 11: Extending the AJAX plugin-in &#8211; part I
	Browser-Server Dialogue
	DOM population
	Reference: [Mahemoff, 2006]
Week 12: Extending the AJAX plugin-in &#8211; part II
	Performance optimization
	Widgets
	Reference: [Mahemoff, 2006]
Week 13: Extending the AJAX plugin-in &#8211; part III
	Page architecture
	Visual effects
	Reference: [Mahemoff, 2006]
Week 14: Extending the AJAX plugin-in &#8211; part IV
	Functionality
	Diagnosis, Testing
	Reference: [Mahemoff, 2006]	

VII. Didactic methods used
The course is based on the following methods: exposure, conversation, didactical proof, modelling, and the discussion of some case studies and programming examples. 
Each student must prepare a research paper on an established topic, and a software project.	

VIII. Assessment
The activity ends with a written final exam (grade E). During the semester, the students will have to prepare a theoretical report (grade R) and a software project that will have to illustrate the use of behavioral models for business logic and user interfaces (grade P). The final grade is the weighted mean of the grades mentioned above. The final grade = 40%E + 20%R + 40%P. 
Successful passing of the exam is conditioned by the final grade that has to be at least 5. Passing of the exam is also conditioned by grade E to be at least 5.	

IX. Additional references
1. Michael Mahemoff. Ajax Design Patterns. O’Reilly, 2006.
2. Rod Johnson et al. Spring 2.0 Reference Documentation. 2006. http://www.springframework.org/	

	Dean,							Chair head,

	Date,							Course responsible,
								Lect. LAZAR Ioan, Ph.D.