James M Burke
Lauren Hamburg
Stan Vinyard
CS 371: Homework 1
I. System Overview
For this project, we will be implementing Freedom in the Galaxy in Java. We will take the manual system and convert it to an object-oriented computer program. The code will be a hierarchy of modular classes that represent the manual system. The user interface will be a graphical representation of the manual system.
There are certain aspects of the manual simulation that are limits due to using paper that we hope to eliminate. Some of these aspects are:
- Users do not have to worry about pieces being shuffled on the board. In many cases, people dislike the manual system, because they spend hours playing the game and it's easily disrupted due to using small pieces. A slight bump of the table could cause the game to suddenly end in frustration.
- We could implement networking to prevent players from seeing each others' setup.
- Users do not need to worry about losing pieces, die, cards, etc. Another disadvantage of the manual system is that the small pieces are easily lost or misplaced. Since this game is out of print, replacing lost items and articles are extremely difficult to replace.
- Users do not have to worry about misinterpreting the rules. We, the developers will be the ones interpreting the rules, and the program will be designed to take care of general game play functionality.
- Users do not have to worry about arbitrary cheating. For example, people moving pieces when other players are not aware to gain an advantage.
II. Tentative Schedule
We have devised a short schedule for how we believe the project should unfold over the course of the next few months.
| Tentative Due Date |
Description |
| September 12, 2003 |
Requirements Analysis |
| September 19, 2003 |
Software Architecturing |
| October 3, 2003 |
* Detailed Design |
| October 17, 2003 |
GUI Design |
| November 7, 2003 |
* Programming |
| December 1, 2003 |
Quality Assurance (Testing) |
* Denotes the functionality as a milestone
III. Classes and Tasks
While reviewing the manual system's rule book, we have discovered the following possible classes to be used in the digital system:
- universe
- galaxy
- character
- environ
- mission
- spaceShip
- possession
- actionCards
- units
- galacticEvent
- strategicAssignment
- provinces
- militaryUnits
- starSystems
- planets
- pdb
- combat
- companions
- weapons
- objects
- imperial
- rebel
- monsters
- loyalty
We have also discovered the following tasks or actions, which need to be included into the digital system (with their respective preliminary use case description):
- Break Off
Actor actions: 1. Initiate break off. 3. Roll dice
System response: 2. "Active or Inactive characters?" 4. Calculate success of break off
- Hyperjump
Actor actions: 1. Utilize hyperjump 4. Roll die for success
System response: 2. Calculate space route 3. Determine navigation rating
- Interception
Military units leaving or entering orbit around a planet may be intercepted.
- Raking Attack
Military units that are attempting to move weapons to or from a planet are succeptible to a raking attack.
- Move Character
Actor actions: 1. Move object or character to specified location
- Move Military Unit
Actor actions: 1. Move military unit to specified location.
- Initiate Military Combat
Actor actions: 1. Choose order to resolve combats. 2. Declares combat 4. Roll dice (both)
System response: 3. Calculate combat strengths and name leader 5. Remove required units
- Draw Card
Actor actions: 1. Draw card. 3. Decisions are made
System response: 2. Display random result
- Set PDB
Actor actions: 1. Place PDB according to rule specifications.
- Search
Actor actions: 1. Determine search value 3. Roll die
System response: 2. Cross-reference searching value and hiding value.
- Wounds
Actor actions: 1. Dispurse wounds across units
- Assign Mission
Actor actions: 1. Choose environ and organize characters into mission groups 2. Draw card
Use Case Diagram

Class Diagram

Classes Unit, Possession, and Galaxy are all instances of the Universe class, but are neither an aggregation nor an inheritance. The mentioned classes all exists at some point and time in the game. Units and Possesions are dynamic, where as Galaxies are static.
Last Modified: September 4, 2003