Framework Project: Analyze and Present an OO Framework


This project asks you to analyze an existing, “real world” object-oriented framework such that you can discuss its principle classes, their relationships, and the services they provide. In addition, you will be able to show how the framework can be used by a client application and be able to present details on the responsibilities of the client and the responsibilities of the framework and how the two work together to deliver the framework's services to the users of the client application.


You should work on this assignment as part of a team of two to four students. As soon as you have formed a team, please send mail to Professor Anderson identifying the team and its members. If you have problems finding a team to join, post a message to the student discussion group located on the class moodle and advertise your availability. If that doesn't work, send mail to Prof. Anderson and he will help you find a team to join. A “team” consisting of only one person will not be allowed. Please form your team by the end of the 4th week of the semester (i.e. this week).


Project Details

The assignment consists of two deliverables: a document that details what you have learned about your framework (75 points) and a 10 minute presentation (25 points) that your team will give to the rest of the class. In addition, you will receive up to 12 additional points based on evaluations written by your teammates on how well you contributed to the team.


Furthermore, each team needs to clearly split up the work of the project such that each part of the project has a clear owner. The 75 points associated with the “document” portion of the project are individual points. That is, if you do a good job on your part of the project, you may receive the full 75 points for your effort. That score would NOT be shared by the rest of the team: another member who does a poor job on their part of the project might receive a score of only 25 points for their efforts.


The 25 points associated with the 10 minute presentation are group points. I will evaluate your in-class presentation and assign a score that each member of the team will receive for that portion of the assignment.


Finally, as mentioned above, the final 12 “team evaluation” points of the project are individual points. If you have N members on your team, then you will receive N-1 reviews. A positive review will provide 12/(N-1) points towards your team evaluation points. A negative review will contribute zero points.


So, even though each portion of the project will have a clear owner, it behooves the group to work as a team to make sure that all portions of the project are created with high quality. Such teams will ensure that all members of the team receive a good grade on the project. On the other hand, if you find yourself on a team with three “good” team members and one “bad” member, the bad apple won't pull the rest of the team down.


The document should consist of the following minimum set of information:


Work Assignments: How was the work of the project divided across the team? This is the place in which you claim ownership for a particular portion of the project. The team needs to work together to ensure that the workload is balanced fairly over the set of team members. Members who do too little (when compared with the rest of the team) will be noticed and will receive a penalty on their individual points.


Introduction: The purpose and history of the framework. From a high-level perspective discuss what the framework does and how it is supposed to be used. What is the history of the framework? How many versions does it have and how did its functionality evolve over the various versions. If possible, discuss the target audience of this framework. Is it used widely? Commercially? Only in open source project? Finally, discuss why your group selected this framework. Did one or more of the team members have personal experience with the framework? If so, be sure to discuss this experience.


Main Concepts: Via class diagrams and text, describe the main concepts (classes) of the framework and the relationships that exist between them. Be sure to describe your sources for this information. For instance, did you get this information from tutorials on the web, by asking questions in discussion forums, or by looking at the source code?


Main Services: Via sequence diagrams (and/or use cases and/or flow charts, etc.) and text, describe the main services provided by this framework to its client applications.


Tutorial: Via UML, code, and/or text, describe how to use the framework. What responsibilities does the framework impose on its client applications. How does the client access the framework's services and are there common conventions that the developer has to follow in order to gain access to these services. The team should develop a small application that makes use of the framework in some fashion.


Requirements and Use Cases: After learning the details of the framework and how its used, imagine that you are one of the developers of the framework. Create a list of requirements that would lead to the core functionality of the framework and create a set of use cases that show those requirements being covered. Now think of a new service that you would like to add to the framework. Show how you would change the requirements and use cases to begin the process of designing and implementing this new functionality. Where would this new feature “live” in the framework? Would it be assigned to a set of classes already present in the framework or would it require new classes? If so, why?


Conclusions: In the conclusions, evaluate the framework. Does it do its job well? Was it easy to learn and use? What problems does the framework have?

Your document does not have to be in this exact order but all of these issues should be addressed. Most teams will produce a document that is 10 to 15 pages long (when you factor in text, diagrams, example code, use cases, etc.).


Your class presentation should attempt to describe the purpose of the framework, its main concepts and services, and provide an example of it in use. Your presentation should show a running application that was developed by the team making use of the framework in some way. The presentation should be no longer than 10 minutes long. Team members will have to work together to create the presentation and the demo and decide which members will present this information in class.


Time Frame

This project is due by the end of the ninth week of class. This means that the document being created by the team must be submitted by 11:55 PM on Friday, October 24th and your class presentations must be done no later than the lecture on October 23rd. I will reserve the lectures on October 21st and October 23rd for class presentations. We can fit roughly six presentations in a single class session. (I will be a stickler in requiring that teams finish in ten minutes.)


Example Object-Oriented Frameworks

Teams are encouraged to locate an OO framework that interests them. To get you started, here are a few examples of frameworks that are large enough to be acceptable for this assignment.

As you can see, these choices all refer to large, popular object frameworks and I do not expect you to be able to comprehensively discuss the entire framework. It would be impossible to document all of Ruby on Rails, for instance. But if you focus on the main functionality of such a framework (receive request from web browser, route it, handle it, generate response) you could very easily find enough classes and services to fill a 10-15 page paper.


In reference to the text proper subsets of that appears for two of the choices above, this again is an acknowledgment that some of these frameworks are very large. As a result, you can decide to focus on a subset of the framework: the security aspects of the Java framework or the web services aspects of the .Net framework, for example.


Your team does NOT have to be limited to the choices listed above.


Once your team has settled on a choice, send a message to Prof. Anderson letting him know what framework you selected. Note: I will allow up to two teams to work on the same framework. Last year, I let too many teams pick the Swing framework and it made the class presentations less exciting. (One purpose of this assignment is to raise the knowledge of the entire class as to the various OO frameworks that are in use today.


Wrapping Up

If you have any questions or concerns, send a message to Prof. Anderson


This page may be updated with new information in response to clarification questions made by the teams. Each update will be announced on the What's New page of the website.

Kenneth M. Anderson, 2008