DOC PREVIEW
UConn CSE 4904 - Milestone 4 Revision

This preview shows page 1-2-3 out of 10 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Project 6Milestone 4 Revision – CSE 4904William SanvilleSystem IntegrationThe testing strategy used for integrating all modules in the JokerStars project will be the bottom-up approach. Basic pieces of functionality will be developed and integrated together. After successful integration, more functionality will be developed. In the development phase, the most critical modules in the project, the Client and the Server modules, were implemented first. The integration testing will also follow the same priority. The Client and Server modules need to be integrated first because the entire system depends on their correctness. Also, in order for almost all other modules to be tested for integration, the Client and Server modules must be functioning. For example, integration testing between the User Interface module and the Game Engine can not take place without the Client and Server module, because the interface will be running on a different physical machine than the engine; the client and server modules are needed to bridge this gap. The following diagram illustrates the interaction between the modules in the JokerStars project.Networking ModuleA critical piece of both the Client and Server modules is the Networking module. This module contains common data structures, class definitions and methods used by both the Client and Server modules. The Networking module does not depend on any other module in the project. Instead, it only depends on core .NET libraries to function. In order for this module to integrate with the Client and Server, it must simply pass the unit tests for the Networking module. The Networking module provides class definitions for packets of data sent between the Client and Server, a buffer for receiving data, and methods to translate data into a byte array for transport over sockets.In order for this module to successfully integrate with the modules that depend on it, namely the Client and Server modules, it must simply have the proper access specifiers for class definitions and methods, so that they can be instantiated and invoked by other modules. Since the project is written in .NET, all methods and structures that need to be used by the Client and Server modules must be declared as public. In addition, the Networking module must pass unit testing, and it will be able to successfully integrate with the other modules.Client and Server ModulesThe Client and Server modules are very similar, the only difference is that the Server module accepts connections. The two modules pass and receive messages in an identical way, using the same code defined in the Networking module. In order for these modules to integrate successfully, they must agree on the same protocol for passing messages. Both modules pass and receive messages using sockets as defined in the .NETcore libraries. Information travels between the two in the form of a packet defined in the Networking module. A packet consists of an enumeration which describes the purpose of the packet, an object, which is the data that needs to be sent, and an optional table identification number, so the system can determine to poker table the packet corresponds to. An important aspect of testing the interaction between the client and server is to ensure that the client can connect and communicate with the server over the Internet, not only a local network. Firewalls will need to be set properly to allow the application to work as intended. In addition to the message passing functionality, the Server module needs to perform additional duties to manage connections and determine which client sent which message.Test Equipment: Dedicated server and at least two separate client machinesTest Procedure:1. Start the Server module on the dedicated machine.2. Connect to the server using the Client module from the first client machine. Verify that the server has acknowledged that a user has connected.3. Connect to the server using the Client module from the second client machine. Verify that the server has acknowledged that a different user has connected.4. From the server, send a different message to each client. Verify that the message was received.5. Send a message from each client to the server. The server should display which user sent which message.6. Disconnect the first client machine. Verify that the server recognizes that a clienthas disconnected.7. Stop the server module from listening. Verify that the remaining connected client displays that the connection to the server was lost.Client and Interface ModulesThe Client module provides public methods and event handlers in order to allow other modules to use its functionality. The integration between the Client and User Interface modules is exactly the same as it would be for the Client module and any other module, regardless of the purpose or the overall program. The Client module provides a Connect method, which attempts opens a connection with a specified IP address and a SendMessage method, which passes a packet to the server. As long as a valid IP address is specified and the packet that is defined in the Networking module is used, any module will be able to consume the methods of the Client module. In order to pass messages, the User Interface module will need to specify the purpose of the packet, using the enumeration defined in the Networking module and specify any .NET object. The Client module provides two public event handlers for use with the User Interface. The DataReceived event is triggered whenever the Client module has finished receiving any piece of data from the server. This allows the module that is using the Client to handle all data processing, leaving the Client completely generic. The Client also has a public event handler, ConnectionLost, which is raised when the connection to the server is interrupted. This allows the module that is using the Client to update and gracefully respond to the connection problem.Test Equipment: Dedicated server machine and a single client.Test Procedure:1. Using the User Interface as the driver program for the Client module, connect to the Server module.2. Send a message from the server to the connected client. Verify that the data was passed to the User Interface for processing via the DataReceived event.3. Stop the server program, verify that the ConnectionLost event was raised and the User Interface handles the event properly by displaying a dialog box to the user.Server and Game


View Full Document

UConn CSE 4904 - Milestone 4 Revision

Download Milestone 4 Revision
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Milestone 4 Revision and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Milestone 4 Revision 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?