The objective of this project is an application of object-oriented analysis and design to the development of an application system using design patterns. It covers various aspects of object-oriented analysis, design and programming. It also provides an opportunity for a hands-on experience with client-server Internet programming using Java, C++/C, GUI programming and backend info provider design. Mastering the materials in class as well as the ability to learn new things quickly will be essential for success in this project.
This page is copyright and if you use any of the original ideas in the future in any commercial way. Please email firstname.lastname@example.org for approval.
This projects is a small application system that serves information to a user. It is a multi-tier system with the following tiers:
Tier n: Info Store Layer is the tier where the info stores are located. In this tier, we support at least two different info stores. The DB2 databases and a native windows file system info store. For extra credit, other info store should be added. (For example, LDAP, Excel, XML DB, etc).
Tier n-1: This is an optional layer where a server agent or proxy is located. This layer handles optional info stores specific issues such as database connection, serialized objects processing, etc.
Tier 2: Proxy Layer is where the proxy is located. Details will be covered in the proxy design pattern lecture.
Tier 1: GUI Layer is where the user is going to enter user id, password, and information to search (info key). The GUI could be VC++ window, web interface, java swing, or java applet, or any other form of user interface. (No text only menu please.)
This is a high level view of what happens in the unified info proxy system:
User brings up the GUI
User enter User ID, Password and Info key (for example, a string "info001")
The unified proxy (in the Proxy layer) finds out the user entered has access to which data stores.
The unified proxy maps the entered userid to userids in the corresponding data stores.
Information is retrieved from the data stores.
Information is grouped in the unified proxy and passed back to the GUI.
User sees the information retrieved in the GUI.
The userids and passwords for each data stores are not the same.
Data stores can have the same info key.
The group has to decide on various design and analysis issues, for example:
This system is supposed to be developed according to the software lifecycle and OOAD principle taught in class. Good software engineering principles must be followed. In particular, documentation must be good.
As the whole class will be working on similar projects, relative grading will be used. In other words, all the projects will be ranked within the class and points will be assigned accordingly. A lower point bound will also be used to ensure that some of the core features are implemented in the project. (For example, 200 points for base features, 100 points for extra features)
This is not an "easy" class and the project is an essential part of the overall grade. If you study the grade distribution of past semesters, you will find out there are 13 A and 8 F. People who did not deliver the project well enough could really hurt their grade as the project contains more than 40% of the overall grade.
On the bright side, most of the students in the A range did really well in the project. So, there is no upper bound for an A. (In other words, I do not limit the number of A in a class.)
Copyright 1996-2001 OpenLoop Computing. All rights reserved.