* 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.
The project grade will be distributed with the following breakdown:
- Proposal: 15%
- Design: 40%
- Implementation: 40%
- Misc. (group interaction, meeting logs): 5%
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.
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:
- Team member roles: You will need to assign the
following roles to each of your team members. These roles do not
need to be permanent, but can be floating (i.e., you can change
roles over the course of the semester). The same person can
fulfill multiple roles, while a member may not have any of the
special roles.
- Team leader: The leader shall coordinate team meetings,
assign tasks, and in general ensure the proper
functionality of the team.
- Documentor: The documentor will note down minutes of each
team meeting, specific decisions made in the meeting, and
outcomes of any important decisions. Ensure that all the
meetings are properly logged - these logs will need to be
included in your final project report.
- Guru: The guru is a special role who will be the most
knowledgeable person about the project and its
requirements.
- Code leader: This person will be the main
programming/implementation person. She will have to ensure
consistency of the implementation, keep versions and
backups of the implementation.
- Instructor contact: This will be the person who will serve
as the contact for me on behalf of the team. If I have any
questions regarding the project, or if you have questions,
this person should be available to come and meet me or
communicate with me.
- Team meetings: Starting the week the teams are
formed, each team should meet for at least 15-30 minutes
each week to discuss project issues. The first meeting could
be used for deciding team member roles. You will need to
find a common time to meet. If other times are hard to find,
you can meet immediately before or after the lecture
time.
- Team communication: The documentor of the team
should keep an email folder containing email communications
within and outside the team regarding the project. As usual,
most communication will be via email, but you can also think
about other means of communication.
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:
- 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.
- 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.
- 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?
- 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.
- 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.
- 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.
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.
- Object design: Create the UML for the project,
which should include all objects in the design, their methods
and interactions with other objects.
- 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.
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:
- All classes implemented, at least in skeleton form
- All user-interfaces implemented, including forms, links,
connections between different units.
- All database connection issues resolved. Your program should be
able to connect to the database and show at least some data
interaction between your code and the database
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:
- 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.
- 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:
- DML statements to create your database and populate it with a
basic set of test values.
- Complete code (java source only, no class files). Please zip the
code and maintain the directory hierarchy.
- 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.
- A complete log of your team meetings (remember, I said I will
ask for this?)
- 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.