Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian...

69
Ragade’s Cube

Transcript of Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian...

Page 1: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Ragade’s Cube

Page 2: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Inception

Project Management

Page 3: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Team Organization

• Analyst

• Designer • Librarian

• Tester • Programmer

• Used ego-less approach

Page 4: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Team Organization

• Modified ego-less approach

Analysts

Designer/Librarian/ProgrammerTester

Page 5: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Inception

• Client centered requirements– Gamers– Customers who would buy this product

Page 6: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Choosing Client

• We are not looking at one customer• We are looking at a group of potential

customers and catering our requirement for them

• Leaning towards the population that interested in puzzle games in a competitive environment

Page 7: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Client Requirements

• The client is where the game is played• Communicates with the server and allows

networked multiplayer games• The following slides detail the client’s

requirements

Page 8: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Sound Requirements

• Plays sound for particular actions that occur during game process

• Background music will play through out the game

Page 9: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Input Requirements

• Client will expose an abstract input system capable of collecting input from different input devices

• These include– Mouse– Keyboard– XBox 360 Controller– And misc devices

Page 10: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

GUI Requirements

• Shall provide game menus that allows the user to begin game play and select options

• GUI provides the cursor to select controls• Highlight selected row or column of cube on

display• Will be able to display up to 4 cubes in split

screen• Display statistics for each person on screen

Page 11: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Game Logic Requirements

• Should interpret input events and carry out actions accordingly

• Control flow of the game is done by managing states

M ain M enu

N etw ork G am e SelectionG am e C reation

G am eplay

Jo in G am e

Paused

M ain O ption Screen

C reate G am e

N etw ork P layer Accum ula tion

N etw ork G am e

G am e C hosen

Loca l G am e

P layers Jo ined

Loca l G am e Ends

N etw ork G am e Ends

Page 12: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Game Play Requirements

• Multiple players are allowed to compete one another

Page 13: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

A.I. Requirements

• AI shall have a common interface that will allow it to communicate to the client and server

• Shall be able to solve the cube with varying levels of expertise

Page 14: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Network Requirements

• Allow communication to server over TCP/IP to start or join a game session

Page 15: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Server Requirements

• Will mediate game sessions• Will close a game session when no clients are

present• Will allow restart of a game session after a

completion of a game match• Keep an accurate log of activities• Will block IP addresses that attempt to cause

harm

Page 16: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Anticipated Architecture

Client

Input

Graphics

AI

Sound

Networking

Server

Page 17: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Configurations

• Windows XP or higher– Keyboard and Mouse– 360 Gamepad Controller for Windows– Must include Video card that supports

• Shader Model 1.1

• XBox 360– 360 Gamepad Controller

Page 18: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Development Environment

• C# Express 2005• XNA Game Studio Express Ver. 1.0• .Net Framework 2.0• DirectX 9.0• Anim8or• XAct

Page 19: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Elaboration

Software Requirements

Page 20: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Starting Design

• From the software requirements we can formulate a high level architecture for a basis for further design

• The high level design will be shown and each component examined

Page 21: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

High Level Architecture

XNA

Engine

Game Logic

Networking AI

Page 22: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Engine

GUI

Input RenderingSceneGraphState

ManagementPicking

GUI uses the rest of the enginesystem to define appropiateGUI behavior.

Page 23: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Input

User System

Control Cube

Control Menu

Display Results

InputManager «interface»IWatcher

Events«interface»InputScheme

Page 24: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Input (cont)

Mouse IWatcher

Keyboard IWatcher

XBox360GamePad[N] IWatcher

MiscController IWatcher

RealMouseState

RealKeyboardState

RealXBox360State

RealMiscControllerState

XNA State PackagesUser Requirement:

The customer requires multiple input devices.

Page 25: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

State Management

Page 26: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Picking

Page 27: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Scene Graph

Page 28: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Rendering

Page 29: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

GUI

Page 30: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Game

• The following slides describe the components to the game

