|
|
Project:
The projects should be done in teams of 3-5 people. Your team will develop and implement a simple system with a GUI front end, a middle business logic layer, and a simple database (e.g. file system with a front end). The project will be done in 2 phases. The first will have limited functionality, and the second full functionality. The language of choice is Java. The modeling language is UML. UML diagrams can be drawn using MS Visio, which is available in the lab.
The lectures will use a (very) simple dating system as an example. You can use this as a guideline for the kind of functionality we are looking for in your system. Your team should come up with a project of similar difficulty and functionality. The point is to try out the basic methods and ideas that will be introduced, and not get bogged down in programming in the short amount of time available to us.
The following is a brief overview of the dating system example.
- "There are two classes of users: member and administrator. A user starts the system and logs on, giving a name. The system determines the class of user by looking in a member database. If the user is there, then either a get a date or an update data option can be chosen. If the member is not there, a message is given, and the system returns to its initial state. If the user logs in with a special name, then the system goes into administrator mode, and the following options are given: add a member or delete a member. If a member is added, the member data in the DB will be empty until the user puts in the data."
- "A member has properties on the basis of which a date can be selected. In this case they are: gender, religion, and occupation. These are the properties that are stored for a member, and the properties that a member uses to ask for a date. The system tries to find an exact match. When match is found, the email address for the datee is given, which is also stored in the data base."
- "After some function, such as finding a date, the system returns to its initial state, from the which the user can start another session (which requires another logon) or terminate the session."
There will be two project deliverables, one for each phase (up to
midterm, after midterm). The first will contain the deliverables
described for each of the lectures up to the midterm, and will be due
on the lecture after the midterm.
The second will contain the deliverables described in the lectures
after the midterm. You should also redo the deliverables from the
first phase for the added functionality of the second phase. It may
be easiest to completely redo the first phase deliverables and hand
this in instead of just adding the second phase functionality
increment for the first phase deliverables.
Due date: lecture 11 (11/10/2009)
- What to deliver:
- High-level overview and description of your project (the README, see below).
- All of the items described as deliverables from each lecture, since the first lecture.
- Source code files and object code classes, stored with their source code files.
Note that I will recompile the program.
- Indicate what command in the command line is needed to run the application. E.g.
A:\> java -classpath A:\GiftingSystem Start
You should also describe what command could be used to compile your source code files (instructions for compiling). As above, this should allow this to happen from the media you have handed in. Your code must be compilable and runnable from a command prompt window on Windows (or Linux), as in the lab, and must work for the JDK software that is installed there (or JDK 5).
- README:
- a brief description of how to use your system, including any special GUI features the users should know about
- a brief description of how the code is organized, such as package/file structures
- what command line needed to compile (and ANT script if necessary)
- what command line needed to run
- How to deliver:
- Hard copies of UML diagrams, tests, and readme. Please turn in class.
- make sure each page is clearly labeled
- put them in an 8x11 yellow manilla envelope
- write on envelope: "CSE111 Project Phase 1", with names of group
members
- Electronic copies of everything (UML diagrams, tests, readme, code).
Group all files into one folder and compress the folder in either ZIP or TAR.GZ format.
Then, email the TA and the Professor the following:
- subject: "CSE111 Project Phase 1"
- include names of group members in the body of the email
- attach compressed file.
Due date: lecture 11 (11/10/2009)
- An updated version of all that was in phase 1. This means upgrade your domain models and other diagrams, then extend/update the diagrams to add the new functionality you implemented for phase 2.
- All the UML diagrams for the new functionality added since phase 1. If your new functionality was not fully documented in the first phase, make sure it is for the second phase.
- Note, you will need to create state charts for phase 2 (was not covered in lecture before phase 1 submission).
- You do not need to resubmit models you submitted in phase 1.
- You will need to implement fully all the use cases. Make sure you include all deliverables that are described in the assignment for each lecture.
- Again, deliver:
- High-level overview and description of your project (the README, see below).
- All of the items described as deliverables from each lecture, since phase 1 (every deliverable from lecture 10 on).
- Final source code files and object code classes, stored with their source code files.
Note that I will recompile the program.
- How to deliver:
- Hard copies of UML diagrams, tests, and readme. Please turn in at the final.
- Electronic copies of everything (UML diagrams, tests, readme, code).
Group all files into one folder and compress the folder in either ZIP or TAR.GZ format.
Then, email the TA and the Professor the following:
- subject: "CSE111 Project Phase 2"
- include names of group members in the body of the email
- attach compressed file.
|