Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22JokerStars: Online Card PlayingWilliam SanvilleMilestone 4BackgroundOnline card system specializing in Texas Hold'em pokerSimilar to popular systems such as PokerStars, Full Tilt PokerClient-Server modelScope RevisionOriginal Plan: One table of No Limit Hold'em with one to nine playersRevised Plan: Many tables of No Limit Hold'em with one to six playersSystem should be flexible enough to support many tables concurrentlyImplementing just a single table would be a wasteModule DependenciesIntegration TestingEntry Criteria: Modules must pass unit testingMany of the modules are simple class definitions with no interaction with other modulesExamples:Events moduleSQL moduleGame Entities moduleBottom-up approachUnit TestingSQL moduleExecute stored procedures, verify that the expected results occurExample:Connect to the database server. Record the chip count for “user1”Call the IncreaseChipCount method defined in the SQL module with parameters “user1” and 100Verify that the user's chip count has increased by 100Call the DecreaseChipCount method defined in the SQL module with parameters “user1” and 100Verify that the user's chip count has returned to the original valueUnit Testing ContinuedGame Entities moduleDeck must be able to shuffle itselfPseudorandom number generator is OK for this projectDeck must not contain any duplicate cardsCollections moduleVerify the behavior of custom data structuresEvents moduleOnly class definitions with sets and getsSide affect of how C# language is structuredIntegration Testing: Two PhasesIntegration testing can be broken into two main phasesPhase One: Perform integration testing on Client, Server, and Networking modulesThis is the foundation for the JokerStars systemPhase Two: Perform integration testing on the remaining modulesGame Engine, User Interface, Game EntitiesPhase One: Client, Server, NetCommon functionality of Client and Server is implemented in the Networking modulePacket, buffers, serializationClient and Server modules pass and receive messages in the same way as defined in the Networking moduleClient and Server must agree on the format of packets for successful integrationPacket consists of a type (enumeration), a table id, and a payload (any object)Phase One ContinuedClient and Server must communicate over the InternetNot just LAN, on and off campusFirewalls must be set properlyTest PlanEquipment: Dedicated machine, two clientsProcedure:Start the Server module on the dedicated machineConnect from the first client machine. Verify that the server accepts the connectionConnect from the second client machine. Verify that the server has acknowledged that a different user has connectedFrom server, send a different message to each client. Verify that the message was receivedSend a message from each client to the server. The server should display which user sent which messageDisconnect the clients. Verify that the server recognizes that each client has disconnectedPhase Two: Game Engine, UIMost complex part of the JokerStars projectUser Interface and Game Engine utilize the Client and Server modules to pass messagesUI and Engine must agree upon every piece of data that is sentIf the Engine sends a string in a packet, and the Interface expects a bool, runtime error will occurPhase Two ContinuedUser Interface and Game Engine must abide by the following contract:Phase Two ContinuedTesting the Game Engine and User Interface thoroughly requires the entire system to be operationalTherefore, the Game Engine and User Interface are a better candidate for system testingExit CriteriaThe JokerStars system will be ready for System Testing upon verification of:Ability to transport complex objects over the InternetModules that do not interact with each other must pass unit testingSQL module, Game Entities moduleGame Engine must allow system operator to add a virtual card table at run timeGame Engine must broadcast the list of card tables to the clientsUser Interface must allow end user to select which table(s) to play onJokerStars Control PanelJokerStars LobbyEntry point for the end userJokerStars LobbyControl Panel and Lobby maintain the connectionControl Panel and Lobby route packets to the correct card table for processingEx: A player on Table 1 places a betMessage is sent from the Lobby to the Control Panel, which will pass the message to the correct instance of the game table for processingJokerStars Game TableJokerStars Game TableJokerStars Game
View Full Document