Page 31: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Game Logic

Page 32: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Cube Scene Graph

Page 33: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Cube Scene Graph (cont)

Page 34: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Engine Design Metrics

ValueNumber of Scenario Scripts in Use Cases 6Number of Key Classes 41Number of Support Classes 12Average number of Support Classes per Key 0.296Number of Subsystems 6Average Depth of inheritance 0.948276Average Number of Children Per Class 0.465517Average Fan In 0.655172Average Fan Out 0.62069

Metric

Page 35: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Regade’s Cube Design Metrics

ValueNumber of Scenario Scripts in Use Cases 4Number of Key Classes 6Number of Support Classes 1Average number of Support Classes per Key 0.166667Number of Subsystems 1Average Depth of inheritance 0.6Average Number of Children Per Class 0.6Average Fan In 1Average Fan Out 1

Metric

Page 36: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Complexity

• The complexity is proportional to V(G)• Fan in/Fan out of the components is less than

or equal to one– Indicates low design complexity

Page 37: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

DependencyClient

Start

Research Networking API

Research Game Engine

Implement Logger

Implement Game Logic

Respond to Client Requests

Implement Game Loop

Implement State Management

Implement Input Management

Implement SoundImplement Scene

Management

Implement Networking

Management

Chat

Create Menus

Create Game Scene

Multi-Player

Finished

AI

Game Logic

Page 38: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Project Development Schedule

• Changes are needed!

Page 39: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Dependencies and Work Schedule

• Though simple, the project is very large and is very impractical for such a short period of time

Page 40: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Agile

• Design phase was not mutually exclusive to construction or implementation

• Each component design requirements were updated during component implementation

• Immediately prior to implementation, the component was designed as needed. This meant that not all components were designed together.

Page 41: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Cuts

• We were design and implementing at the same time. As it progressed, it became apparent that not all features could be designed and coded. Not to mention tested.– Networking– AI– Misc Controls– Options– Game modes (“Ragade’s Revenge”)– NxNxN Cube

Page 42: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Construction

Creation of the Product

Page 43: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Effort Estimation

• Two methods were used to estimate effort time– COCOMO II– Dependency Graph Analysis

Page 44: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

COCOMO II

• Using the COCOMO II Estimation process because we will be taking the project through all three stages of the development cycle. The basic model is E = bScm(X).

• Estimated Effort 3.105263 person-months• Approximately 500 person hours

Page 45: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Dependency Graph Analysis

• Defining weights for each link in the Dependency Graph, we were able to find a total amount of effort.

• 275 Hours

Task Assigned Hours

Research Game Engine Chris L./Steven 5

Design Game Loop Chris L./Steven 3

Implement Game Loop Chris L./Steven 10

Implement State Management Chris L./Steven 16

Implement Scene Management Chris L./Steven 24

Design Input Management Jason 10

Implement Input Management Jason 10

Game Screen Chris L./Steven 40

Implement Game Logic Chris L./Steven 40

Multi-Player Chris B. 5

Research Networking API Chris B. 5

Implement Network Management Chris B. 10

Design Server Logic Chris B. 10

Implement Logger Chris B. 10

Respond to Client Requests Chris B. 5

Chat Chris B. 5

AI Chris B. 32

Implement Sound Jason 15

Documentation Jason 20

Total Hours: 275

Page 46: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Component Effort Time

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.50

10

20

30

40

50

60

70

80

EngineGameGUINetworkingInput

Page 47: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Effort Over Time

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.50

20

40

60

80

100

120

140

160

180

Jason S.Steven S.Chris B.Chris L.

Page 48: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Estimation and Actual

25% 25%

20%

30%

Dependency Chart Estimation

StevenChris L.JasonChris B.

• COCOMO II– 500 Hours

• Dependency– 275 Hours

• Actual– 534 Hours

43%

29%

14%

14%

Actual Effort

Chris LockhartChris BoyleSteven ShofnerJason Spruill

