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+0
speciality
optional
Intelligent Systems
4
2+1+0
speciality
optional
Formal Methods in Programing
4
2+1+0
speciality
optional
Modeling and Simulation
4
2+1+0
speciality
optional
Optimization of Computational Models
4
2+1+0
speciality
optional
Teaching Staff in Charge
Lect. LAZAR Ioan, Ph.D.,  ilazarcs.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 – 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 – 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 – part II
Integrating the AJAX plug-in with UML CASE tools
Reference: [Gamma and Beck, 2003]
Week 9: Eclipse plug-in development – part III
Applying other principles, and patterns
Reference: [Gamma and Beck, 2003], [Gamma et al, 1995]
Week 10: Eclipse plug-in development – part IV
Integrating with other AJAX frameworks
Reference: [DWR, GWT, Wicket]
Week 11: Extending the AJAX plugin-in – part I
Browser-Server Dialogue
DOM population
Reference: [Mahemoff, 2006]
Week 12: Extending the AJAX plugin-in – part II
Performance optimization
Widgets
Reference: [Mahemoff, 2006]
Week 13: Extending the AJAX plugin-in – part III
Page architecture
Visual effects
Reference: [Mahemoff, 2006]
Week 14: Extending the AJAX plugin-in – part IV
Functionality
Diagnosis, Testing
Reference: [Mahemoff, 2006]
References
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.
Links: Syllabus for all subjects
Romanian version for this subject
Rtf format for this subject