Top Gear 5000

Software Release: 0.1

Document Version: 1.2.1386192965

December 4, 2013

Submitted By: Andrew Bowers

Email:

1. Legal Notice

A Game Coder makes no warranties of representations of any kind concerning the accuracy or suitability of the information contained in this document for any purpose. All such information is provided "as is" and with specific disclaimer of any warranties of merchantability, fitness for purpose, title and/or non-infringement. In no event shall A Game Coder, its employees or agents be liable for any direct, indirect or consequential damages resulting from the information provided in this document. This exclusion and limitation only applies to the extent permitted by law and is without prejudice to any express provisions to the contrary in any written license or subscription agreement form A Game Coder in respect of this document or references.

2. Copyright Notice

Copyright ©2013-2014 A Game Coder. All Right Reserved

The copyright in all material provided in this document is held by A Game Coder or by the original creator of the material. Except as stated herein, none of the material may be copied, reproduced, distributed, republished, translated, displayed, posted, communicated to the public by telecommunication or transmitted in any form or by any means, including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of A Game Coder or the copyright owner. Permission is granted to display copy and distribute the materials in this document for personal, non-commercial use only provided you do modify the materials and that you retain all copyright and other proprietary notices contained in the materials. This permission terminates automatically if you breach any of these terms or conditions. Upon termination, you will immediately destroy any printed materials. Any unauthorized use of any material contained in this document may violate copyright laws, trademark laws, the laws of privacy and publicity, and communications regulations and statues. All right, title and interest not expressly granted are reserved.

3. Revision History

AuthorCompanyVersionDateFile NameComments
Andrew BowersA Game Coder0.1May 21, 2013ProjectProposal.docxFirst draft of the proposal.
Andrew BowersA Game Coder1.0June 5, 2013ProjectProposal.docxFixes for end of project proposal.
Andrew BowersA Game Coder1.1October 20, 2013proposalPartRewritten in HTML
Andrew BowersA Game Coder1.2October 24, 2013proposalPartUpdated proposal requirments and archival information.

4. Signatory Page

This Document Accepted By:


Signature (Calvin Caldwell)Date


This Document Submitted Accepted By:


Signature (Andrew Bowers)Date

6. Introduction

6.1 Purpose

The purpose of this document is to propose the design and implementation of Top Gear 5000. The following sections and their related subsections are dedicated to explaining the format of this document as well as describing the intended design plans. If this proposal is accepted, this document will provide the necessary documentation to begin implementation, and will become a guide to constrain the implementation process.

6.2 Scope

The scope of this document is limited to project management, general discussion of the system and a description of the product requirements which will describe in limited detail the intended design features and functionality. This document will not elaborate on specific functionality of modules, or otherwise discrete details that may later be added to the software design specifications.

6.3 Intended Audience

The intended audience of this document is Professor Calvin Caldwell, Andrew Bowers, and any third party, which may review this document out of interest in the project.

7. Project Management

7.1 Change Management

In the event of request of a change of the system the CAT team will be consulted upon the change. Changes will proceed according to the following instructions.

7.1.1 CAT Team

The CAT team will consist of the senior project instructor and myself (Andrew Bowers). The team will evaluate the impact that a change will have on the production of the system. Submitted changes can be accepted or rejected by the team with a brief statement to explain why.

7.1.2 Medium

Any changes must first be filled out on the 'Change Form' (Appendix A) by a member of the CAT team. No digital versions will be accepted. The form will need to be printed out for each requested change. A copy of the form must be provided to each of the members of the CAT team.

7.1.3 Protocol

Once a 'Change Form' has been received by all members of the CAT team the change will be processed over the next 2-3 business days. At the end of that time an email with the resulting decision and explanation will be sent to the email address provided on the 'Change Form'.

7.1.4 Time Lines

In the case of an accepted change, the time line will have to be adjusted to fit the change. This may result in an increased or decreased time to completion for the project as a whole or for specific features.

7.1.5 Impact Analysis

Before a change moves forward, the impact it would have on the project time line will be inspected. If the change will increase the timeline past the maximum time frame it will automatically be denied.

7.1.6 Archive

Once a decision has been made the result and explanation must be typed up and the document linked to in the appendicies of this document.

7.2 Software Delivery, Installation, and Acceptance Criteria

Software delivery will be distributed to all parties for evaluation. The delivery will include an installation package, written documentation of system requirements, and a 'Read Me' text file with help for the install process. When the system is released it will be downloadable from the agamecoder.com website. Acceptance criteria will be based on the completeness of the above items and acceptable operation of the software provided.

7.3 Documentation and On-Line Help

Software documentation will be available in three formats: paper documentation, program help, and through an on-line website (agamecoder.com). This documentation will describe system requirements, installation process, and the operation of the software described by this document.

7.4 Project Risks

Project risks include the successful operation of the software on a wide variety of GPUs so that users do not need to have the best GPU available in order to play the game. Optimizing the game so that it can run and 60 frames per second may require the elimination of processor heavy requirements which could significantly change the final form of the software product.

7.5 Customer Responsibilities

The customer is responsible for evaluating the performance of the software and providing necessary feedback for the continuing evolution of the development process. The customer will also provide evaluation in a timely manner before the requested date for feedback.

7.6 Status Reporting

Status Reporting will be completed on a weekly basis in a memo format to the senior project professor. The report will include at minimum the following sections:

  • Work completed the past week.
  • Work planned for the next week.
  • Issues that occurred while trying to complete the past week's work.

8. System General Description

8.1 Problem Statement

The problem approached by this project is the lack of modern realistic 3D rendered racer's using cool gameplay concepts like alien terrains or power-ups. Typically modern racing games fall towards the far sides of the racing game spectrum. Either they are very realistic racing simulations such as Forza and Grid or they are 'Kart' games like Mario Kart. The market needs a racing game that has the graphics like the realistic racers, but the ease of use and special features like the 'Kart' games.

The project I am proposing to solve this issue is Top Gear 5000. This is a racing game that utilizes mechanics similar to the Top Gear 3000 (SNES) game such as alien worlds, limited fuel, limited vehicle durability, and several abilities that could be purchased for the car using in game currency. Also the game will feature a multiplayer component that allows two players to compete against each other either directly or indirectly.

8.2 Perspective

8.2.1 History/Background/PriorReleases

Top Gear 5000 was first conceived in 2012 as a project for the HTML5 canvas utilizing WebGL. Since then the project idea has been fleshed out and the game will now run natively on Windows for the initial release. Due to massive time constraints the game will now utilize the Unity game engine in order to reduce the time required to develop this type of project.

8.3 Major Subsystems

The system will be broken down into two main subsystems: the game client, and the web service.

The game client will run on Windows 7 or Windows 8.X laptops and desktops that have dedicated graphics cards. The game client will provide the user with the ability to race against AI opponents and compete in time trial modes. The game client will utilize the web service to provide user account authentication, friends, achievements, prior race recordings, the leaderboard and the ability to connect to other players for races.

The web service will provide the game client with the ability to remotely access user account authentication, friends, achievements, prior race recordings, leaderboard and to connect players to race with each other. The web service will also provide a web interface for users to manage their account information including friends and achievements.

8.4 Relation of System to Existing System(s)

The system will be dependent on the Unity game development environment for development and the Blender art creator for asset generation.

8.5 Hardware Platform Description

Game Client:

  • Laptop or Desktop running Windows 7 or Windows 8.X.
    • 1 GHz Dual Core Processor or better.
    • Nvidia G240 equivalent or better.
    • 4 GB of RAM
    • 5 GB of HDD free space for install
    • Internet Connection (Recommended)

Web Service:

  • Linux Server
    • 1 GHz Processor.
    • 1 GB of RAM
    • 10 GB of HDD

8.6 Software Platform Description

Game Client:

  • Windows 7 or Windows 8.X
  • .NET 4.0

Web Service:

  • Linux Mint 14.1 Cinnamon
  • .NET 4.0 (Mono)

9. Product Requirements

