S428/S528
Advanced Application Development

* Home  * Description  * Overview  * Schedule *
* Projects  * Grades  * Discussions *


S428/S528 Projects

Details on the various project deliverables (see the schedule for exact dates) will be posted here.

Project grade distribution

The project grade will be distributed with the following breakdown:

IMPORTANT Each project will receive a cumulative grade which will be weighted by evaluations that team members submit. Instructions on the submission of team member evaluations will be available here.


Milestone 0: Team Formation

An initial team formation will be done in class. The teams will be created somewhat randomly by ensuring every team has more or less equal strength. Teams can have three or four members.

Team logistics and duties: The following are duties that each team will need to adhere to, at least initially:


Milestone 1: Project Proposal

due date: see schedule page.

The proposal is the first among the documents that you will be handing in for the project. Each team should hand in exactly one document. If you are submitting via email, the submission should come from the instructor contact of your team. The proposal does not necessarily have to be a very detailed document, but at least the following information must be included:

  1. Who is the client? Include full contact information, including name(s) of primary client contacts, addresses, telephone numbers, and any other pertinent information. As I mentioned in earlier, you should try to have a real-world client in a real-world project, instead of making one up for yourself.
  2. What is the main purpose of the project? This should be between one and two paragraphs, and should describe briefly the main goals of the project and what goals it is supposed to fulfill.
  3. Is there an existing method and system? Is this database going to replace an existing system (which could be paper-based, file-based, or even just word-of-mouth based)? Does the client have some means of performing the task? What are the advantages and drawbacks of the current system/method that the client has?
  4. What kind of data will be stored? Here, describe the data that will be in the system. Be as detailed as possible, including names and descriptions of various types of data. Notice that you are not performing any relational design yet, so it is okay to list everything that will be stored, without any mormalization.
  5. What types of problems will this project solve? In this section, describe the types of uses this project would have. Also describe the process components of this project.
  6. How much time will this project take? Estimate the number of man-hours this project will take. Please itemize the man-hours according to the different phases of the database development cycle (proposal, analysis, design, implementation, testing/debugging, installation and maintenance).

There is no minimum or maximum page-number limits for this phase. But remember, the more you put down on paper now, the easier it will be for you to decide things later.


Milestone 2: Project design

In this milestone, you will need to submit the UML and the database design of the project. As discussed in class - this is the first step towards implementing your project. In this milestone, you will need to ensure you have all your issues resolved, all questions answered from your client. After this milestone, there should be no more changes to the requirements.

  1. Object design: Create the UML for the project, which should include all objects in the design, their methods and interactions with other objects.
  2. ER diagram: Create an ER diagram that includes all entities, relationships, any weak entities/relationships, and ISA hierarchies if any. You can only display the most important attributes for each of the entities. Ensure that you display proper cardinality and participant constraints for every entity-relationship connection.

Milestone 3: Project Prototype

There are no concrete deliverables for this project. Each team should meet with the instructor or the grader to demonstrate their prototypes.

The project prototype should be a semi-complete implementation of the project. This should reflect a complete understanding of the design and an understanding of how the implementation would shape together in its final form. At the minimum, the following should be included:


Final milestone: Implementation and submission

Well, you guys have come across a number of hurdles, now the last one. This is hopefully not going to be the most painful one, given the amount of preparation that has gone into this system.

What do I want from this project?

I want to ensure that the project was at least a learning experience for you as a database development exercise. I do not like assigning minimum requirements for the project, but obviously I need to keep a standard to ensure that people are not going away with trivial things. So, here are some of the criteria that you will need to have:

  1. A decent user-interface. You should have a well-designed menu, the user interaction should be properly explained and any user using the system for the first time should know what he/she is supposed to do at a particular time.
  2. Code complexity. This is debatable, but a rough estimate of the number of classes (excluding the provided classes) should be about twice the number of members in the team.

What do you need to submit?

The following items need to be submitted:

  1. DML statements to create your database and populate it with a basic set of test values.
  2. Complete code (java source only, no class files). Please zip the code and maintain the directory hierarchy.
  3. A writeup containing (i) the final UML and ER model; (ii) what parts, if any, of the were not implemented and the reasons behind them; and (iii) your experiences with the project - what you liked about it, what you disliked about it - how it could be improved, and whether or not you would like to see your project continued in a subsequent semester by another team of students.
  4. A complete log of your team meetings (remember, I said I will ask for this?)
  5. At the end of the project, you will need to evaluate your peer team members. This would be conducted online, and the procedure will be given to you at that time.