COP-2805 (Java II) Project
Automating a Mini-Golf Course (Design)


Due: by the start of class on the dates shown on the syllabus


In this project, your team will put to use the skills you have learned for reading RFPs, creating detailed requirements and then a detailed design.  Either or both parts may be documented with text, unit tests, UML, or a combination of these.

Requirements:  The RFP

Carrying a pencil and score card when playing mini-golf is a pain; holding the club, ball, and trying to write the score down (with no table) is difficult.  A local mini-golf course chain has contracted your software development company to automate scoring.  At each hole is a keypad on a card-swipe station.  The customer hopes such high-tech mini-golf courses will attract more customers.

For cost reasons, the various courses around Tampa Bay all use the same central computer (already installed), connected to the card-swipe stations at each course using a network.  All the hardware has been installed already and the network is up and running.

Use-Cases and Other Requirements

The one use-case for the RFP is:

  1. The users are issued disposable (cardboard) swipe cards when they pay, before the round starts.  They provide their name when issued their card, which gets printed on the card.
  2. After completing each hole, the user swipes their card at that hole's swipe station, and enters the number of strokes.  The card-swipe stations also display the player's name and current score (the number of strokes over or under par, so far).  Once a score is entered for a hole, the player can't change it.

    Note the score and the player's name do not have to be stored on the swipe card itself.  That data can be kept (how is up to you) on the central computer.

  3. After playing the last hole, the play can turn in their swipe card and request a printout of their round (the score card).  (That usually has a discount coupon on the back, for next time.)

This is not totally fiction!  A company called World Golf Systems sells golf balls with RFID tags inside.  These are tracked on the course and provides instant feedback to the golfer about where the ball ended up.  In fact new types of golf games have been invented based on these balls.  See to see a course that uses these balls, with swipe stations with a display showing the data.


Think about the last time you played mini-golf.  If it's been a very long time, consider a “research trip” to your local Putt-Putt or other course.

Think about what happens when the computer or network goes down.

To be turned in:

A copy of the requirements and design documents for your team, to the Canvas dropbox for this assignment.  This should include use-case(s), functional, and non-functional (operational) requirements.  Your team must make those up, but feel free to consult the customer (that is, your instructor) if you want guidance.  The design should include any technology requirements and system description, in addition to a detailed design of any classes your design calls for, with their important members listed.  You can list those in text or UML.  Only a single copy per team need be submitted.

Individual team member ratings:

Grading will be done for the group's results.  Individuals in the group will have their grades adjusted by peer ratings.  A rating of each team member's level of participation should be sent individually by every member directly to the instructor via email.  Be sure to include yourself in the ratings!  The rating is a number from 0 (didn't participate at all), 1 (less than their fair share of the work), 2 (participated fully), or 3 (did more than their fair share of the work).  Additional comments are allowed if you wish to elaborate.  (I will keep such comments as confidential as possible under Florida law.)

Send your group ratings as email to .

Please see your syllabus for more information about projects, about submitting projects.