9.1 Functional

  • 1 - Simulate driving a futuristic vehichle.
    • 1.1 - Detect collisions.
      • 1.1.1 - Detect collisions between car and obsticles.
      • 1.1.2 - Detect collisions between car and other cars.
    • 1.2 - Simulate friction between tires and ground for each type of tire. (See requirement 3.3 for tire types.)
    • 1.3 - Adjust the speed capability of the vehicle based on collision damage. The speed capability of the vehicle is calculated based on which engine is installed and what percentage of damage has been taken by the vehicle. Damage is calculated at collision time using how fast the vehicle was going and which set of armor was installed on the vehicle. (See requirement 3.6 for armor types.)
      • 1.3.1 - Running over blue 'strip' in ground repairs collision damage.
    • 1.4 - Allow the user to control the vehicle.
      • 1.4.1 - Steer Left at varying degrees for a varying length of time similar to real steering.
      • 1.4.2 - Steer Right at varying degrees for a varying length of time similar to real steering.
      • 1.4.3 - Engage/Disengage 'gas' pedal with more precision than just on/off. Ex: The pedal could be depressed only half way or a third of the way instead of just fully on or off.
      • 1.4.4 - Brake/Reverse
      • 1.4.5 - Activate Weapon
        • 1.4.5.1 - Weapon: Boost
        • 1.4.5.2 - Weapon: Jump (should act like a physical jump was placed in front of the car)
        • 1.4.5.3 - Weapon: Warp (auto drive without collisions for 1-2 seconds
        • 1.4.5.4 - Weapon: Wall (activates a wall behind the car like a tron light cycle
        • 1.4.5.5 - Weapon: Blue Shell (freezes first place vehicle for a set number of seconds and chains to nearby cars if they drive too close)
        • 1.4.5.6 - Weapon: Ice patch (reduces friction on section of road)
    • 1.5 - Require vehicle to have fuel in order to accelerate.
      • 1.5.1 - Running over red 'strip' in ground refills fuel.
    • 1.6 - Allow car to teleport using 'warp' pads that are placed on the track.
    • 1.7 - Allow adjustment of gameplay settings.
      • 1.7.1 - Turn V-Sync on/off
      • 1.7.2 - Adjust Brightness
      • 1.7.3 - Adjust Control Sensitivity
      • 1.7.4 - Change Keymap
  • 2 - Allow for competition.
    • 2.1 - Single player 'campaign' with races of 1 player and 19 AI racers.
    • 2.2 - Time the user's lap and race speed.
      • 2.2.1 - Remotely store a fastest time (high score) list.
      • 2.2.2 - Allow user to choose which time to race against either one of their 'friends' or a global fastest time.
      • 2.2.3 - Record the user's input or position so that a 'ghost' can be replicated for time based competitions against other players.
        • 2.2.3.1 - 'Ghosts' can't be collided with during replay.
    • 2.3 - Head to head racing between two players on seperate computers.
    • 2.4 - Provide 5 tracks to drive on. (Daytime unless otherwise specified.)
      • 2.4.1 - Shape: Oval, Theme: Evergreen Forest
      • 2.4.2 - Shape: Figure 8, Theme: Ice Planet
      • 2.4.3 - Shape: L, Theme: Night Drive - Desert Hills
      • 2.4.4 - Shape: M, Theme: Desert Ruins - Teleportation
      • 2.4.5 - Shape: Double Figure 8, Theme: Obsidian Hills
  • 3 - Allow user to purchase 'upgrades' for the vehicle.
    • 3.1 - Purchases are made using a purely virtual currency earned by racing.
    • 3.2 - 4 Engines (affect acceleration and top speed) Worst to Best:
      • 3.2.1 - Engine: Gazelle
      • 3.2.2 - Engine: Antelope
      • 3.2.3 - Engine: Greyhound
      • 3.2.4 - Engine: H-3 Tritium (Requires fuel to accelerate, but not to maintain momentum.)
    • 3.3 - 4 Tires (affect tire friction) Worst to Best:
      • 3.3.1 - Tire: Glue Stick
      • 3.3.2 - Tire: White Paste
      • 3.3.3 - Tire: Rubber Cement
      • 3.3.4 - Tire: Super Glue
    • 3.4 - Paint Car a specific Color
      • 3.4.1 - Color: Red
      • 3.4.2 - Color: Blue
      • 3.4.3 - Color: Black
      • 3.4.4 - Color: Green
      • 3.4.5 - Color: Yellow
      • 3.4.6 - Color: White
    • 3.5 - 4 Boosts Worst to Best:
      • 3.5.1 - Cheetah
      • 3.5.2 - Puma
      • 3.5.3 - Jaguar
      • 3.5.4 - Panther
    • 3.6 - 4 Armor options (affects damage from collisions) Worst to Best:
      • 3.6.1 - Armor: Medieval
      • 3.6.2 - Armor: Air Bag
      • 3.6.3 - Armor: Super Man
      • 3.6.4 - Armor: Phantom
    • 3.7 - Store car upgrades remotely for multiplayer
  • 4 - Game Server
    • 4.1 - User Profile
      • 4.1.1 - Friends
      • 4.1.2 - Achievements
        • 4.1.2.1 - First Race
        • 4.1.2.2 - I Drive Bombs for Fun (Purchase the H-3 engine and complete one race.)
        • 4.1.2.3 - Met Casper (Complete race against one ghost time.)
        • 4.1.2.4 - That's it? (Complete a race on each of the default tracks at least once.)
        • 4.1.2.5 - That's one sticky dime! (Purchase the Super Glue tires and complete a race without the H-3 engine.)
        • 4.1.2.6 - Bank Vault (Complete race with Super Glue tires and Phantom Armor without the H-3 engine.)
      • 4.1.3 - Store best times per track.
      • 4.1.4 - Account Managment
        • 4.1.4.1 - Register
        • 4.1.4.2 - Add Friend
        • 4.1.4.3 - Remove Friend
        • 4.1.4.4 - Change Email
        • 4.1.4.5 - Change Password
        • 4.1.4.6 - Authenticate/Login User.
    • 4.2 - Matchmaking
      • 4.2.1 - Connects two game clients in order to race head to head.
        • 4.2.1.1 - Connect with Random Player
        • 4.2.1.2 - Connect with Friend
    • 4.3 - Provide Games List.
      • 4.3.1 - System will support multiple games.
      • 4.3.2 - Games will have Achievements.
      • 4.3.3 - System will report number of active users.
    • 4.4 - System will store information for any client application.

9.2 Performance

Performance will be primarily evaluated based on the ability of the game client to provide a minimum of 60fps while running on a machine with the minimum required GPU and Processor. Secondarily performance will be evaluated based on the ability for the web service to respond to queries in less than 5 seconds while the client is connected on a sufficient 30Mbps internet connection.

9.3 Reliability

The game client should never crash during normal operation. The web service should be capable of 98% uptime year round.

9.4 Interfaces

The game client will have a menu interface where the user can view their stats, select the next race they are going to participate in, and upgrade their vehicle. During a race the interface will display the race either from the perspective of a hood ornament on the vehicle or as a camera floating just above and behind the rear of the vehicle. The user will be able to race and manipulate the menu using either a game controller or a mouse and keyboard.

The web service will provide a REST API for the game client to use for accessing the functionality of the service. Also it will provide a web interface that the user can connect to directly in their browser to use some of the functionality of the web service.

9.5 Data Description

The computer running the game client will include:

  • A Game Settings File.
  • A folder containing records for the best time trials for each user that has played the game on the system and copies of the ghosts for remote users that the local users have chosen to race against in the past.
  • The game level which must have collisions, physics, and drawing occur at a rate of at least 60fps.

The web server running the web service will include:

  • A Database With:
    • User Profiles
      • Username
      • Email
      • Password (Salted and Hashed)
      • Friends List
    • Best Time Trial For Each User for Each Track
    • High Scores
  • A folder containing records for each ghost referenced in the best time trial per user per track.
  • All API requests must contain small enough sent and received data that within 5 seconds a request can be completed.

9.6 Security/Safety

Login information and other user profile information will be encrypted and transmitted over HTTPS only when communicating between the game client and the web service. User passwords will be salted and hashed before being stored in the database on the web server so as to help prevent account violations by third parties.

9.7 Constraints

The first version of the game will only be playable on Windows PCs. All art assets used in the game will either be free and licensed as such or be original creations for the game so that the game may be sold or otherwise released to the public without legal penalties.

10. User Profiles

Users of this software will likely fit one or more of the following descriptions:

  • Interested in video games.
  • Interested in science fiction.
  • Interested in racing.

11. Glossary

TermDefinition
HTTPSThe encrypted version of the HTTP (HyperText Transfer Protocol) used to access websites and other information on the internet.
PCPersonal Computer, In the case of this project the term only refers to laptops and desktops that run versions of Windows, Linux, or Mac OS.
REST APIRepresentational State Transfer, An API built using the principles of REST. REST is a way for data to be transmitted in specific formats using the standard HTTP methods.
HDDHard Disk Drive, The long term 'slow' storage mechanism for data in PCs. HDD does not lose its state when the power is turned off.
RAMRandom Access Memory, Acts as the short term 'fast' storage mechanism for data in PCs. RAM is volatile memory and will lose its state when the power is turned off.
CATChange Administration Team
OGSThe OIT Game Server
OGSIThe OIT Game Server Web Interface
TGFThe Top Gear 5000 Game

12. Appendicies

12.A Change Form


For A Game Coder: Top Gear 5000
Applicant Name (Print):
Applicant Email:
Description of Change:

Reason for Requested Change:


Top Gear 5000 Use Cases

Software Release: 0.1

Document Version: 1.1.1386192965

December 4, 2013

Responsible Analyst: Andrew Bowers

Email:

Signatory Page

This Document Accepted By:


Signature (Calvin Caldwell)Date


This Document Submitted Accepted By:


Signature (Andrew Bowers)Date

Revision History

AuthorCompanyVersionDateFile NameComments
Andrew BowersA Game Coder1.0October 25, 2013http://agamecoder.com/topgear5000/documentationUse Cases First Draft
Andrew BowersA Game Coder1.1December 4, 2013http://agamecoder.com/topgear5000/documentationAdded sequence diagrams (aka dynamic model)

Table of Contents

Use Cases

Actor Catalog

NameTypeDescription
Remote ApplicationSystemAn application that accesses the OIT Game Server.
PlayerPersonA standard user for the OIT Game Server Web Interface.
Game CreatorPersonA 'Player' with elevated privilages that can add game information and achievements using the OIT Game Server Web Interface.

Features Verification Matrix

Features Verification Matrix
Use Case IDUse Case NameRequirments
UCRA 1Fetch List of All Games4, 4.3, 4.3.1
UCRA 2Fetch List of Achievements for a Game4, 4.3, 4.3.2
UCRA 3Fetch Number of Online Players4, 4.3, 4.3.3
UCRA 4Autherize User4, 4.1, 4.1.4, 4.1.4.6
UCRA 5Fetch Basic User Information4, 4.1, 4.1.1, 4.1.2
UCRA 6Fetch User Achievements4, 4.1, 4.1.2
UCRA 7Change User's Online Status4, 4.1, 4.1.1, 4.3.3
UCRA 8Award Achivement4, 4.1, 4.1.2, 4.3, 4.3.2
UCRA 9Store Information2.2, 2.2.1, 2.2.2, 2.2.3, 3, 3.7, 4, 4.1, 4.1.3, 4.4
UCRA 10Retrieve Information2.2, 2.2.1, 2.2.2, 2.2.3, 3, 3.7, 4, 4.1, 4.1.3, 4.4
UCRA 11List of Online Friends2, 2.3, 4, 4.1, 4.1.1, 4.2, 4.2.1, 4.2.1.2, 4.3.3
UCRA 12Request Matchmaking2, 2.3, 4, 4.2, 4.2.1, 4.2.1.1, 4.2.1.2
OGSI 1Log In4, 4.1, 4.1.4.6
OGSI 2Register Application4, 4.3, 4.3.1
OGSI 3Add/Edit Game Achievements4, 4.3, 4.3.2
OGSI 4Approve Remote Application/Game4, 4.1, 4.1.4
OGSI 5View Approved Applications4, 4.1, 4.1.4
OGSI 6Remove Approved Application4, 4.1, 4.1.4
OGSI 7View Achievements4, 4.1, 4.1.2, 4.1.2.1, 4.1.2.2, 4.1.2.3, 4.1.2.4, 4.1.2.5, 4.1.2.6, 4.3, 4.3.2
OGSI 8View Games4, 4.3
OGSI 9Add Friend4, 4.1, 4.1.1, 4.1.4, 4.1.4.2
OGSI 10Remove Friend4, 4.1, 4.1.1, 4.1.4, 4.1.4.3
OGSI 11View Friends4, 4.1, 4.1.1
OGSI 12Edit Profile4, 4.1, 4.1.4, 4.1.4.4, 4.1.4.5
OGSI 13Register Account4, 4.1, 4.1.4, 4.1.4.1
OGSI 14Reset Password4, 4.1, 4.1.4, 4.1.4.5
OGSI 15Log Out4, 4.1, 4.1.4.6
TGF 1Race1, 1.1, 1.1.1, 1.1.2, 1.2, 1.3, 1.3.1, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.5.1, 1.4.5.2, 1.4.5.3, 1.4.5.4, 1.4.5.5, 1.4.5.6, 1.5, 1.5.1, 1.6, 2, 2.2, 2.2.1, 2.2.3, 2.2.3.1
TGF 2Campaign Race2, 2.1, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 3, 3.1
TGF 3Log In4, 4.1, 4.1.4.6
TGF 4Log Out4, 4.1, 4.1.4.6
TGF 5Upgrade Vehicle3, 3.1, 3.2, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.3, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.4, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.5, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.6, 3.6.1, 3.6.2, 3.6.3, 3.6.4, 3.7
TGF 6Free Race2, 2.1, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 3, 3.1
TGF 7Time Trial2, 2.2, 2.2.2, 2.2.3, 2.2.3.1, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5
TGF 8Race Against Friend2, 2.2, 2.2.3, 2.3, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5
TGF 9Matchmaking Race2, 2.2, 2.2.3, 2.3, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5
TGF 10View Online Friends2, 2.3, 4.1.1
TGF 11Adjust Gameplay Settings1, 1.7, 1.7.1, 1.7.2, 1.7.3, 1.7.4
Features Verification Matrix (Alt)
ReqsUCRA 1UCRA 2UCRA 3UCRA 4UCRA 5UCRA 6UCRA 7UCRA 8UCRA 9UCRA 10UCRA 11UCRA 12OGSI 1OGSI 2OGSI 3OGSI 4OGSI 5OGSI 6OGSI 7OGSI 8OGSI 9OGSI 10OGSI 11OGSI 12OGSI 13OGSI 14OGSI 15TGF 1TGF 2TGF 3TGF 4TGF 5TGF 6TGF 7TGF 8TGF 9TGF 10TGF 11
1XX
2XXXXXXXXX
3XXXXX
4XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1.1X
1.1.1X
1.1.2X
1.2X
1.3X
1.3.1X
1.4X
1.4.1X
1.4.2X
1.4.3X
1.4.4X
1.4.5X
1.4.5.1X
1.4.5.2X
1.4.5.3X
1.4.5.4X
1.4.5.5X
1.4.5.6X
1.5X
1.5.1X
1.6X
1.7X
1.7.1X
1.7.2X
1.7.3X
1.7.4X
2.1XX
2.2XXXXXX
2.2.1XXX
2.2.2XXX
2.2.3XXXXXX
2.2.3.1XX
2.3XXXXX
2.4XXXXX
2.4.1XXXXX
2.4.2XXXXX
2.4.3XXXXX
2.4.4XXXXX
2.4.5XXXXX
3.1XXX
3.2X
3.2.1X
3.2.2X
3.2.3X
3.2.4X
3.3X
3.3.1X
3.3.2X
3.3.3X
3.3.4X
3.4X
3.4.1X
3.4.2X
3.4.3X
3.4.4X
3.4.5X
3.4.6X
3.5X
3.5.1X
3.5.2X
3.5.3X
3.5.4X
3.6X
3.6.1X
3.6.2X
3.6.3X
3.6.4X
3.7XXX
4.1XXXXXXXXXXXXXXXXXXXXXX
4.1.1XXXXXXX
4.1.2XXXX
4.1.2.1X
4.1.2.2X
4.1.2.3X
4.1.2.4X
4.1.2.5X
4.1.2.6X
4.1.3XX
4.1.4XXXXXXXXX
4.1.4.1X
4.1.4.2X
4.1.4.3X
4.1.4.4X
4.1.4.5XX
4.1.4.6XXXXX
4.2XX
4.2.1XX
4.2.1.1X
4.2.1.2XX
4.3XXXXXXXX
4.3.1XX
4.3.2XXXX
4.3.3XXX
4.4XX

Fetch List of All Games

General Information
Use Case ID Number: UCRA 1
Subject Area: Remote Application General Access
Description: Get the list of all games that are stored with the OGS.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.3Provide Games List.
4.3.1System will support multiple games.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 13, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends GET request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends Get Request to the AllGames URL
2OGS gathers the basic information for all games1 (List of basic game information)
3OGS returns the information in a JSON format to the requesting application2 (JSON Format for All Games list)
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the requested list of games.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
GameContains the information associated with a single game.GameId, Name, Achievements, ReleaseDate
AchievementContains the information associated with a single AchievementAchievementId, Name, Description, Points
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1There is always at least one registered game in the OGSOctober 13, 2013Andrew BowersTBDTBD
2Remote app uses HTML 1.1+October 13, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1There may be a point where too many games and achievements are registered in the system; thus causing a large amount of information to be returned over a potentially slow connection.October 13, 2013Andrew BowersTBDTBD
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 50 Maximum: 1000 Average: 200 (OR)Fixed:
Per: Week
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At2Seconds0.513Database gather
2At3Seconds0.525Data transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes12204820480Does not include HTTP header

Sequence(s) for UCRA 1

UCRA 1 Sequence Diagram

Fetch List of Achievements for a Game

General Information
Use Case ID Number: UCRA 2
Subject Area: Remote Application General Access
Description: Get the list of achievements for a specific game.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.3Provide Games List.
4.3.2Games will have Achievements.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 19, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends GET request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends Get Request to the AllAchievements URL for a specific game
2OGS gathers the information for the requested game's achievements
3OGS returns the information in a JSON format to the requesting application3 (JSON Format for Achievements List)
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the requested list of achievements.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
GameContains the information associated with a single game.GameId, Name, Achievements, ReleaseDate
AchievementContains the information associated with a single AchievementAchievementId, Name, Description, Points
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 19, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 500 Maximum: 10000 Average: 2000 (OR)Fixed:
Per: Week
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At2Seconds0.513Database gather
2At3Seconds0.525Data transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes12204820480Does not include HTTP header

Sequence(s) for UCRA 2

UCRA 2 Sequence Diagram

Fetch Number of Online Players

General Information
Use Case ID Number: UCRA 3
Subject Area: Remote Application General Access
Description: Get the total number of players currently online in all applications.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.3Provide Games List.
4.3.3System will report number of active users.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 13, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends GET request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends Get Request to the ActiveUserCount URL
2OGS gathers the basic information for all games
3OGS returns the information in a JSON format to the requesting application4 (JSON Format for User Count)
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the requested list of games.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
N/A
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 19, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 500 Maximum: 10000 Average: 2000 (OR)Fixed:
Per: Week
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At2Seconds0.513Database gather
2At3Seconds0.513Data transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes1523200Does not include HTTP header

Sequence(s) for UCRA 3

UCRA 3 Sequence Diagram

Autherize User

General Information
Use Case ID Number: UCRA 4
Subject Area: Remote Application Player Authenticated
Description: Autherize a User against the OGS's records.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4Account Managment
4.1.4.6Authenticate/Login User.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 20, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends GET request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends Get Request to the AuthenticateUser URL with the username and password for the user in a json format.5 (JSON Format for User Credentials)
2OGS verifies the credentials given against stored credentials. If they match and the user has approved this application in the past then a token for access will be returned along with the success message. If no prior authorization then just the success message will be returned while an email is sent to the user with a token for approving authorization.7 (Stored Credential Hash Algorithm)
3OGS returns the success or failure of the authentication in a JSON format to the requesting application6 (JSON Format for Authentication result)
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the result of whether the authentication was approved or not.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 20, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 500 Maximum: 10000 Average: 2000 (OR)Fixed:
Per: Week
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At2Seconds0.513Database gather
2At3Seconds0.525Data transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes105020484096Does not include HTTP header

Sequence(s) for UCRA 4

UCRA 4 Sequence Diagram

Fetch Basic User Information

General Information
Use Case ID Number: UCRA 5
Subject Area: Remote Application Player Authenticated
Description: Fetch the basic user information based on app's authorization level.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.1Friends
4.1.2Achievements
Revision History
AuthorDateComment(s)
Andrew BowersOctober 20, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends GET request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends Get Request to the User URL with the user id, authorization token, and application token.
2OGS gathers the authorized information of the user for the requesting application.
3OGS returns the user's information in a JSON format to the requesting application8 (JSON Format for User Information)
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the requested user's information.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 20, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 500 Maximum: 10000 Average: 2000 (OR)Fixed:
Per: Week
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At2Seconds0.513Database gather
2At3Seconds0.525Data transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes105020484096Does not include HTTP header

Sequence(s) for UCRA 5

UCRA 5 Sequence Diagram

Fetch User Achievements

General Information
Use Case ID Number: UCRA 6
Subject Area: Remote Application Player Authenticated
Description: Get the details for all achievements earned by a specific player.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.2Achievements
Revision History
AuthorDateComment(s)
Andrew BowersOctober 20, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends GET request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends Get Request to the UserAchievements URL with the user id, authorization token, and application token.
2OGS gathers the user's achievements if the application is autherized.
3OGS returns the user's achievements in a JSON format to the requesting application9 (JSON Format for Achievements List)
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the requested user's achievements.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
AchievementContains the information associated with a single AchievementAchievementId, Name, Description, Points
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 20, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 500 Maximum: 10000 Average: 2000 (OR)Fixed:
Per: Week
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At2Seconds0.513Database gather
2At3Seconds0.525Data transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes1050409640960Does not include HTTP header

Sequence(s) for UCRA 6

UCRA 6 Sequence Diagram

Change User's Online Status

General Information
Use Case ID Number: UCRA 7
Subject Area: Remote Application Player Authenticated
Description: Alter a user's online status for the authorized app.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.1Friends
4.3.3System will report number of active users.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 23, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends POST request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends POST Request to the UserStatus URL with the authorization information and the user's status (Enter app, Leave app).
2OGS uses given information to update user's online status.
3OGS sends confirmation of change response to the requesting application.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the confirmation response.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 23, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 500 Maximum: 1000 Average: 750 (OR)Fixed:
Per: Day
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At2Seconds0.513Database write for status
2At3Seconds0.513Response transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes500600700Does not include HTTP header

Sequence(s) for UCRA 7

UCRA 7 Sequence Diagram

Award Achivement

General Information
Use Case ID Number: UCRA 8
Subject Area: Remote Application Player Authenticated
Description: Award an Achivement to a single user from authorized app.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.2Achievements
4.3Provide Games List.
4.3.2Games will have Achievements.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 23, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends POST request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends POST Request to the AwardAchievement URL for a user with the authorization information and the id for the achievement to award.
2OGS verifies application permissions for action.
3OGS awards achievement according to permission results.
4OGS sends confirmation of change response to the requesting application.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the confirmation response.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
AchievementContains the information associated with a single AchievementAchievementId, Name, Description, Points
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 23, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 0 Maximum: 200 Average: 5 (OR)Fixed:
Per: Week per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At3Seconds0.50.752Database write for achievement granting
2At4Seconds0.50.92Response transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes500600700Does not include HTTP header

Sequence(s) for UCRA 8

UCRA 8 Sequence Diagram

Store Information

General Information
Use Case ID Number: UCRA 9
Subject Area: Remote Application Player Authenticated
Description: Put information into a specific bucket.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2.2Time the user's lap and race speed.
2.2.1Remotely store a fastest time (high score) list.
2.2.2Allow user to choose which time to race against either one of their 'friends' or a global fastest time.
2.2.3Record the user's input or position so that a 'ghost' can be replicated for time based competitions against other players.
3Allow user to purchase 'upgrades' for the vehicle.
3.7Store car upgrades remotely for multiplayer
4Game Server
4.1User Profile
4.1.3Store best times per track.
4.4System will store information for any client application.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 23, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends POST request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends POST Request to the StoreInformation URL for a user with the authorization information and the id for the bucket to put it in.
2OGS verifies application permissions for action.
3OGS stores given information in the given bucket for the given user.
4OGS sends confirmation of change response to the requesting application.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the confirmation response.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
StorageBucketA bucket for storing information in.UserId, GameId, Information, BucketTypeId
BucketTypeA type of storage bucket.Name, BucketId
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 23, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1There may be a point where the database will be overloaded with information. This could be averted by storing the given information on disk with a reference to it in the DB.October 23, 2013Andrew BowersTBDTBD
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 0 Maximum: 200 Average: 5 (OR)Fixed:
Per: Day per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At3Seconds0.525Database write into bucket
2At4Seconds0.50.92Response transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes500600700Does not include HTTP header

Sequence(s) for UCRA 9

UCRA 9 Sequence Diagram

Retrieve Information

General Information
Use Case ID Number: UCRA 10
Subject Area: Remote Application Player Authenticated
Description: Get the information from a specific bucket.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2.2Time the user's lap and race speed.
2.2.1Remotely store a fastest time (high score) list.
2.2.2Allow user to choose which time to race against either one of their 'friends' or a global fastest time.
2.2.3Record the user's input or position so that a 'ghost' can be replicated for time based competitions against other players.
3Allow user to purchase 'upgrades' for the vehicle.
3.7Store car upgrades remotely for multiplayer
4Game Server
4.1User Profile
4.1.3Store best times per track.
4.4System will store information for any client application.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 23, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends GET request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends GET Request to the StoreInformation URL for a user with the authorization information and the id for the bucket.
2OGS verifies application permissions for action.
3OGS retrieves requested information from the given bucket for the given user.
4OGS returns requested information to the requesting application.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the confirmation response.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
StorageBucketA bucket for storing information in.UserId, GameId, Information, BucketTypeId
BucketTypeA type of storage bucket.Name, BucketId
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 23, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1There may be a point where the database will be overloaded with information. This could be averted by storing the given information on disk with a reference to it in the DB.October 23, 2013Andrew BowersTBDTBD
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 0 Maximum: 200 Average: 5 (OR)Fixed:
Per: Day per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At3Seconds0.525Database write into bucket
2At4Seconds0.50.92Response transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes500600700Does not include HTTP header

Sequence(s) for UCRA 10

UCRA 10 Sequence Diagram

List of Online Friends

General Information
Use Case ID Number: UCRA 11
Subject Area: Remote Application Player Authenticated
Description: Get the list of online friends of a specific user for a specific application.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2Allow for competition.
2.3Head to head racing between two players on seperate computers.
4Game Server
4.1User Profile
4.1.1Friends
4.2Matchmaking
4.2.1Connects two game clients in order to race head to head.
4.2.1.2Connect with Friend
4.3.3System will report number of active users.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends GET request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends Get Request to the OnlineFriends URL for a specific user.
2OGS gathers the information about all friends who are online in that application.
3OGS returns the information in a JSON format to the requesting application
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the requested list of friends.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1There may be a point where there are too many online friends for a specific user; thus causing a large amount of information to be returned over a potentially slow connection.October 29, 2013Andrew BowersTBDTBD
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 20 Maximum: 1000 Average: 100 (OR)Fixed:
Per: Week per User per Game
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At2Seconds0.513Database gather
2At3Seconds0.525Data transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes1024409620480Does not include HTTP header

Sequence(s) for UCRA 11

UCRA 11 Sequence Diagram

Request Matchmaking

General Information
Use Case ID Number: UCRA 12
Subject Area: Remote Application Player Authenticated
Description: Add user to matchmaking for the application.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2Allow for competition.
2.3Head to head racing between two players on seperate computers.
4Game Server
4.2Matchmaking
4.2.1Connects two game clients in order to race head to head.
4.2.1.1Connect with Random Player
4.2.1.2Connect with Friend
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Remote ApplicationSystemAn application that accesses the OIT Game Server.
Pre-Conditions
#Description
1OIT Game Server is listening for clients
Start Stimulus
Remote application sends POST request to OIT Game Server
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1Remote Application Sends POST Request to the RequestMatchmaking URL containing authentication information and type of matchmaking requested.
2OGS registers the user with matchmaking services according to information given.
3OGS returns a verification message to the requesting application.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Remote Application has the verification message.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Remote app uses HTML 1.1+October 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 2 Maximum: 1000 Average: 20 (OR)Fixed:
Per: Week per User per Game
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At2Seconds0.513Matchmaking registration
2At3Seconds0.513Result transmission
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes24200400Does not include HTTP header

Sequence(s) for UCRA 12

UCRA 12 Sequence Diagram

Log In

General Information
Use Case ID Number: OGSI 1
Subject Area: OIT Game Server Web Interface
Description: Allows a single user to log into the web interface.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4.6Authenticate/Login User.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Game CreatorPersonA 'Player' with elevated privilages that can add game information and achievements using the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the welcome page.
2User is not currently logged in.
Start Stimulus
User requests to login.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI displays the login credential entry page.
2User enters username.
3User enters password.
4User submits the credentials.
5OGSI authenticates the user against OGS records.
6OGSI displays the logged in version of the welcome page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Username unknownDisplay wrong usename message to user.
Password does not match recordsDisplay wrong password message to user.
Post-Conditions
#Description
1The user is viewing the logged in welcome page.
2The user is logged in.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 7 (OR)Fixed:
Per: Week per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At5Seconds0.524Verify user against OGS
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
15Bytes2004001024Does not include HTTP header

Sequence(s) for OGSI 1

OGSI 1 Sequence Diagram

Register Application

General Information
Use Case ID Number: OGSI 2
Subject Area: OIT Game Server Web Interface
Description: Allows Game Creator to register a new game with OGS.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.3Provide Games List.
4.3.1System will support multiple games.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Game CreatorPersonA 'Player' with elevated privilages that can add game information and achievements using the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the game administration page.
2User is logged in as a Game Creator.
Start Stimulus
User selects add application.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI displays the add application page.
2User enters Application Name.
3User enters achievements.
4User submits the application details.
5OGSI registers the application with OGS.
6OGSI displays the game administration page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Application name already exists.Display name already in use message to user.
Post-Conditions
#Description
1The user is viewing the game administration page.
2The application has been registered.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
GameContains the information associated with a single game.GameId, Name, Achievements, ReleaseDate
AchievementContains the information associated with a single AchievementAchievementId, Name, Description, Points
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 7 (OR)Fixed:
Per: Month
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At5Seconds0.525Register Game/Application
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
15Bytes200102410240Does not include HTTP header

Sequence(s) for OGSI 2

OGSI 2 Sequence Diagram

Add/Edit Game Achievements

General Information
Use Case ID Number: OGSI 3
Subject Area: OIT Game Server Web Interface
Description: Allows Game Creator to add and edit achievements for a game.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.3Provide Games List.
4.3.2Games will have Achievements.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
Game CreatorPersonA 'Player' with elevated privilages that can add game information and achievements using the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the game administration page.
2User is logged in as a Game Creator.
Start Stimulus
User selects edit on a game.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI displays the edit application page.
2User edits existing achievements.
3User enters new achievements.
4User submits the changes.
5OGSI updates the application record with OGS.
6OGSI displays the game administration page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The user is viewing the game administration page.
2The edits have been applied.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
GameContains the information associated with a single game.GameId, Name, Achievements, ReleaseDate
AchievementContains the information associated with a single AchievementAchievementId, Name, Description, Points
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1We need to administrate the ability of applications to create achievements so they do not make it too easy to earn player score by flooding their application/game with achievements. Suggested just to ban abusive Game Creator accounts (and keep the game information as is for the users who have already earned the achievements).October 24, 2013Andrew BowersTBDTBD
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 4 (OR)Fixed:
Per: Month
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At5Seconds0.525Update Game/Application
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
15Bytes200102410240Does not include HTTP header

Sequence(s) for OGSI 3

OGSI 3 Sequence Diagram

Approve Remote Application/Game

General Information
Use Case ID Number: OGSI 4
Subject Area: OIT Game Server Web Interface
Description: Allows a user to authorize access to their information for a specific application.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4Account Managment
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the welcome page.
2User is logged in as a Player.
Start Stimulus
User selects register application/game.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI displays the approve application page.
2User enters the approval key.
3OGSI retrieves approval details from OGS.
4OGSI displays approval details to user and asks for confirmation.
5User confirms the approval.
6OGSI sends approval confirmation to OGS.
7OGSI displays the approved applications page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Approval key unrecognizedDisplay unknown key message to user.
Approval key already usedDisplay old key message to user.
Post-Conditions
#Description
1The user is viewing the approved applications page.
2The authorization has been granted.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
GameContains the information associated with a single game.GameId, Name, Achievements, ReleaseDate
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 4 (OR)Fixed:
Per: Month per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At3Seconds0.513Retrieve approval details
2At6Seconds0.513Retrieve approval details
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
13Bytes2005001024Does not include HTTP headers
26Bytes2005001024Does not include HTTP headers

Sequence(s) for OGSI 4

OGSI 4 Sequence Diagram

View Approved Applications

General Information
Use Case ID Number: OGSI 5
Subject Area: OIT Game Server Web Interface
Description: Allows a user to view applications that have access to their info.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4Account Managment
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the welcome page.
2User is logged in as a Player.
Start Stimulus
User selects view profile.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI fetches game details from OGS for each approved application in the list of approved applications.
2OGSI displays the profile page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The user is viewing the approved applications page.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
GameContains the information associated with a single game.GameId, Name, Achievements, ReleaseDate
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 4 (OR)Fixed:
Per: Month per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At1Seconds0.513Retrieve game details
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
11Bytes2005001024Does not include HTTP headers

Sequence(s) for OGSI 5

OGSI 5 Sequence Diagram

Remove Approved Application

General Information
Use Case ID Number: OGSI 6
Subject Area: OIT Game Server Web Interface
Description: Allows a user to remove an application that has access to their info.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4Account Managment
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the welcome page.
2User is logged in as a Player.
Start Stimulus
User selects view profile.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI fetches game details from OGS for each approved application in the list of approved applications.
2OGSI displays the profile page.
3User selects remove application.
4OGSI warns user about data deletion.
5OGSI asks user for confirmation.
6User confirms remove request.
7OGSI deautherizes application access to the user's account in OGS.
8OGSI displays the profile page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The user is viewing the profile page.
2The authorization has been revoked.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
GameContains the information associated with a single game.GameId, Name, Achievements, ReleaseDate
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 2 (OR)Fixed:
Per: Month per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At1Seconds0.513Retrieve game details
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
11Bytes2005001024Does not include HTTP headers

Sequence(s) for OGSI 6

OGSI 6 Sequence Diagram

View Achievements

General Information
Use Case ID Number: OGSI 7
Subject Area: OIT Game Server Web Interface
Description: Allows a user to view all of the achievements they have earned.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.2Achievements
4.1.2.1First Race
4.1.2.2I Drive Bombs for Fun (Purchase the H-3 engine and complete one race.)
4.1.2.3Met Casper (Complete race against one ghost time.)
4.1.2.4That's it? (Complete a race on each of the default tracks at least once.)
4.1.2.5That's one sticky dime! (Purchase the Super Glue tires and complete a race without the H-3 engine.)
4.1.2.6Bank Vault (Complete race with Super Glue tires and Phantom Armor without the H-3 engine.)
4.3Provide Games List.
4.3.2Games will have Achievements.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the welcome page.
2User is logged in as a Player.
Start Stimulus
User selects view achievements.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI Fetches the list of achievements for the user.
2OGSI displays the achievements page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The user is viewing the achievements page.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
GameContains the information associated with a single game.GameId, Name, Achievements, ReleaseDate
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
AchievementContains the information associated with a single AchievementAchievementId, Name, Description, Points
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 4 (OR)Fixed:
Per: Week per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At1Seconds0.513Retrieve achievements
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
11Bytes200500010240Does not include HTTP headers

Sequence(s) for OGSI 7

OGSI 7 Sequence Diagram

View Games

General Information
Use Case ID Number: OGSI 8
Subject Area: OIT Game Server Web Interface
Description: Allows a user to view all of the games they have played.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.3Provide Games List.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the welcome page.
2User is logged in as a Player.
Start Stimulus
User selects view games.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI Fetches the list of games for the user.
2OGSI displays the games page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The user is viewing the games page.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
GameContains the information associated with a single game.GameId, Name, Achievements, ReleaseDate
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 4 (OR)Fixed:
Per: Week per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At1Seconds0.513Retrieve games
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
11Bytes200500010240Does not include HTTP headers

Sequence(s) for OGSI 8

OGSI 8 Sequence Diagram

Add Friend

General Information
Use Case ID Number: OGSI 9
Subject Area: OIT Game Server Web Interface
Description: Allows a user to add another user as a friend.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.1Friends
4.1.4Account Managment
4.1.4.2Add Friend
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the friends page.
2User is logged in as a Player.
Start Stimulus
User selects add friend.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI prompts user for the username to add as a friend.
2User enters username.
3User submits the username.
4OGSI determines if given user exists.
5OGSI adds requested user as friend in OGS.
6OGSI displays the friends page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Already friend.Display already added message to user.
User doesn't existDisplay no such user message to user.
Post-Conditions
#Description
1The user is viewing the friends page.
2The requested user has been added as a friend.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 4 (OR)Fixed:
Per: Month per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At4Seconds0.513Check for user
2At5Seconds0.513Update friendship
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
14Bytes1005122048Does not include HTTP headers
25Bytes20010242048Does not include HTTP headers

Sequence(s) for OGSI 9

OGSI 9 Sequence Diagram

Remove Friend

General Information
Use Case ID Number: OGSI 10
Subject Area: OIT Game Server Web Interface
Description: Allows a user to remove a friend.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.1Friends
4.1.4Account Managment
4.1.4.3Remove Friend
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the friends page.
2User is logged in as a Player.
Start Stimulus
User selects a friend to remove.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI removes requested friend in OGS.
2OGSI displays the friends page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The user is viewing the friends page.
2The requested friend has been removed.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 4 (OR)Fixed:
Per: Month per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At1Seconds0.513Remove friend request
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
14Bytes1005122048Does not include HTTP headers

Sequence(s) for OGSI 10

OGSI 10 Sequence Diagram

View Friends

General Information
Use Case ID Number: OGSI 11
Subject Area: OIT Game Server Web Interface
Description: Allows a user to view their friends.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.1Friends
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the welcome page.
2User is logged in as a Player.
Start Stimulus
User requests friends page.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI retrieves all friend information from OGS.
2OGSI displays the friends page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The user is viewing the friends page.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 20 Average: 2 (OR)Fixed:
Per: Week per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At1Seconds0.525Get friends request
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
14Bytes1000512020480Does not include HTTP headers

Sequence(s) for OGSI 11

OGSI 11 Sequence Diagram

Edit Profile

General Information
Use Case ID Number: OGSI 12
Subject Area: OIT Game Server Web Interface
Description: Allows a user to edit their profile information.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4Account Managment
4.1.4.4Change Email
4.1.4.5Change Password
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the welcome page.
2User is logged in as a Player.
Start Stimulus
User requests profile page.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI displays profile page.
2User enters new email address.
3User enters old password.
4User enters new password.
5User enters new password confirmation.
6User submits changes.
7OGSI updates email on OGS.
8OGSI verifies old password.
9OGSI checks that new password and confirmation match.
10OGSI updates user's password in OGS.
11OGSI displays updated profile page and success message.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Email in wrong format.Display wrong format message to user.
New password and confirmation do not match.Display mismatching passwords message to user.
Old password incorrect.Display wrong password message to user.
Post-Conditions
#Description
1The user is viewing the profile page.
2User's email has been updated.
3User's password has been updated.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 20 Average: 2 (OR)Fixed:
Per: Week per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At7Seconds0.513Update email
2At10Seconds0.513Update password
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
17Bytes502001024Does not include HTTP headers
210Bytes502001024Does not include HTTP headers

Sequence(s) for OGSI 12

OGSI 12 Sequence Diagram

Register Account

General Information
Use Case ID Number: OGSI 13
Subject Area: OIT Game Server Web Interface
Description: Allows for registering new user accounts.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4Account Managment
4.1.4.1Register
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the welcome page.
2User is not logged in.
Start Stimulus
User requests registration.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI displays registration page.
2User enters username.
3User enters email.
4User enters password.
5User enters password confirmation.
6User submits registration.
7OGSI updates email on OGS.
8OGSI checks that password and confirmation match.
9OGSI checks that no other Player has the same username.
10OGSI registers new Player.
11OGSI logs Player in.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Email in wrong format.Display wrong format message to user.
Password and confirmation do not match.Display mismatching passwords message to user.
User with username already exists.Display duplicate username message to user.
Post-Conditions
#Description
1The user is viewing the logged in welcome page.
2Player has been registered.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 2000 Average: 20 (OR)Fixed:
Per: Week
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At10Seconds0.513Register User
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
110Bytes502001024Does not include HTTP headers

Sequence(s) for OGSI 13

OGSI 13 Sequence Diagram

Reset Password

General Information
Use Case ID Number: OGSI 14
Subject Area: OIT Game Server Web Interface
Description: Allows user to reset their password.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4Account Managment
4.1.4.5Change Password
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the login page.
2User is not logged in.
Start Stimulus
User requests password reset.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI promts user for username.
2User enters username.
3User submits username.
4OGS Sends password reset token to user's email.
5OGSI displays pasword reset page.
6User enters reset token into reset page.
7User enters new password.
8User enters new password confirmation.
9User submits reset request.
10OGSI checks to make sure new passoword and confirmation are the same.
11OGSI checks token state.
12OGSI updates user's password in OGS.
13OGSI displays the login page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Token has already been used or has expired.Display expired token message to user.
Password and confirmation do not match.Display mismatching passwords message to user.
Post-Conditions
#Description
1The user is viewing the login page.
2User's password has been updated.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 50 Average: 2 (OR)Fixed:
Per: Year
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At12Seconds0.513Update password
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
112Bytes502001024Does not include HTTP headers

Sequence(s) for OGSI 14

OGSI 14 Sequence Diagram

Log Out

General Information
Use Case ID Number: OGSI 15
Subject Area: OIT Game Server Web Interface
Description: Allows a single user to log out of the web interface.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4.6Authenticate/Login User.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Game CreatorPersonA 'Player' with elevated privilages that can add game information and achievements using the OIT Game Server Web Interface.
Pre-Conditions
#Description
1User is currently logged in.
Start Stimulus
User requests to logout.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1OGSI logs the user out.
2OGSI displays the welcome page.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The user is viewing the welcome page.
2The user is logged out.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1User accessing OGSI with one of the latest two versions of Firefox, Chrome, or Internet ExplorerOctober 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 7 (OR)Fixed:
Per: Week per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1N/A
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
N/A

Sequence(s) for OGSI 15

OGSI 15 Sequence Diagram

Race

General Information
Use Case ID Number: TGF 1
Subject Area: Top Gear 5000
Description: A single race.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
1Simulate driving a futuristic vehichle.
1.1Detect collisions.
1.1.1Detect collisions between car and obsticles.
1.1.2Detect collisions between car and other cars.
1.2Simulate friction between tires and ground for each type of tire. (See requirement 3.3 for tire types.)
1.3Adjust the speed capability of the vehicle based on collision damage. The speed capability of the vehicle is calculated based on which engine is installed and what percentage of damage has been taken by the vehicle. Damage is calculated at collision time using how fast the vehicle was going and which set of armor was installed on the vehicle. (See requirement 3.6 for armor types.)
1.3.1Running over blue 'strip' in ground repairs collision damage.
1.4Allow the user to control the vehicle.
1.4.1Steer Left at varying degrees for a varying length of time similar to real steering.
1.4.2Steer Right at varying degrees for a varying length of time similar to real steering.
1.4.3Engage/Disengage 'gas' pedal with more precision than just on/off. Ex: The pedal could be depressed only half way or a third of the way instead of just fully on or off.
1.4.4Brake/Reverse
1.4.5Activate Weapon
1.4.5.1Weapon: Boost
1.4.5.2Weapon: Jump (should act like a physical jump was placed in front of the car)
1.4.5.3Weapon: Warp (auto drive without collisions for 1-2 seconds
1.4.5.4Weapon: Wall (activates a wall behind the car like a tron light cycle
1.4.5.5Weapon: Blue Shell (freezes first place vehicle for a set number of seconds and chains to nearby cars if they drive too close)
1.4.5.6Weapon: Ice patch (reduces friction on section of road)
1.5Require vehicle to have fuel in order to accelerate.
1.5.1Running over red 'strip' in ground refills fuel.
1.6Allow car to teleport using 'warp' pads that are placed on the track.
2Allow for competition.
2.2Time the user's lap and race speed.
2.2.1Remotely store a fastest time (high score) list.
2.2.3Record the user's input or position so that a 'ghost' can be replicated for time based competitions against other players.
2.2.3.1'Ghosts' can't be collided with during replay.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
Campaign RaceTGF 22
Free RaceTGF 63
Time TrialTGF 74
Race Against FriendTGF 84
Matchmaking RaceTGF 93
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1Game is starting a race.
Start Stimulus
Player selects race type.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF loads map.
2TGF connects to other players and AI
3TGF updates screen
4TGF begins race countdown
5TGF updates screen
6TGF releases control of vehicle to player
7TGF starts race
8TGF updates screen
9Player presses input
10TGF gathers input
11TGF records player input
12TGF handles input (subtract fuel, update velocity, change vehicle direction, etc.)
13TGF updates object positions
14TGF handles collisions (including recharge, repair, car on car, next lap, weapon reload, etc.)
15TGF updates lap timer
16TGF updates race rank
17TGF updates race timer
18TGF updates screen
19TGF determines if race is over.
20Go to step 9 if race is not over yet.
21TGF displays results screen.
22TGF uploads results to OGS.
23TGF stores results locally.
24Player closes results screen.
25TGF displays the main menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Player drives into 'the void'.Reset vehicle to last checkpoint.
Post-Conditions
#Description
1The Player is viewing the main menu.
2The results have been stored locally.
3The results have been stored remotely.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
RaceCarA racing car.Postition, Color, Driver, Engine, Armor, Boost, Weapons, LapTimer
RaceTrackA race track.Vehicles, Objects, Terrain, RaceTimer
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Player is running Windows 7 or Windows 8.1October 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 3 Maximum: 200 Average: 50 (OR)Fixed:
Per: Month Per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1Between9 to 18Seconds0.01666660.02222220.0333333Refresh rate for screen
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
N/A

Sequence(s) for TGF 1

TGF 1 Top Half of Sequence Diagram

TGF 1 Bottom Half of Sequence Diagram

Campaign Race

General Information
Use Case ID Number: TGF 2
Subject Area: Top Gear 5000
Description: A campaign race.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2Allow for competition.
2.1Single player 'campaign' with races of 1 player and 19 AI racers.
2.4Provide 5 tracks to drive on. (Daytime unless otherwise specified.)
2.4.1Shape: Oval, Theme: Evergreen Forest
2.4.2Shape: Figure 8, Theme: Ice Planet
2.4.3Shape: L, Theme: Night Drive - Desert Hills
2.4.4Shape: M, Theme: Desert Ruins - Teleportation
2.4.5Shape: Double Figure 8, Theme: Obsidian Hills
3Allow user to purchase 'upgrades' for the vehicle.
3.1Purchases are made using a purely virtual currency earned by racing.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1Game is displaying main menu.
Start Stimulus
Player selects campaign race
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF selects next map in campaign.
2TGF initializes AI.
3TGF starts race.TGF 1 Race
4Award currency according to rank.
5TGF prompts user with upgrade sequence.TGF 5 Upgrade Vehicle
6TGF asks player whether to start next race.
7Player responds yes or no.
8If player says yes go to step 1.
9TGF displays main menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Player is viewing the main menu.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
RaceCarA racing car.Postition, Color, Driver, Engine, Armor, Boost, Weapons, LapTimer
RaceTrackA race track.Vehicles, Objects, Terrain, RaceTimer
AiRacerComputer PlayerSkillLevel, Vehicle, MapPaths
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Player is running Windows 7 or Windows 8.1October 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 3 Maximum: 200 Average: 50 (OR)Fixed:
Per: Month Per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1N/A
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
N/A

Sequence(s) for TGF 2

TGF 2 Sequence Diagram

Log In

General Information
Use Case ID Number: TGF 3
Subject Area: Top Gear 5000
Description: Allows a single user to log into the game.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4.6Authenticate/Login User.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1System is displaying the main menu.
2User is not currently logged in.
Start Stimulus
User requests to login.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF displays the login credential entry page.
2User enters username.
3User enters password.
4User submits the credentials.
5TGF authenticates the user against OGS records.
6TGF displays the logged in version of the main menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Username unknownDisplay wrong usename message to user.
Password does not match recordsDisplay wrong password message to user.
Post-Conditions
#Description
1The user is viewing the logged in main menu.
2The user is logged in.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1N/A
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 20 Average: 5 (OR)Fixed:
Per: Week per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At5Seconds0.524Verify user against OGS
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
15Bytes2004001024Does not include HTTP header

Sequence(s) for TGF 3

TGF 3 Sequence Diagram

Log Out

General Information
Use Case ID Number: TGF 4
Subject Area: Top Gear 5000
Description: Allows a single user to log out of the game.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
4Game Server
4.1User Profile
4.1.4.6Authenticate/Login User.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1User is currently logged in.
Start Stimulus
User requests to logout.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF logs the user out.
2TGF displays the main menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The user is viewing the main menu.
2The user is logged out.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1N/A
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 200 Average: 7 (OR)Fixed:
Per: Week per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1N/A
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
N/A

Sequence(s) for TGF 4

TGF 4 Sequence Diagram

Upgrade Vehicle

General Information
Use Case ID Number: TGF 5
Subject Area: Top Gear 5000
Description: Allows player to upgrade their vehicle.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
3Allow user to purchase 'upgrades' for the vehicle.
3.1Purchases are made using a purely virtual currency earned by racing.
3.24 Engines (affect acceleration and top speed) Worst to Best:
3.2.1Engine: Gazelle
3.2.2Engine: Antelope
3.2.3Engine: Greyhound
3.2.4Engine: H-3 Tritium (Requires fuel to accelerate, but not to maintain momentum.)
3.34 Tires (affect tire friction) Worst to Best:
3.3.1Tire: Glue Stick
3.3.2Tire: White Paste
3.3.3Tire: Rubber Cement
3.3.4Tire: Super Glue
3.4Paint Car a specific Color
3.4.1Color: Red
3.4.2Color: Blue
3.4.3Color: Black
3.4.4Color: Green
3.4.5Color: Yellow
3.4.6Color: White
3.54 Boosts Worst to Best:
3.5.1Cheetah
3.5.2Puma
3.5.3Jaguar
3.5.4Panther
3.64 Armor options (affects damage from collisions) Worst to Best:
3.6.1Armor: Medieval
3.6.2Armor: Air Bag
3.6.3Armor: Super Man
3.6.4Armor: Phantom
3.7Store car upgrades remotely for multiplayer
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
Campaign RaceTGF 24
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1Player has defined amount of money.
Start Stimulus
Player selects upgrade vehicle.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF displays upgrade vehicle screen.
2Player purchases upgrades.
3Player changes vehicle color.
4Player selects vehicle components.
5Player submits changes.
6TGF saves purchases and vehicle state locally.
7TGF saves purchases and vehicle state remotely.
8TGF displays previous menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The purchases and upgrades have been saved locally.
2The purchases and upgrades have been saved remotely.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
RaceCarA racing car.Postition, Color, Driver, Engine, Armor, Boost, Weapons, LapTimer
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1N/A
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 5 Maximum: 200 Average: 20 (OR)Fixed:
Per: Month Per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1N/A
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
N/A

Sequence(s) for TGF 5

TGF 5 Top Half of Sequence Diagram

TGF 5 Bottom Half of Sequence Diagram

Free Race

General Information
Use Case ID Number: TGF 6
Subject Area: Top Gear 5000
Description: A free race against AI.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2Allow for competition.
2.1Single player 'campaign' with races of 1 player and 19 AI racers.
2.4Provide 5 tracks to drive on. (Daytime unless otherwise specified.)
2.4.1Shape: Oval, Theme: Evergreen Forest
2.4.2Shape: Figure 8, Theme: Ice Planet
2.4.3Shape: L, Theme: Night Drive - Desert Hills
2.4.4Shape: M, Theme: Desert Ruins - Teleportation
2.4.5Shape: Double Figure 8, Theme: Obsidian Hills
3Allow user to purchase 'upgrades' for the vehicle.
3.1Purchases are made using a purely virtual currency earned by racing.
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1Game is displaying main menu.
Start Stimulus
Player selects free race
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF displays list of tracks.
2Player selects track.
3TGF initializes AI.
4TGF starts race.TGF 1 Race
5TGF awards currency according to rank.
6TGF displays main menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Player is viewing the main menu.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
RaceCarA racing car.Postition, Color, Driver, Engine, Armor, Boost, Weapons, LapTimer
RaceTrackA race track.Vehicles, Objects, Terrain, RaceTimer
AiRacerComputer PlayerSkillLevel, Vehicle, MapPaths
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Player is running Windows 7 or Windows 8.1October 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 3 Maximum: 200 Average: 30 (OR)Fixed:
Per: Month Per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1N/A
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
N/A

Sequence(s) for TGF 6

TGF 6 Sequence Diagram

Time Trial

General Information
Use Case ID Number: TGF 7
Subject Area: Top Gear 5000
Description: A free race without AI.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2Allow for competition.
2.2Time the user's lap and race speed.
2.2.2Allow user to choose which time to race against either one of their 'friends' or a global fastest time.
2.2.3Record the user's input or position so that a 'ghost' can be replicated for time based competitions against other players.
2.2.3.1'Ghosts' can't be collided with during replay.
2.4Provide 5 tracks to drive on. (Daytime unless otherwise specified.)
2.4.1Shape: Oval, Theme: Evergreen Forest
2.4.2Shape: Figure 8, Theme: Ice Planet
2.4.3Shape: L, Theme: Night Drive - Desert Hills
2.4.4Shape: M, Theme: Desert Ruins - Teleportation
2.4.5Shape: Double Figure 8, Theme: Obsidian Hills
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1Game is displaying main menu.
Start Stimulus
Player selects time trial race
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF displays list of tracks.
2Player selects track.
3TGF displays list of available ghost times.
4Player choses ghost to race against.
5TGF starts race.TGF 1 Race
6TGF displays main menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Player is viewing the main menu.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
RaceCarA racing car.Postition, Color, Driver, Engine, Armor, Boost, Weapons, LapTimer
RaceTrackA race track.Vehicles, Objects, Terrain, RaceTimer
GhostRacerRecorded Human PlayerPath, Times, Player, Vehicle
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Player is running Windows 7 or Windows 8.1October 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 3 Maximum: 200 Average: 30 (OR)Fixed:
Per: Month Per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1N/A
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
N/A

Sequence(s) for TGF 7

TGF 7 Sequence Diagram

Race Against Friend

General Information
Use Case ID Number: TGF 8
Subject Area: Top Gear 5000
Description: A race against a friend.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2Allow for competition.
2.2Time the user's lap and race speed.
2.2.3Record the user's input or position so that a 'ghost' can be replicated for time based competitions against other players.
2.3Head to head racing between two players on seperate computers.
2.4Provide 5 tracks to drive on. (Daytime unless otherwise specified.)
2.4.1Shape: Oval, Theme: Evergreen Forest
2.4.2Shape: Figure 8, Theme: Ice Planet
2.4.3Shape: L, Theme: Night Drive - Desert Hills
2.4.4Shape: M, Theme: Desert Ruins - Teleportation
2.4.5Shape: Double Figure 8, Theme: Obsidian Hills
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1Game is displaying online friends list.
Start Stimulus
Player selects online friend to race.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF sends race challenge to friend.
2Friend responds to challenge.
3TGF displays list of tracks.
4Player selects track to race on.
5TGF starts race.TGF 1 Race
6TGF displays main menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
Friend refuses challenge.Display challenge refused message to user.
Post-Conditions
#Description
1The Player is viewing the main menu.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
RaceCarA racing car.Postition, Color, Driver, Engine, Armor, Boost, Weapons, LapTimer
RaceTrackA race track.Vehicles, Objects, Terrain, RaceTimer
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Player is running Windows 7 or Windows 8.1October 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 3 Maximum: 200 Average: 30 (OR)Fixed:
Per: Month Per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1N/A
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
N/A

Sequence(s) for TGF 8

TGF 8 Sequence Diagram

Matchmaking Race

General Information
Use Case ID Number: TGF 9
Subject Area: Top Gear 5000
Description: A race against a random online opponent.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2Allow for competition.
2.2Time the user's lap and race speed.
2.2.3Record the user's input or position so that a 'ghost' can be replicated for time based competitions against other players.
2.3Head to head racing between two players on seperate computers.
2.4Provide 5 tracks to drive on. (Daytime unless otherwise specified.)
2.4.1Shape: Oval, Theme: Evergreen Forest
2.4.2Shape: Figure 8, Theme: Ice Planet
2.4.3Shape: L, Theme: Night Drive - Desert Hills
2.4.4Shape: M, Theme: Desert Ruins - Teleportation
2.4.5Shape: Double Figure 8, Theme: Obsidian Hills
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1Game is displaying main menu.
Start Stimulus
Player selects matchmaking race.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF registers player for matchmaking.
2TGF gets match.
3TGF selects random track.
4TGF starts race.TGF 1 Race
5TGF displays main menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Player is viewing the main menu.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
RaceCarA racing car.Postition, Color, Driver, Engine, Armor, Boost, Weapons, LapTimer
RaceTrackA race track.Vehicles, Objects, Terrain, RaceTimer
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1Player is running Windows 7 or Windows 8.1October 24, 2013Andrew BowersTBDTBD
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 3 Maximum: 200 Average: 30 (OR)Fixed:
Per: Month Per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1N/A
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
N/A

Sequence(s) for TGF 9

TGF 9 Sequence Diagram

View Online Friends

General Information
Use Case ID Number: TGF 10
Subject Area: Top Gear 5000
Description: Show the list of online friends for a user.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
2Allow for competition.
2.3Head to head racing between two players on seperate computers.
4.1.1Friends
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1Game is displaying main menu.
Start Stimulus
Player selects view online friends.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF gathers online friends from OGS.
2TGF displays list of online friends.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Player is viewing the list of online friends.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
UserContains the information assocatied with a single UserUserId, Password, Username, Games, Achievements, Score, Friends, Status, Buckets
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1N/A
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 3 Maximum: 200 Average: 30 (OR)Fixed:
Per: Month Per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1At1Seconds0.513API gather
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
11Bytes10242048040960Does not include HTTP header

Sequence(s) for TGF 10

TGF 10 Sequence Diagram

Adjust Gameplay Settings

General Information
Use Case ID Number: TGF 11
Subject Area: Top Gear 5000
Description: Adjust the gameplay settings. Such as V-Sync, Brightness, Control Sensitivity, Keymap, etc.
Responsible Analyst: Andrew Bowers
Requirements/Feature Trace
REQ #Requirements Name and/or Short Description
1Simulate driving a futuristic vehichle.
1.7Allow adjustment of gameplay settings.
1.7.1Turn V-Sync on/off
1.7.2Adjust Brightness
1.7.3Adjust Control Sensitivity
1.7.4Change Keymap
Revision History
AuthorDateComment(s)
Andrew BowersOctober 24, 2013First Draft
Insertion Points in other Use Cases
Use Case NameUse Case NumberStep Inserted After
N/A
Actors
Actor NamePerson/SystemBrief Description
PlayerPersonA standard user for the OIT Game Server Web Interface.
Pre-Conditions
#Description
1Game is displaying main menu.
Start Stimulus
Player selects adjust gameplay settings.
Use Case Main Course Steps
NumberDescriptionAdds/Alt Name/NumberBus Rule #
1TGF displays settings page.
2Player changes settings.
3Player submits changes.
4TGF saves changes.
5TGF displays main menu.
Exception Conditions
Exception SituationsAction(s) on ExceptionAdds/Alt UC #
N/A
Post-Conditions
#Description
1The Player is viewing the main menu.
2The setting changes were saved locally.
Candidate Objects
Class/Object NameDescriptionPossible Attributes
SettingsThe settings for TGF.VSync, Brightness, ControlSensitivity, Keymap
Assumptions
#AssumptionDate RaisedRaised ByDate VerifiedVerified By
1N/A
Issues
#IssueDate RaisedRaised ByDate VerifiedVerified By
1N/A
Other Comments
AuthorCommentDate
N/A
Frequency of Execution
Frequency: Minimum: 1 Maximum: 50 Average: 30 (OR)Fixed:
Per: Year per User
Timing Information
#At/BetweenStep(s)Timing UnitMinimumAverageMaximumComments
1N/A
Volume Information
#Step #Unit of MeasureMinimumAverageMaximumComments
14Bytes102420484096Settings save file.

Sequence(s) for TGF 11

TGF 11 Sequence Diagram

Alternate Courses

N/A

CRUD Matrix

CRUD Matrix
ObjectsUCRA 1UCRA 2UCRA 3UCRA 4UCRA 5UCRA 6UCRA 7UCRA 8UCRA 9UCRA 10UCRA 11UCRA 12OGSI 1OGSI 2OGSI 3OGSI 4OGSI 5OGSI 6OGSI 7OGSI 8OGSI 9OGSI 10OGSI 11OGSI 12OGSI 13OGSI 14OGSI 15TGF 1TGF 2TGF 3TGF 4TGF 5TGF 6TGF 7TGF 8TGF 9TGF 10TGF 11
ApiControllerrurururururururururururu
AccountControllerrurururururururu
HomeControllerrururururu
Routerrururururururururururururururururururururururururururu
FromDbcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrud
Achievementcrudcrudcrudcrudcrud
Applicationcrudcrudcrudcrudcrudcrudcrud
Gamecrudcrudcrudcrudcrudcrudcrudcrudcrudcrudcrud
Bucketcrudcrud
Playercrudcrudcrudcrudcrudcrudcrud
GameCreatorcrudcrudcrudcrudcrudcrudcrud
ApiManagercrudcrudcrudcrudcrudcrud
TopGearFiveKrururururururururururu
Mapcrudcrudcrudcrudcrud
Itemcrud
Padcrud
Teleportercrud
RepairPadcrud
RefillPadcrud
WeaponReloadcrud
WeaponRemnantscrud
Racercrud
AIcrud
Ghostcrud
RemotePlayercrud
Settingscrudcrud
KeyMapcrudcrud
Vehiclecrud
TireSetcrud
Skincrud
Armorcrud
FuelTankcrud
Enginecrud
Weaponcrud
BlueShellcrud
Jumpcrud
IcePatchcrud
Warpcrud
Wallcrud
Boostcrud

Low Fidelity UI

Top Gear 5000

PDF of Menus

OIT Game Server

PDF of UI

Glossary

TermDefinition
HTTPSThe encrypted version of the HTTP (HyperText Transfer Protocol) used to access websites and other information on the internet.
PCPersonal Computer, In the case of this project the term only refers to laptops and desktops that run versions of Windows, Linux, or Mac OS.
REST APIRepresentational State Transfer, An API built using the principles of REST. REST is a way for data to be transmitted in specific formats using the standard HTTP methods.
HDDHard Disk Drive, The long term 'slow' storage mechanism for data in PCs. HDD does not lose its state when the power is turned off.
RAMRandom Access Memory, Acts as the short term 'fast' storage mechanism for data in PCs. RAM is volatile memory and will lose its state when the power is turned off.
CATChange Administration Team
OGSThe OIT Game Server
OGSIThe OIT Game Server Web Interface
TGFThe Top Gear 5000 Game

Use Case Appendicies

Business Rules

1 - List of basic game information

Title, Description, Id

2 - JSON Format for All Games list

{games: [{"id": aoeu-sth45-aoeu247,"title": "Title","description": "Descripiton"}]}

3 - JSON Format for Achievements List

{achievements: [{"id": aoeu-sth45-aoeu247,"title": "Title","description": "Descripiton", "Points": 30}]}

4 - JSON Format for User Count

{onlineUsers: 300}

5 - JSON Format for User Credentials

{"userName": "andrew.bowers", "password": "Password"}

6 - JSON Format for Authentication result

{"status": 200, "playerId": "aoeu-sth45-aoeu247" }

7 - Stored Credential Hash Algorithm

Use SHA-256

8 - JSON Format for User Information

{"userName": "andrew.bowers", "email": "andrew.bowers@agamecoder.com"}

9 - JSON Format for Achievements List

{achievements: [{"id": aoeu-sth45-aoeu247,"title": "Title","description": "Descripiton", "Points": 30}]}

Top Gear 5000 Object Model

Software Release: 0.1

Document Version: 1.1.1386192965

December 4, 2013

Responsible Analyst: Andrew Bowers

Email:

Signature Page

This Document Accepted By:


Signature (Calvin Caldwell)Date


This Document Submitted Accepted By:


Signature (Andrew Bowers)Date

Revision History

AuthorCompanyVersionDateFile NameComments
Andrew BowersA Game Coder1.0November 14, 2013http://agamecoder.com/topgear5000/documentationObject Model First Draft
Andrew BowersA Game Coder1.1December 4, 2013http://agamecoder.com/topgear5000/documentationUpdated models with extended classes.

Class Diagrams

System Overview

Shared OIT Game Server Executive Overview

OIT Game Server Interface Executive Overview

OIT Game Server Executive Overview

Top Gear 5000 Executive Overview (Left)

Top Gear 5000 Executive Overview (Right)

Shared OIT Game Server Detailed

OIT Game Server Interface Detailed

OIT Game Server Detailed

Top Gear 5000 Detailed

Vehicle Elements Detailed

Racers Detailed

Map Items Detailed

API Manager Detailed

Weapons Detailed

Class Specifications

ApiController

Class Information
Class Name: ApiController
Abstract Type: N/AInheritance Type: N/APersistance: No
Tracability Information
Use Case IDUse Case NameSteps
UCRA 1Fetch List of All Games1
UCRA 2Fetch List of Achievements for a Game1
UCRA 3Fetch Number of Online Players1
UCRA 4Autherize User1
UCRA 5Fetch Basic User Information1
UCRA 6Fetch User Achievements1
UCRA 7Change User's Online Status1
UCRA 8Award Achivement1
UCRA 9Store Information1
UCRA 10Retrieve Information1
UCRA 11List of Online Friends1
UCRA 12Request Matchmaking1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
ApiControllerConstructor()
AuthorizeUserCheck a Player's credentials.(JSON) : ActionResultPlayer::Player
Player::Authorized
AwardAchievementAward an achievement to a user.(JSON) : ActionResultPlayer::Player
Player::UpdateDb
The achievement award will be stored in the DB.
ChangeUserOnlineStatusSet Player to be online in specific game/app.(JSON) : ActionResultPlayer::Player
Player::UpdateDb
User online status will be changed in the DB.
FetchBasicUserInformationGet basic Player details.(JSON) : ActionResultPlayer::Player
FetchOnlinePlayersGet count of all online players.() : ActionResult
FetchUserAchievementsGet all achievements for a specific Player.(String, JSON) : ActionResultPlayer::Player
GetAchievementsGet all achievements for a specified Game.(String) : ActionResultGame::Game
GetAllGamesGet list of all games in OGS.() : ActionResultGame::Game
IndexDisplay API documentation.() : ActionResult
ListOnlineFriendsGet a list of all friends for a specific Player that are also online in a specific Game.(String, JSON) : ActionResult
RequestMatchmakingAdd Player to the matchmaking queue for a specific Game.(JSON) : ActionResultPlayer will have been added to the machmaking server.
RetrieveInformationGet a single Bucket's information.(JSON) : ActionResultBucket::Bucket
Bucket::ReadContent
StoreInformationStore a single Bucket's information.(JSON) : ActionResultBucket::Bucket
Bucket::StoreContent
The bucket will either be updated or created in the DB.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
N/A
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
UnauthorizedAn unauthorized operation was attempted by a remote application.Refuse to complete operation and return unauthorized warning to application.
Instance Information
MinimumMaximumMeanFixed
1
General Comments
AuthorDateComment
N/A

AccountController

Class Information
Class Name: AccountController
Abstract Type: N/AInheritance Type: N/APersistance: No
Tracability Information
Use Case IDUse Case NameSteps
OGSI 1Log In1
OGSI 4Approve Remote Application/Game1
OGSI 5View Approved Applications1
OGSI 6Remove Approved Application1
OGSI 12Edit Profile1
OGSI 13Register Account1
OGSI 14Reset Password1
OGSI 15Log Out1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
AccountControllerConstructor()
LogInDisplay LogIn page.() : ActionResult
LogInAuthenticate a Player.(FormCol) : ActionResultPlayer::Player
Player::Authorized
The Player must not be logged in yet.
The Player is logged in to OGSI.
ApproveApplicationDisplay the approve application confirmation page.(String) : ActionResult
ApproveApplicationProcess the approve application confirmation page.(FormCol) : ActionResultThe application request for access will either be marked as approved or denied in the DB.
LogOutSet Player to be online in specific game/app.() : ActionResultThe Player must be logged in.
The Player is no longer logged in to OGSI.
ManageAccountAllow Player to manage their account.() : ActionResultPlayer::Player
The Player must be logged in.
ManageAccountUpdate Player information in the Db.(FormCol) : ActionResultPlayer::Player
Player::UpdateDb
The Player must be logged in.
The Player must be on the ManageAccount page.
The Player's information will be updated in the Db.
RegisterDisplay the account registration page.() : ActionResultThe Player is not already logged in.
RegisterRegister new Player in the Db.(FormCol) : ActionResultPlayer::Player
Player::CreateDb
The Player is not already logged in.
The selected UserName does not yet exist in the Db.
The Player is registered.
ResetPasswordDisplay the reset password page.() : ActionResultPlayer::Player
Player::GenerateToken
The Player is not logged in.
ResetPasswordReset the Player's password.(FormCol) : ActionResultPlayer::Player
Player::ResetPass
The Player is not logged in.
A token email has been sent to the Player.
The Player's password is updated in the Db.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
N/A
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
1
General Comments
AuthorDateComment
N/A

HomeController

Class Information
Class Name: HomeController
Abstract Type: N/AInheritance Type: N/APersistance: No
Tracability Information
Use Case IDUse Case NameSteps
OGSI 7View Achievements1
OGSI 8View Games1
OGSI 9Add Friend1
OGSI 10Remove Friend1
OGSI 11View Friends1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
HomeControllerConstructor()
AchievementsDisplay Achievements list page.() : ActionResultPlayer::Player
Achievement::Achievement
Player is LoggedIn.
FriendsDisplay Friends list page.() : ActionResultPlayer::FriendsByPlayer
Player::Player
Player is LoggedIn.
GamesDisplay Games list page.() : ActionResultPlayer::Player
Game::Game
Player is LoggedIn.
FriendsDisplay Friends list page.() : ActionResultGame::Game
Game::UpdateDb
Player is LoggedIn.
The Player has friends.
AddFriendDisplay the AddFriend page.() : ActionResultThe Player must be logged in.
AddFriendAdds a Friend to the Player in the Db.(FormCol) : ActionResultPlayer::Player
Player::UpdateDb
The Player must be logged in.
The new Friend link has been added to the Db.
ConfirmRemoveFriendDisplay the ConfirmRemoveFriend page.() : ActionResultThe Player must be logged in.
ConfirmRemoveFriendRemoves a Friend from the Player in the Db.(FormCol) : ActionResultPlayer::Player
Player::UpdateDb
The Player must be logged in.
The Friend link has been removed from the Db.
ConfirmRemoveFriendRemoves a Friend from the Player in the Db.(FormCol) : ActionResultPlayer::Player
Player::UpdateDb
The Player must be logged in.
The Friend link has been removed from the Db.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
N/A
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
1
General Comments
AuthorDateComment
N/A

Router

Class Information
Class Name: Router
Abstract Type: N/AInheritance Type: N/APersistance: No
Tracability Information
Use Case IDUse Case NameSteps
UCRA 1Fetch List of All Games1
UCRA 2Fetch List of Achievements for a Game1
UCRA 3Fetch Number of Online Players1
UCRA 4Autherize User1
UCRA 5Fetch Basic User Information1
UCRA 6Fetch User Achievements1
UCRA 7Change User's Online Status1
UCRA 8Award Achivement1
UCRA 9Store Information1
UCRA 10Retrieve Information1
UCRA 11List of Online Friends1
UCRA 12Request Matchmaking1
OGSI 1Log In1
OGSI 2Register Application1
OGSI 3Add/Edit Game Achievements1
OGSI 4Approve Remote Application/Game1
OGSI 5View Approved Applications1
OGSI 6Remove Approved Application1
OGSI 7View Achievements1
OGSI 8View Games1
OGSI 9Add Friend1
OGSI 10Remove Friend1
OGSI 11View Friends1
OGSI 12Edit Profile1
OGSI 13Register Account1
OGSI 14Reset Password1
OGSI 15Log Out1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
RouterConstructor()
RouteRoute the request to the appropriate method.(String, String, String) : ActionResultApiController::ANY
AccountController::ANY
GameController::ANY
HomeController::ANY
Server is running.
Requester has requested page.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
mAccountAccountControllerYesInstancePrivateA single AccountController to route to.
mApiApiControllerYesInstancePrivateA single ApiController to route to.
mGameGameControllerYesInstancePrivateA single GameController to route to.
mHomeHomeControllerYesInstancePrivateA single HomeController to route to.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
1
General Comments
AuthorDateComment
N/A

FromDb

Class Information
Class Name: FromDb
Abstract Type: VirtualInheritance Type: RootPersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
UCRA 1Fetch List of All Games2
UCRA 2Fetch List of Achievements for a Game2
UCRA 3Fetch Number of Online Players2
UCRA 4Autherize User2
UCRA 5Fetch Basic User Information2
UCRA 6Fetch User Achievements2
UCRA 7Change User's Online Status2
UCRA 8Award Achivement2 3
UCRA 9Store Information2 3
UCRA 10Retrieve Information2 3
UCRA 11List of Online Friends2
UCRA 12Request Matchmaking2
OGSI 1Log In5
OGSI 2Register Application5
OGSI 3Add/Edit Game Achievements1 5
OGSI 4Approve Remote Application/Game3 6
OGSI 5View Approved Applications1
OGSI 6Remove Approved Application1 7
OGSI 7View Achievements1
OGSI 8View Games1
OGSI 9Add Friend4 5
OGSI 10Remove Friend1
OGSI 11View Friends1
OGSI 12Edit Profile1 7 10
OGSI 13Register Account10
OGSI 14Reset Password4 11 12
OGSI 15Log Out1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
FromDbConstructor()
CreateDbInsert new item into the Db.() : voidAttributes are filled in.
New item will be in the Db.
DeleteDbRemove item from the Db.() : voidItem exists in the Db.
Item no longer exists in the Db.
UpdateDbUpdate item in the Db.() : voidItem exists in the Db.
Item has updated information in the Db.
IdGetter for mId.() : StringItem was successfully constructed from DB.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
RetrieveFromDb() : voidRetrieves item information from the Db.Item exists in Db.
Attributes of current item are filled in from Db info.
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
mFromDbboolNoInstanceProtectedWas the current object loaded from the Db.
mIdStringYesInstanceProtectedThe Db ID for the current item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
1102420
General Comments
AuthorDateComment
N/A

Achievement

Class Information
Class Name: Achievement
Abstract Type: N/AInheritance Type: LeafPersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
UCRA 2Fetch List of Achievements for a Game2
UCRA 6Fetch User Achievements2
UCRA 8Award Achivement3
OGSI 3Add/Edit Game Achievements1 5
OGSI 7View Achievements1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
AchievementConstructor(String)
AchievementConstructor()
AchievementsByPlayerRetrieve all achievements by player id.(String) : List<Achievement>List of player achievements will be returned.
CreateDbInsert new item into the Db.() : voidAttributes are filled in.
New item will be in the Db.
DeleteDbRemove item from the Db.() : voidItem exists in the Db.
Item no longer exists in the Db.
UpdateDbUpdate item in the Db.() : voidItem exists in the Db.
Item has updated information in the Db.
IdGetter for mId.() : StringItem was successfully constructed from DB.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
RetrieveFromDb() : voidRetrieves item information from the Db.Item exists in Db.
Attributes of current item are filled in from Db info.
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
DescriptionStringYesInstancePublicThe Achievement's Description.
PointsintNoInstancePublicHow many points the Achievement is worth.
TitleStringYesInstancePublicThe Achievement's Title.
mFromDbboolNoInstanceProtectedWas the current object loaded from the Db.
mIdStringYesInstanceProtectedThe Db ID for the current item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
1102420
General Comments
AuthorDateComment
N/A

Application

Class Information
Class Name: Application
Abstract Type: N/AInheritance Type: MiddlePersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
UCRA 9Store Information2
UCRA 10Retrieve Information2
OGSI 2Register Application5
OGSI 4Approve Remote Application/Game3 6
OGSI 5View Approved Applications1
OGSI 6Remove Approved Application1 7
OGSI 8View Games1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
ApplicationConstructor(String)
FetchKeyGet the application's key.() : StringApplication was constructed from the DB.
The key will have been fetched.
PermissionsForPlayerGet the level of permissions this Application has to specified user.(String) : StringApplication was successfully constructed from DB.
Permissions for the specified player will be returned.
RemoveAuthorizationStrips an application of its permissions to access a specific player's information.(String) : voidApplication was successfully constructed from DB.
Application will no longer have permissions to access that player's information.
CreateDbInsert new item into the Db.() : voidAttributes are filled in.
New item will be in the Db.
DeleteDbRemove item from the Db.() : voidItem exists in the Db.
Item no longer exists in the Db.
UpdateDbUpdate item in the Db.() : voidItem exists in the Db.
Item has updated information in the Db.
IdGetter for mId.() : StringItem was successfully constructed from DB.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
Application()Constructor
RetrieveFromDb() : voidRetrieves item information from the Db.Item exists in Db.
Attributes of current item are filled in from Db info.
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
DescriptionStringYesInstancePublicThe Application's Description.
TitleStringYesInstancePublicThe Application's Title.
mFromDbboolNoInstanceProtectedWas the current object loaded from the Db.
mIdStringYesInstanceProtectedThe Db ID for the current item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
110010
General Comments
AuthorDateComment
N/A

Game

Class Information
Class Name: Game
Abstract Type: N/AInheritance Type: LeafPersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
UCRA 1Fetch List of All Games2
UCRA 2Fetch List of Achievements for a Game2
UCRA 8Award Achivement2
UCRA 9Store Information2
UCRA 10Retrieve Information2
OGSI 2Register Application5
OGSI 3Add/Edit Game Achievements1 5
OGSI 4Approve Remote Application/Game3 6
OGSI 5View Approved Applications1
OGSI 6Remove Approved Application1 7
OGSI 8View Games1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
GameConstructor(String)
GetAllGamesFetch all games (basic info only) from the database.(): List<Game>Db has games in it.
FetchKeyGet the application's key.() : StringApplication was constructed from the DB.
The key will have been fetched.
PermissionsForPlayerGet the level of permissions this Application has to specified user.(String) : StringApplication was successfully constructed from DB.
Permissions for the specified player will be returned.
RemoveAuthorizationStrips an application of its permissions to access a specific player's information.(String) : voidApplication was successfully constructed from DB.
Application will no longer have permissions to access that player's information.
CreateDbInsert new item into the Db.() : voidAttributes are filled in.
New item will be in the Db.
DeleteDbRemove item from the Db.() : voidItem exists in the Db.
Item no longer exists in the Db.
UpdateDbUpdate item in the Db.() : voidItem exists in the Db.
Item has updated information in the Db.
IdGetter for mId.() : StringItem was successfully constructed from DB.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
RetrieveFromDb() : voidRetrieves item information from the Db.Item exists in Db.
Attributes of current item are filled in from Db info.
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
AchievementsList<Achievement>YesInstancePublicThe Game's Achievements.
DescriptionStringYesInstancePublicThe Application's Description.
TitleStringYesInstancePublicThe Application's Title.
mFromDbboolNoInstanceProtectedWas the current object loaded from the Db.
mIdStringYesInstanceProtectedThe Db ID for the current item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
110010
General Comments
AuthorDateComment
N/A

Bucket

Class Information
Class Name: Bucket
Abstract Type: N/AInheritance Type: LeafPersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
UCRA 9Store Information3
UCRA 10Retrieve Information3
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
BucketConstructor(String)
BucketConstructor()
ReadContentRead the bucket contents from disk.() : String
StoreContentWrite the bucket contents to disk.(String) : void
CreateDbInsert new item into the Db.() : voidAttributes are filled in.
New item will be in the Db.
DeleteDbRemove item from the Db.() : voidItem exists in the Db.
Item no longer exists in the Db.
UpdateDbUpdate item in the Db.() : voidItem exists in the Db.
Item has updated information in the Db.
IdGetter for mId.() : StringItem was successfully constructed from DB.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
RetrieveFromDb() : voidRetrieves item information from the Db.Item exists in Db.
Attributes of current item are filled in from Db info.
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
DiskPathStringYesInstancePublicThe path to the bucket contents on Disk.
mContentStringYesInstancePrivateThe last content read or written.
mFromDbboolNoInstanceProtectedWas the current object loaded from the Db.
mIdStringYesInstanceProtectedThe Db ID for the current item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
110010
General Comments
AuthorDateComment
N/A

Player

Class Information
Class Name: Player
Abstract Type: N/AInheritance Type: MiddlePersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
UCRA 4Autherize User2
UCRA 5Fetch Basic User Information2
UCRA 6Fetch User Achievements2
UCRA 7Change User's Online Status2
UCRA 8Award Achivement2 3
UCRA 11List of Online Friends2
UCRA 12Request Matchmaking2
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
PlayerConstructor(String)
AuthorizedChecks the password against the stored value.(String) : boolPlayer is loaded from Db.
FriendsByPlayerGet the Player's friend list.(String) : List<Player>
PlayerByUserNameGets the player by UserName instead of id.(String) : Player
GetNumOnlinePlayersGets the number of players currently in online mode.() : int
GenerateTokenGenerate a password reset token for the Player.() : StringPlayer is loaded from Db.
ResetPassSets password using reset token and given password.(String, String) : voidA token has been generated for the Player.
The password will be changed in the Db to the new value.
AddFriendAdds another friend for the Player.(String) : voidThe Friends list is initialized.
There will be one more Player on the Friends list.
ApprovePermissionsGrants the specified application requested permissions to this Player.(String) : voidPermissions have been requested.
Player has been successfully constructed.
The approved permissions will be recorded in the Db.
ChallengeRegisters a challenge from this player to the specified player.(Player) : voidPlayers are friends.
The challenge will have been registered on the matchmaking server.
GamesReturns the list of games that the user has played.(String) : voidThe Achievements list has elements.
RegisterMatchmakingRegisters this Player on the specified Matchmaking server.(String) : voidPlayer is online.
Player is in queue waiting to get in a game.
RemoveFriendRemoves the specified friend from this Player's friend list.(String) : voidThe 'Friend' Player was in this Player's Friend List.
The Player will be removed from the list and the change recorded in the Db.
CreateDbInsert new item into the Db.() : voidAttributes are filled in.
New item will be in the Db.
DeleteDbRemove item from the Db.() : voidItem exists in the Db.
Item no longer exists in the Db.
UpdateDbUpdate item in the Db.() : voidItem exists in the Db.
Item has updated information in the Db.
IdGetter for mId.() : StringItem was successfully constructed from DB.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
Player()Constructor
RetrieveFromDb() : voidRetrieves item information from the Db.Item exists in Db.
Attributes of current item are filled in from Db info.
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
AchievementsList<Achievement>YesInstancePublicAll earned Achievements for the Player.
EmailStringYesInstancePublicThe Player's email address.
FriendsList<Player>YesInstancePublicThe Player's friends.
OnlineGameYesInstancePublicThe Player's current Game or null if offline.
UserNameStringYesInstancePublicThe Player's User Name.
mFromDbboolNoInstanceProtectedWas the current object loaded from the Db.
mIdStringYesInstanceProtectedThe Db ID for the current item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
11024100
General Comments
AuthorDateComment
N/A

GameCreator

Class Information
Class Name: GameCreator
Abstract Type: N/AInheritance Type: LeafPersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
UCRA 4Autherize User2
UCRA 5Fetch Basic User Information2
UCRA 6Fetch User Achievements2
UCRA 7Change User's Online Status2
UCRA 8Award Achivement2 3
UCRA 11List of Online Friends2
UCRA 12Request Matchmaking2
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
GameCreatorConstructor(String)
CanEditGameReturns true if the GameCreator can edit the specified game.(String) : boolGame creator was successfully populated from the Db.
AuthorizedChecks the password against the stored value.(String) : boolPlayer is loaded from Db.
GenerateTokenGenerate a password reset token for the Player.() : StringPlayer is loaded from Db.
ResetPassSets password using reset token and given password.(String, String) : voidA token has been generated for the Player.
The password will be changed in the Db to the new value.
AddFriendAdds another friend for the Player.(String) : voidThe Friends list is initialized.
There will be one more Player on the Friends list.
ApprovePermissionsGrants the specified application requested permissions to this Player.(String) : voidPermissions have been requested.
Player has been successfully constructed.
The approved permissions will be recorded in the Db.
ChallengeRegisters a challenge from this player to the specified player.(Player) : voidPlayers are friends.
The challenge will have been registered on the matchmaking server.
GamesReturns the list of games that the user has played.(String) : voidThe Achievements list has elements.
RegisterMatchmakingRegisters this Player on the specified Matchmaking server.(String) : voidPlayer is online.
Player is in queue waiting to get in a game.
RemoveFriendRemoves the specified friend from this Player's friend list.(String) : voidThe 'Friend' Player was in this Player's Friend List.
The Player will be removed from the list and the change recorded in the Db.
CreateDbInsert new item into the Db.() : voidAttributes are filled in.
New item will be in the Db.
DeleteDbRemove item from the Db.() : voidItem exists in the Db.
Item no longer exists in the Db.
UpdateDbUpdate item in the Db.() : voidItem exists in the Db.
Item has updated information in the Db.
IdGetter for mId.() : StringItem was successfully constructed from DB.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
RetrieveFromDb() : voidRetrieves item information from the Db.Item exists in Db.
Attributes of current item are filled in from Db info.
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
OwnedGamesList<Game>YesInstancePublicThe Games this GameCreator owns#.
AchievementsList<Achievement>YesInstancePublicAll earned Achievements for the Player.
EmailStringYesInstancePublicThe Player's email address.
FriendsList<Player>YesInstancePublicThe Player's friends.
OnlineGameYesInstancePublicThe Player's current Game or null if offline.
UserNameStringYesInstancePublicThe Player's User Name.
mFromDbboolNoInstanceProtectedWas the current object loaded from the Db.
mIdStringYesInstanceProtectedThe Db ID for the current item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
112810
General Comments
AuthorDateComment
N/A

ApiManager

Class Information
Class Name: ApiManager
Abstract Type: N/AInheritance Type: N/APersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race22
TGF 3Log In5
TGF 4Log Out1
TGF 5Upgrade Vehicle7
TGF 9Matchmaking Race1
TGF 10View Online Friends1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
AwardAchievementAwards the specified achievement to the specified Player.(String, String, String, String) : voidApiController::AwardAchievement
GetAchievementsGet All Achievements for the given Game.(String, String) : List<Achievement>ApiController::GetAchievements
GetBucketsGet All Buckets for the given Game and Player.(String, String, String) : List<Bucket>ApiController::RetrieveInformation
GetPlayerInfoGet information for the specified Player.(String, String, String) : PlayerApiController::FetchUserAchievements
ApiController::FetchBasicUserInformation
ApiController::ListOnlineFriends
PublishBucketSend a Bucket of information to OGS.(String, String, String, Bucket) : voidApiController::StoreInformation
AuthenticateUserDetermine if given credentials are legitimate.(String, String) : boolApiController::AuthorizeUser
RegisterMatchmakingRegister the given player in the matchmaking system.(Player) : voidApiController::RequestMatchmaking
Player will be registered in the matchmaking system.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
N/A
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
1
General Comments
AuthorDateComment
N/A

TopGearFiveK

Class Information
Class Name: TopGearFiveK
Abstract Type: N/AInheritance Type: N/APersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1
TGF 2Campaign Race1
TGF 3Log In1
TGF 4Log Out1
TGF 5Upgrade Vehicle1
TGF 6Free Race1
TGF 7Time Trial1
TGF 8Race Against Friend1
TGF 9Matchmaking Race1
TGF 10View Online Friends1
TGF 11Adjust Gameplay Settings1
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
TopGearFiveKConstructor()
AdjustSettingsDisplay the Adjustable Settings.() : void
AdjustSettingsProces the Adjustable Settings.(Settings) : void
CampaignRaceStart a campaign race.() : void
DisplayMainMenuDisplay the main menu.() : void
DisplayResultsDisplay the Race results.(int, Vehicle, List<Racer>) : void
DrawToScreenDraw the given Map's contents to the screen in 3D.(Map) : void
FreeRaceStart a Free Race.() : void
LogInDisplay the login screen.() : void
LogInProcess the given login information.(String, String) : void
LogOutLog the user out.() : void
MatchmakingRaceStart a matchmaking race.() : void
RaceManage a single race.() : void
RaceAgainstFriendStart a head to head race against a friend.() : void
SelectFriendDisplay the select friend view.() : void
SelectFriendProcess selected friend.(Player) : voidRace will be started against given friend.
TimeTrialStart a time trial race.() : void
UpgradeVehicleShow the upgrade vehicle interface.() : void
UpgradeVehicleProcess the upgraded vehicle.(Vehicle) : voidStore locally and remotely the new upgrades.
ViewFriendsDisplay the Player's friends.() : void
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
mSettingsSettingsYesInstancePrivateTGF Settings for gameplay and performance.
mMapsList<Map>YesInstancePrivateThe available maps for TGF.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
1
General Comments
AuthorDateComment
N/A

Map

Class Information
Class Name: Map
Abstract Type: N/AInheritance Type: N/APersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 13 14
TGF 2Campaign Race1
TGF 6Free Race1
TGF 7Time Trial1
TGF 8Race Against Friend3
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
MapConstructor()
GetAllMapsGets all of the available maps.() : List<Map>
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
DescriptionStringYesInstancePublicThe Map description.
ItemsList<Item>YesInstancePublicThe items that exist in this Map.
NameStringYesInstancePublicThe name of this Map.
RacersList<Racer>YesInstancePublicThe racers that are driving on this Map.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
151
General Comments
AuthorDateComment
N/A

Item

Class Information
Class Name: Item
Abstract Type: VirtualInheritance Type: RootPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
CollideHandles what happens when a vehicle collides with this Item.(Vehicle) : voidItem existence and state along with the vehicle state will be altered.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
Item()Constructor
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
XdoubleNoInstancePublicThe X Coordinate for the Item.
YdoubleNoInstancePublicThe Y Coordinate for the Item.
ZdoubleNoInstancePublicThe Z Coordinate for the Item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
110010
General Comments
AuthorDateComment
N/A

Pad

Class Information
Class Name: Pad
Abstract Type: VirtualInheritance Type: MiddlePersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
CollideHandles what happens when a vehicle collides with this Item.(Vehicle) : voidItem existence and state along with the vehicle state will be altered.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
Pad()Constructor
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
LengthdoubleNoInstancePublicThe Length for the Pad.
WidthdoubleNoInstancePublicThe Width for the Pad.
ThicknessdoubleNoInstancePublicThe Thickness for the Pad.
XdoubleNoInstancePublicThe X Coordinate for the Item.
YdoubleNoInstancePublicThe Y Coordinate for the Item.
ZdoubleNoInstancePublicThe Z Coordinate for the Item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
2205
General Comments
AuthorDateComment
N/A

Teleporter

Class Information
Class Name: Teleporter
Abstract Type: N/AInheritance Type: LeafPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
TeleporterConstructor()
CollideHandles what happens when a vehicle collides with this Item.(Vehicle) : voidItem existence and state along with the vehicle state will be altered.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
LengthdoubleNoInstancePublicThe Length for the Pad.
WidthdoubleNoInstancePublicThe Width for the Pad.
ThicknessdoubleNoInstancePublicThe Thickness for the Pad.
XdoubleNoInstancePublicThe X Coordinate for the Item.
YdoubleNoInstancePublicThe Y Coordinate for the Item.
ZdoubleNoInstancePublicThe Z Coordinate for the Item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
131
General Comments
AuthorDateComment
N/A

RepairPad

Class Information
Class Name: RepairPad
Abstract Type: N/AInheritance Type: LeafPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
RepairPadConstructor()
CollideHandles what happens when a vehicle collides with this Item.(Vehicle) : voidItem existence and state along with the vehicle state will be altered.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
LengthdoubleNoInstancePublicThe Length for the Pad.
WidthdoubleNoInstancePublicThe Width for the Pad.
ThicknessdoubleNoInstancePublicThe Thickness for the Pad.
XdoubleNoInstancePublicThe X Coordinate for the Item.
YdoubleNoInstancePublicThe Y Coordinate for the Item.
ZdoubleNoInstancePublicThe Z Coordinate for the Item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
132
General Comments
AuthorDateComment
N/A

RefillPad

Class Information
Class Name: RefillPad
Abstract Type: N/AInheritance Type: LeafPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
RefillPadConstructor()
CollideHandles what happens when a vehicle collides with this Item.(Vehicle) : voidItem existence and state along with the vehicle state will be altered.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
LengthdoubleNoInstancePublicThe Length for the Pad.
WidthdoubleNoInstancePublicThe Width for the Pad.
ThicknessdoubleNoInstancePublicThe Thickness for the Pad.
XdoubleNoInstancePublicThe X Coordinate for the Item.
YdoubleNoInstancePublicThe Y Coordinate for the Item.
ZdoubleNoInstancePublicThe Z Coordinate for the Item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
132
General Comments
AuthorDateComment
N/A

WeaponReload

Class Information
Class Name: WeaponReload
Abstract Type: VirtualInheritance Type: MiddlePersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
WeaponReloadConstructor()
CollideHandles what happens when a vehicle collides with this Item.(Vehicle) : voidItem existence and state along with the vehicle state will be altered.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
XdoubleNoInstancePublicThe X Coordinate for the Item.
YdoubleNoInstancePublicThe Y Coordinate for the Item.
ZdoubleNoInstancePublicThe Z Coordinate for the Item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
152
General Comments
AuthorDateComment
N/A

WeaponRemnants

Class Information
Class Name: WeaponRemnants
Abstract Type: VirtualInheritance Type: MiddlePersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
WeaponRemnantsConstructor()
CollideHandles what happens when a vehicle collides with this Item.(Vehicle) : voidItem existence and state along with the vehicle state will be altered.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
XdoubleNoInstancePublicThe X Coordinate for the Item.
YdoubleNoInstancePublicThe Y Coordinate for the Item.
ZdoubleNoInstancePublicThe Z Coordinate for the Item.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
152
General Comments
AuthorDateComment
N/A

Racer

Class Information
Class Name: Racer
Abstract Type: N/AInheritance Type: RootPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race2 12
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
PollInputGet the Racer's input.() : String
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
Racer()Constructor
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
VehicleVehicleYesInstancePublicThe racer's Vehicle.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
12019
General Comments
AuthorDateComment
N/A

AI

Class Information
Class Name: AI
Abstract Type: N/AInheritance Type: LeafPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race2 12
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
AIConstructor(int)
PollInputGet the Racer's input.() : String
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
mDifficultyintNoInstancePrivateThe AI's difficulty setting.
VehicleVehicleYesInstancePublicThe racer's Vehicle.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
12019
General Comments
AuthorDateComment
N/A

Ghost

Class Information
Class Name: Ghost
Abstract Type: N/AInheritance Type: LeafPersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race2 12
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
GhostConstructor()
GhostConstructor(String)
AddInputAdds the input to Inputs.(String) : voidInputs list is initialized.
Inputs list will contain the given input.
SaveSaves the ghost to disk.() : voidThe ghost information was written to the disk.
PollInputGet the Racer's input.() : String
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
ReadFromStorage() : voidReads the ghost recording from storage.Ghost will be populated with the information from the file.
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
FileLocStringYesInstancePublicThe location of the Ghost on disk.
InputsList<String>YesInstancePublicThe series of inputs for this Ghost recording.
PlayerPlayerYesInstancePublicThe Player that recorded this Ghost.
VehicleVehicleYesInstancePublicThe racer's Vehicle.
Concurrency
Threading IssueDescription
Reads the ghost recording from storage.
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
011
General Comments
AuthorDateComment
N/A

RemotePlayer

Class Information
Class Name: RemotePlayer
Abstract Type: N/AInheritance Type: LeafPersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race2 12
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
RemotePlayerConstructor()
RemotePlayerConstructor(String)
ConnectConnects to the remote player in order to enable input gathering.() : voidConnection has been made to the remote player's input systems so that PollInput will work.
PollInputGet the Racer's input.() : String
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
ConnectionStringYesInstancePublicThe connection identifier.
PlayerPlayerYesInstancePublicThe Player connected as the RemotePlayer.
VehicleVehicleYesInstancePublicThe racer's Vehicle.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
011
General Comments
AuthorDateComment
N/A

Settings

Class Information
Class Name: Settings
Abstract Type: N/AInheritance Type: N/APersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race5
TGF 11Adjust Gameplay Settings4
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
SettingsConstructor()
SaveToFileSaves settings to given file.(String) : voidSettings content will have been written to the given file.
ReadFromFileRead settings from file.(String) : voidSettings will be populated with the information read from the given file.
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
AntiAliasingboolNoInstancePublicIs anti-aliasing turned on or not.
BrightnessintNoInstancePublicThe Brightness level.
KeysKeyMapYesInstancePublicThe keyboard mapping for the controls.
LeftJoystickSensitivityintNoInstancePublicThe Left Joystick Sensitivity.
RightJoystickSensitivityintNoInstancePublicThe Right Joystick Sensitivity.
MouseSensitivityintNoInstancePublicThe Mouse Sensitivity.
VSyncOnboolNoInstancePublicIs V-Sync On.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
111
General Comments
AuthorDateComment
N/A

KeyMap

Class Information
Class Name: KeyMap
Abstract Type: N/AInheritance Type: N/APersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race5
TGF 11Adjust Gameplay Settings4
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
KeyMapConstructor()
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
AccelratecharNoInstancePublicThe button for acceleration.
Activate WeaponcharNoInstancePublicThe button to activate the current weapon.
BrakeReversecharNoInstancePublicThe button for brake/reverse.
FullAccelratecharNoInstancePublicThe button for full acceleration.
LeftcharNoInstancePublicThe button for turning left.
LeftHardcharNoInstancePublicThe button for turning left hard.
RightcharNoInstancePublicThe button for turning right.
RightHardcharNoInstancePublicThe button for turning right hard.
WeaponPrevcharNoInstancePublicThe button for previous weapon.
WeaponNextcharNoInstancePublicThe button for next weapon.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
111
General Comments
AuthorDateComment
N/A

Vehicle

Class Information
Class Name: Vehicle
Abstract Type: N/AInheritance Type: N/APersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
VehicleConstructor()
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
ArmorArmorYesInstancePublicThe vehicle's armor.
BoostBoostYesInstancePublicThe vehicle's boost.
EngineEngineYesInstancePublicThe vehicle's engine.
SkinSkinYesInstancePublicThe vehicle's skin/color.
TiresTireSetYesInstancePublicThe vehicle's tires.
WeaponsList<Weapon>YesInstancePublicThe vehicle's weapons.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
12019
General Comments
AuthorDateComment
N/A

TireSet

Class Information
Class Name: TireSet
Abstract Type: N/AInheritance Type: N/APersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
TireSetConstructor(String, int)
StickynessGetter for stickyness.() : int
GetAllTireSetsGets a list of all TireSets.() : List<TireSet>
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
mStickynessintNoInstancePrivateThe sticky factor for the tires.
NameStringYesInstancePublicThe TireSet's name.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
153
General Comments
AuthorDateComment
N/A

Skin

Class Information
Class Name: Skin
Abstract Type: N/AInheritance Type: N/APersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
SkinConstructor(String, String)
GetAllSkinsGets a list of all Skins.() : List<Skin>
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
ColorStringYesInstancePublicThe color for the skin.
NameStringYesInstancePublicThe Skin's name.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
151
General Comments
AuthorDateComment
N/A

Armor

Class Information
Class Name: Armor
Abstract Type: N/AInheritance Type: N/APersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
ArmorConstructor(int, int)
GetAllArmorsGets a list of all Armors.() : List<Armor>
RepairAdds Hp to the Armor.(int) : voidmCurHp is less than MaxHp.
mCurHp will be increased by the given amount up to the MaxHp.
TakeDamageRemoves Hp from the Armor.(int) : voidmCurHp is above 0.
mCurHp will be reduced by the given amount down to 0 at the minimum.
PercentageGetter for the percentage of Hp left.(int) : void
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
MaxHpintNoInstancePublicThe maximum hp for this armor.
mCurHpintNoInstancePrivateThe current hp for this armor.
NameStringYesInstancePublicThe Aromor's name.
ReductionFactorintNoInstancePublicThe factor by which damage is reduced by this Armor.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
151
General Comments
AuthorDateComment
N/A

FuelTank

Class Information
Class Name: FuelTank
Abstract Type: N/AInheritance Type: N/APersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
FuelTankConstructor(int)
RefuelAdds Fuel to the Tank.(int) : voidmCurrent is less than mMax.
mCurrent will be increased by the given amount up to mMax.
ConsumeRemoves Fuel from the Tank.(int) : voidmCurrent is greater than 0.
mCurrent will be reduced by the given amount down to at minimum 0.
PercentageGetter for the percentage of Fuel left.(int) : void
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
mMaxintNoInstanceprivateThe maximum Fuel for this tank.
mCurrentintNoInstancePrivateThe current Fuel for this tank.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
151
General Comments
AuthorDateComment
N/A

Engine

Class Information
Class Name: Engine
Abstract Type: N/AInheritance Type: N/APersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
EngineConstructor(String, FuelTank)
AccelerateCalculates acceleration based on Engine type and fuel level.(int) : int
GetAllEnginesReturns a list of engines.() : List<Engine>
CurrentSpeedGetter for the vehicle current speed.() : double
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
MaxSpeedintNoInstancePublicThe maximum Speed for this Engine.
mCurrentSpeedintNoInstancePrivateThe current speed.
RequiresFuelToAccelerateboolNoInstancePublicDoes the engine require fuel to accelerate.
RequiresFuelToMaintainboolNoInstancePublicDoes the engine require fuel to maintain speed.
TankFuelTankYesInstancePublicThe fuel tank for this engine
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
151
General Comments
AuthorDateComment
N/A

Weapon

Class Information
Class Name: Weapon
Abstract Type: VirtualInheritance Type: RootPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
ActivateActivates the weapon on the specified vehicle.(Vehicle) : voidmMaxUses and mUsesRemaining must be greater than 0.
Vehicle will be updated with weapon's effects.
mUsesRemaining will be decreased by 1.
ReloadAdds count to weapon.(int) : voidIncreases mUsesRemaining by the given amount up to mMaxUses.
UsesRemainingGetter for the number of uses remaining.() : int
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
Weapon()Constructor
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
DescriptionStringYesInstancePublicThe description for the weapon.
NameStringYesInstancePublicThe name for the weapon.
mMaxUsesintNoInstanceProtectedCount of the maximum uses for the weapon.
mUsesRemainingintNoInstanceProtectedNumber of uses remaining in the weapon.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
163
General Comments
AuthorDateComment
N/A

BlueShell

Class Information
Class Name: BlueShell
Abstract Type: N/AInheritance Type: LeafPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
BlueShellConstructor()
ActivateActivates the weapon on the specified vehicle.(Vehicle) : voidmMaxUses and mUsesRemaining must be greater than 0.
Vehicle will be updated with weapon's effects.
mUsesRemaining will be decreased by 1.
ReloadAdds count to weapon.(int) : voidIncreases mUsesRemaining by the given amount up to mMaxUses.
UsesRemainingGetter for the number of uses remaining.() : int
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
DescriptionStringYesInstancePublicThe description for the weapon.
NameStringYesInstancePublicThe name for the weapon.
mMaxUsesintNoInstanceProtectedCount of the maximum uses for the weapon.
mUsesRemainingintNoInstanceProtectedNumber of uses remaining in the weapon.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
011
General Comments
AuthorDateComment
N/A

Jump

Class Information
Class Name: Jump
Abstract Type: N/AInheritance Type: LeafPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
JumpConstructor()
ActivateActivates the weapon on the specified vehicle.(Vehicle) : voidmMaxUses and mUsesRemaining must be greater than 0.
Vehicle will be updated with weapon's effects.
mUsesRemaining will be decreased by 1.
ReloadAdds count to weapon.(int) : voidIncreases mUsesRemaining by the given amount up to mMaxUses.
UsesRemainingGetter for the number of uses remaining.() : int
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
DescriptionStringYesInstancePublicThe description for the weapon.
NameStringYesInstancePublicThe name for the weapon.
mMaxUsesintNoInstanceProtectedCount of the maximum uses for the weapon.
mUsesRemainingintNoInstanceProtectedNumber of uses remaining in the weapon.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
011
General Comments
AuthorDateComment
N/A

IcePatch

Class Information
Class Name: IcePatch
Abstract Type: N/AInheritance Type: LeafPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
IcePatchConstructor()
ActivateActivates the weapon on the specified vehicle.(Vehicle) : voidmMaxUses and mUsesRemaining must be greater than 0.
Vehicle will be updated with weapon's effects.
mUsesRemaining will be decreased by 1.
ReloadAdds count to weapon.(int) : voidIncreases mUsesRemaining by the given amount up to mMaxUses.
UsesRemainingGetter for the number of uses remaining.() : int
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
DescriptionStringYesInstancePublicThe description for the weapon.
NameStringYesInstancePublicThe name for the weapon.
mMaxUsesintNoInstanceProtectedCount of the maximum uses for the weapon.
mUsesRemainingintNoInstanceProtectedNumber of uses remaining in the weapon.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
011
General Comments
AuthorDateComment
N/A

Warp

Class Information
Class Name: Warp
Abstract Type: N/AInheritance Type: LeafPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
WarpConstructor()
ActivateActivates the weapon on the specified vehicle.(Vehicle) : voidmMaxUses and mUsesRemaining must be greater than 0.
Vehicle will be updated with weapon's effects.
mUsesRemaining will be decreased by 1.
ReloadAdds count to weapon.(int) : voidIncreases mUsesRemaining by the given amount up to mMaxUses.
UsesRemainingGetter for the number of uses remaining.() : int
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
GenerateInput() : List<String>Generates a sequence of autodrive inputs.The inputs will allow driving around obsticles on the course.
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
DescriptionStringYesInstancePublicThe description for the weapon.
NameStringYesInstancePublicThe name for the weapon.
mMaxUsesintNoInstanceProtectedCount of the maximum uses for the weapon.
mUsesRemainingintNoInstanceProtectedNumber of uses remaining in the weapon.
Concurrency
Threading IssueDescription
Generates a sequence of autodrive inputs.
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
011
General Comments
AuthorDateComment
N/A

Wall

Class Information
Class Name: Wall
Abstract Type: N/AInheritance Type: LeafPersistance: No
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
WallConstructor(int)
ActivateActivates the weapon on the specified vehicle.(Vehicle) : voidmMaxUses and mUsesRemaining must be greater than 0.
Vehicle will be updated with weapon's effects.
mUsesRemaining will be decreased by 1.
ReloadAdds count to weapon.(int) : voidIncreases mUsesRemaining by the given amount up to mMaxUses.
UsesRemainingGetter for the number of uses remaining.() : int
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
mDurationintNoInstancePrivateHow long the wall will exist when deployed.
DescriptionStringYesInstancePublicThe description for the weapon.
NameStringYesInstancePublicThe name for the weapon.
mMaxUsesintNoInstanceProtectedCount of the maximum uses for the weapon.
mUsesRemainingintNoInstanceProtectedNumber of uses remaining in the weapon.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
011
General Comments
AuthorDateComment
N/A

Boost

Class Information
Class Name: Boost
Abstract Type: N/AInheritance Type: LeafPersistance: Yes
Tracability Information
Use Case IDUse Case NameSteps
TGF 1Race1 12 13 14
Methods with 'green' backgrounds are static.
Public Methods
NameDescriptionSignatureCollaborating
Class::Methods
PreconditionsPostcondititons
BoostConstructor(int)
CalculateSpeedIncreaseCalculates a speed increase for the specified vehicle.(Vehicle) : double
GetAllBoostsGets a list of all possible boosts.() : List<Boost>
ActivateActivates the weapon on the specified vehicle.(Vehicle) : voidmMaxUses and mUsesRemaining must be greater than 0.
Vehicle will be updated with weapon's effects.
mUsesRemaining will be decreased by 1.
ReloadAdds count to weapon.(int) : voidIncreases mUsesRemaining by the given amount up to mMaxUses.
UsesRemainingGetter for the number of uses remaining.() : int
Protected Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Private Methods
NameSignatureDescriptionPreconditionsPostcondititons
N/A
Attributes
NameTypeObjectInstance/ClassVisibilityDescription
mFactorintNoInstancePrivateThe boost factor to apply.
DescriptionStringYesInstancePublicThe description for the weapon.
NameStringYesInstancePublicThe name for the weapon.
mMaxUsesintNoInstanceProtectedCount of the maximum uses for the weapon.
mUsesRemainingintNoInstanceProtectedNumber of uses remaining in the weapon.
Concurrency
Threading IssueDescription
N/A
Major Exceptions
NameTriggerAction
N/A
Instance Information
MinimumMaximumMeanFixed
011
General Comments
AuthorDateComment
N/A