Babes-Bolyai University of Cluj-Napoca
Faculty of Mathematics and Computer Science
Study Cycle: Master
SUBJECT

Code	Subject	
MID1012	Framework Design	

Section	Semester	Hours: C+S+L	Category	Type	
Component-Based Programming	4	2+1+1	speciality	optional	
Intelligent Systems	4	2+1+1	speciality	optional	
Formal Methods in Programing	4	2+1+1	speciality	optional	
Modeling and Simulation	4	2+1+1	speciality	optional	
Optimization of Computational Models	4	2+0+2	speciality	optional	

Teaching Staff in Charge	Lect. LAZAR Ioan, Ph.D., ilazar@cs.ubbcluj.ro	
Aims	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.	
Content	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]
	
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.	
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.