Course main page

Course Project

CS 4773 Object-Oriented Systems - Fall 2009
The University of Texas at San Antonio

Project Milestones

First Milestone (due Friday, Sept 11):

  1. Form a group of two/three people

  2. Select a project topic

  3. Come up with a name for your project

  4. Create an "elevator talk" describing your vision for the project

Deliverables: A single sheet of paper with the above information. Your elevator talk is a concise description of your project, intended to be described in the length of time it takes to go from the 1st floor to the 4th floor of the Science Building. One member of your group will present the elevator talk on Friday, for the Scrum credit for your group.

Second Milestone (due Friday, Sept 18):

  1. Interview several potential "stakeholders" of your project, in particular, potential users or people who would be affected by your tool. What do your users need? What do they want? You may interview friends, family members, fellow classmates, or anyone else in the community.

  2. Write many Use Cases for your project, based on your interviews and on your vision of the project. The Use Cases collectively must cover every major feature of your project.

  3. Create at least three "mock ups" of your application (for example, make a drawing of what a dialog box would look like, or what the main window of the application would look like under different scenarios).

  4. The goal is to specify the functionality of your project as completely as possible. The grading for this milestone will be based on how well this specification fits your vision. You should have at minimum 16 different use cases, otherwise your project is probably underspecified. (There is no maximum, and the more complete you are in this step, the easier time you'll have in later steps, and the less likely you will need to re-do this portion of the project.)

Deliverables: 1.) A report on your interview with the stakeholders, including sample quotes (not the whole transcript of the interview). Do not provide any identifying information. 2.) Your Use Cases, written in prose. Include Activity Diagrams and Use Case Diagrams when they add clarity. 3.) Your application mock ups, integrated into your use case descriptions.

Third Milestone (due Monday, Oct 19):

  1. Find a use case of yours that would need to use the external library (for many projects, this is practically all use cases: pick one)

  2. Implement that use case

  3. This may be harder than it looks: In particular, getting JARs to work

  4. Check WebCT/Blackboard for turn-in instructions

  5. Prepare to present your project status on Friday, October 16th

Deliverables: 1) Your scrum presentation; 2) You must upload to WebCT/Blackboard either: An Eclipse project of your work; Or, an executable file that can run on Windows (configured like the lab machines) -- either an executable JAR or other format; and 3) A text or Word file providing instructions on how to use your executable to demonstrate the use case.

Fourth Milestone (due Monday, Oct 26):

  1. Implement (at least) four more use cases, and describe what they are in a separate text file

  2. Make an executable JAR for your program. Expect to spend some time to get this right, don't wait until the last minute!

  3. Check WebCT/Blackboard for turn-in instructions

Deliverables: 1) You must upload to WebCT/Blackboard: An executable JAR file that contains all of the needed classes, images, and other resources (or, an executable file that can run on Windows, configured like the lab machines); and 2) A text or Word file providing instructions on how to use your executable to demonstrate the four use cases.

Fifth Milestone (due Friday, Oct 30):

  1. Identify your risks to completion. E.g., "Our project requires communication between two machines, but we haven't worked on that yet."

  2. Come up with a plan to address these risks.

Deliverables: Deliver a document describing these risks and your plan. The document should not be long, and this is something you should be thinking about already. Bring a printed sheet, turned in at the start of class.

Sixth Milestone (due Wednesday, Nov 4 & Friday, Nov 6):

  1. Identify the features you will deliver when your project is complete

  2. Have new features been added?

  3. Should some features be removed?

  4. Would an alternative user interface make more sense?

  5. Prepare for an in-class demo on Wednesday, November 4. You might not be the one at the keyboard/mouse!

Deliverables: Deliver a document describing any change of plans in terms of features, and what new things about the problem you have discovered in the process of development. When you have an executable, email it to me or bring it in on a thumb drive at the start of class on the 4th.

Final Milestone (due Wednesday, Dec 2):

This is it! Your project is all done, and you are ready to present it and turn it in!

Deliverables: Your executable, your source code, and your class presentation.

Project Choices

Your group must choose to specify and develop one of the following four projects:

1.) Dual-Player Role Playing and Chat Game

Two players can connect and interact in a virtual world. Characters in the world can have and use items of various types.

2.) Domain-Specific Communication Tool

A tool built upon a chat system that enables specific tasks where email and a raw chat program just will not do. For example, a system where food orders can be placed. Communications (e.g. orders) are checked and verified to make sense before being sent off. The tool has two modes: Receiving and Submitting (similar to Client/Server, but the chat framework itself is the "real server").

3.) Personal Finance Management Tool

A user enters in financial data, which the tool saves to an XML format. Data can be visualized, including graphs visualizing projected wealth growth. Using tables and estimates, the tool can take into account inflation.

4.) Interactive Family Tree Tool

Saves names, pictures, and relationships about family members, letting the user create an interactive family tree. If a user selects two nodes in the family tree, the tool can show their relationship (e.g. "Vina is Joesph's mother", "Ankit and Jane are second cousins, once removed").

These descriptions are to help get you started and focused, but your team is responsible for specifying and creating the vision for what the program will ultimately be like.

The program must have a GUI (either based on Swing or Slick) and use at least one additional external library. External libraries may also be advanced Java platform libraries, such as JDBC, XML, or Networking.

Suggested Libraries


Last modified: Tue Dec 01 17:20:03 Central Standard Time 2009