Page 49: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

McCabe’s Metrics

Page 50: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Average Method Count vs. Complexity

Page 51: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Histogram

Page 52: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Kiviat Diagram

Page 53: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Transition

Test and Deploy

Page 54: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Test Software

• Test Log• Mantis (Bug Tracker)• NCover• Nunit

Page 55: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Make Test Plan

• Outlines a systematic approach for testing the entire system.

• The test plan will contain:– Test inventory– Risk analysis (MITS)– Test effort estimation– Resources– Progress tracking

Page 56: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Building Test Inventory

• The test inventory contains all possible tests.• Test cases are generated from:

– Use Cases– Requirements– Classes and Components– Links between components

Page 57: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Test Case Estimation

• After consideration of McCabe Metrics, it was found that the program is very large.

• Over 713 functions would require >= 713 possible unit tests.

• Each unit test would take > 30 minutes to perform and implement.

• An estimation of the total number of possible test cases is 2097.

• THERE ARE TOO MANY!!!!!

Page 58: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Risk Analysis

• Using MITS Risk Analysis• Each test case was categorized by:

– Severity– Cost

• Each category was given a weight.• The average of the weights were determined

for each test case to produce a priority.• The priority determined the test ordering.

Page 59: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Test Cases (that survived)

• Acceptance Tests – test for requirement validation.– Menu screen test to begin game and select

options.– Cursor test for GUI.– Split screen test for game play.– Game stats test for game play.

Page 60: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Test Cases (that survived)

• System Tests– Test the make sure cube start shuffled.– Test to see game goes to the title screen after a

win.– Test to see the cursor makes a sound when

rotating.

Page 61: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Test Cases (that survived)

• Integration Tests– Test to see if a scene was drawn and updated.– Test to see if picking subsystem works.– Test to see if GUI receives an input.

Page 62: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Test Cases After MITS

• No Unit Tests survived the MITS Risk Analysis.• We made sure that every requirement was

covered in test case selection.

Page 63: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Test Status

Page 64: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Test EffortProgress report - 2007-12-02-2Project: GAME_WINDate: 2-Dec-2007 23:41:53

50

Project Test period

15-N

ov-2

007

16-N

ov-2

007

17-N

ov-2

007

18-N

ov-2

007

19-N

ov-2

007

20-N

ov-2

007

21-N

ov-2

007

22-N

ov-2

007

23-N

ov-2

007

24-N

ov-2

007

25-N

ov-2

007

26-N

ov-2

007

27-N

ov-2

007

28-N

ov-2

007

29-N

ov-2

007

30-N

ov-2

007

1-De

c-200

72-

Dec-2

007

3-De

c-200

74-

Dec-2

007

5-De

c-200

76-

Dec-2

007

45

40

35

30

25

20

15

10

5

0

Not yet attempted

Fail

Pass

Other

Postponed

Page 65: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Bug Finding and Fixing

30-Oct 4-Nov 9-Nov 14-Nov 19-Nov 24-Nov 29-Nov 4-Dec 9-Dec0

5

10

15

20

25

30

Bugs by Date

Bugs Added

Bug removal

Date

Def

ects

Page 66: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Error Rate

30-Oct 4-Nov 9-Nov 14-Nov 19-Nov 24-Nov 29-Nov 4-Dec0

5

10

15

20

25

Error Rate

Date

Def

ects

Per

Day

Page 67: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Known Defects(Ragade’s Cube)

• After exiting a game, the title screen does not display correctly.

• Game receives input when not in focusCube does not shuffle the appropriate amount

• Change focus sound on menu when no focus has changed

• Strange artifacts appear around words and buttons on the menu screens.

Page 68: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

Known Defects (Engine)

• Scenes need to have draw order. • Control item texture asset names should be

specified with full path.

Page 69: Ragade’s Cube. Inception Project Management Team Organization Analyst DesignerLibrarian TesterProgrammer Used ego-less approach.

DEMO TIME!