CisLunarFreighter/Requirement analysis and high level design

Object Oriented Software Engineering
 * Component, Responsibility, Collaborators (CRC)Cards - 4" X 6" note cards
 * Design, Code, or Case Scenario Walkthroughs

CRC Cards
This exercise is based loosely upon the technique demonstrated in Chapter One of Classic Data Structures in C++ by Timothy A. Budd, cp1994 by Addison-Wesley Publishing Company, Inc. In a local object orieted design project using C++ CRC (Component, Responsibility, Collaborating Objects) cards are used to jot down names and bullets outlining the high level components identified in walkthrough as required for the project design.

Local Adaptation
A procedure we may use here for asnychronous, distributed, walkthroughs is as follows: Individual files shall be created for proposed components. Responsibilities for that component jotted down in bullet form at the top of the screen, simulating a 4" X 6" note card. When another component is called a link will eventually be created to that component. Actions the component must complete are listed in the bottom half of the computer screen/file.

For the highest level walkthough or design Budd designates the most important characteristics of potential design components as: 1. A small set of well defined responsibilities must result. If the component has too many responsibilities then it should be busted into multiple components and the walkthrough reaccomplished. 2. Interactions with other components should be minimalized to the greatest extent possible.

Effort expended achieving the two characteristics above are alleged to provide large benefits in the coding process and final code.

Draft Component/Card Set

 * cisLunarFreighter CRC Card Initial Splashscreen, Launcher, Menu
 * cisLunarFreighter CRC Card Load and Mission Generator
 * cisLunarFreighter CRC Card Ship
 * cisLunarFreighter CRC Card Ship Designer
 * cisLunarFreighter CRC Card Personal Game Data
 * cisLunarFreighter CRC Card Terran Spaceport
 * cisLunarFreighter CRC Card Spacecraft Freight Load Planner
 * cisLunarFreighter CRC Card Takeoff or Lander Screen
 * Terran, Lunar, Asteroid, or Saturn Pirate Base


 * cisLunarFreighter CRC Card Pilot's Cockpit Screen
 * Mini Map Radar Overview, Cockpit Menu, Headsup Communicator


 * cisLunarFreighter CRC Card 2D Overview Asteroids or Meteor Shower Flythrough
 * cisLunarFreighter CRC Card Solar System Game Controller
 * cisLunarFreighter CRC Card User Keyboard Interface Controller
 * cisLunarFreighter CRC Card User Mouse Interface Controller
 * cisLunarFreighter CRC Card Background Music Selection and Player
 * cisLunarFreighter CRC Card Lunar Spaceport

Components called as Collaborators
* Animation player * Background display * Main Menu