“Multiplayer Gaming Simplified”

Transcription

“Multiplayer Gaming Simplified”
1
Swirl
“Multiplayer Gaming Simplified”
CS4512 – Systems Analysis and Design
Assignment 1 –2010
Marque Browne – 0814547
Manuel Honegger - 0837997
Kieran O' Brien – 0866946
2
BLANK MARKING SCHEME
3
TABLE OF CONTENTS
Blank Marking Scheme.....................................................................................................................................2
Narrative Description.......................................................................................................................................5
Software Lifecycle Model.................................................................................................................................6
Risk Management Strategy………………………………………………………………………………………………………………8
Project Plan and Allocation of Roles.................................................................................................................9
System Architecture........................................................................................................................................10
Three-Tier Architecture.......................................................................................................................12
Discussion of the UML Workbench Used............................................................................................14
Requirements..................................................................................................................................................15
Functional............................................................................................................................................15
Non Functional....................................................................................................................................25
Use Case Diagrams..............................................................................................................................26
GUI Prototypes....................................................................................................................................30
Analysis...........................................................................................................................................................37
Candidate Objects...............................................................................................................................37
Class Diagram......................................................................................................................................38
Sequence Diagram..............................................................................................................................40
Communication Diagram....................................................................................................................41
State Chart..........................................................................................................................................42
Entity Relationship Diagram................................................................................................................43
Design..............................................................................................................................................................44
Architectural Style...............................................................................................................................44
State Pattern.......................................................................................................................................44
Adapter Pattern...................................................................................................................................45
Model-View-Controller Pattern………………………………………………………………………………………………………45
Client Package………………………………………………………………………………………………………………………..………46
Database Package………………………………………………………………………………………………………………..…………47
4
Game Package………………………………………………………………………………………………………………………………..48
Match Package....................................................................................................................................49
Network
Package.................................................................................................................................50
Server Package....................................................................................................................................51
UI Package...........................................................................................................................................52
Data
Dictionary................................................................................................................................................53
References.......................................................................................................................................................5
6
5
NARRATIVE DESCRIPTION
"Swirl" is a new company that has created a multiplayer game server browser system. What they have
achieved is a system that supplies a multi-platform client with the ability for users to initiate, search, create
and join game servers.
The client must have an internet connection, be able to access the network and successfully maintain the
connection before accessing the database and allowing the user access to the main interface.
Upon successful connection to the system, the client begins to search the user’s computer for known and
supported games that are listed on the systems database. Supported games that are found are listed in the
interface every time the client is initiated. If the client does not find any supported games, the client closes.
When the main interface is presented the user is be supplied with the list of supported games. They may
choose to create and host their own server or simply search a list of available servers. When choosing to
create their own server they are presented with a choice of game types and maps for the game they
selected. When then server is launched it is listed on the systems database until the client closes the
server.
If the player decides to join a game, a list of available servers is presented to them which are listed from
the database. Options for filtering servers by game play type and the ability to refresh the server lists is also
available to the user.
When the user selects a server, the list of maps on the server is retrieved, if only one map is available only
that map is displayed. The user can then join the server.
The ability to revert to any previous step is available to the client at all times.
Validation System consists of two queries. Firstly, the client checks the user’s computer for an active
internet connection. If a connection is found the user can connect to the network, otherwise the client
terminates. Secondly, the client checks the user’s computer for games. These games are cross examined
with the list of supported games on the systems database. If one or more supported games are found they
are listed in the client. If no supported games are found the client closes.
Game Selection/Setup System handles the user’s choice of game and server. From the list of games in the
clients interface the user chooses a game they wish to play. The client then lists all available servers for
that game from the system database. The user can also refresh the list at anytime. Once a server is picked
the client lists the map rotation on that server and the game will launch.
Server Configuration System handles the user’s creation/ configuration of a server. From the create server
interface the user has the option to set the number of maximum players, game type and map list. The user
may also enter in a server password if needed. The user is also given the option to enable cheats on their
server. Once configuration is complete the user may host their game.
6
SOFTWARE LIFECYCLE MODEL
For this project we have chosen the most well known software lifecycle development model – the
Waterfall Lifecycle Model. It is often considered the classic approach to the systems development life cycle
as it describes a development method that is linear and sequential. Waterfall development has certain
goals that need to be met for each phase of development. Once a phase has been completed, the
development proceeds to the next step. These phases generally are System Engineering, Requirements
Analysis, Design, Implementation, Testing, Installation and Maintenance.
1. System Engineering
The first phase, this involves identifying the major requirements for the software system and then
identifying the parts of the system which are most important and best implemented in the software. This
creates a high-level architectural specification that defines how these major parts of the system will
interact with each other.
2. Requirements Analysis
This phase deals with more intense gathering of systems requirements and involves making sure that these
requirements are clearly defined. If the system contains large elements, that require implementation into
the software, then these will be the main focus of this phase. The main goal here, being the identification
of what the user requirements are, from the system. Identifying the requirements for very large and
complex systems, benefit from fact-finding techniques such as background reading, interviews,
observation, document sampling and questionnaires. User requirements will be of benefit in the later
stages of the lifecycle in regards to developing the criteria for user acceptance testing.
3. Design
This phase consists of looking at the chosen requirements for the system, and determining how best to
create a system that delivers these requirements. At first, design is concerned with the specification of the
software architecture that defines the structure and relationship of the various components of the system.
This involves reaching a balance between requirements that could conflict with each other (e.g
performance, portability etc) within the constraints of the implementation environment.
4. Implementation
Implementation deals with taking the completed design of the system and translating it into a
programming language code. Depending on how the design was completed, part of the implementation
may be automated. Construction may also cover various different programming languages as well as
different database management systems for different parts of the system.
5. Testing
7
During this phase the system is tested to ensure that it conforms to the user requirements. Typically,
several levels of testing are performed such as unit testing (individual components), integration testing
(components together as subsystem), system testing (all subsystems together) and acceptance testing (by
the users).
6. Installation
Once this stage has been reached, the system has been tested satisfactorily and is delivered and installed
to the users. The introduction of the system has been managed carefully to minimize disruption. To ensure
this, both old and new systems may be run side by side to ensure that the new system works and performs
correctly before the old system is phased out. Even though this idea is an expensive test, a contingency
plan should be in place to cover the level of risk.
7. Maintenance
As is with most software, no single program will be perfect. Most programs will be subject to change during
its life. The developed system may operate incorrectly and it may need to be updated to fix these issues
(corrective maintenance). Certain aspects of the systems features may not have been fully implemented
due to time or cost constraints but are then completed during the maintenance phase (perfective
maintenance). The operating environment may also change and need support (adaptive maintenance).
Advantages of the Waterfall Model:
•
•
•
•
•
Ease of explanation – Documentation at every phase
Linear Model – Ease of implementation
Phases and progression are well defined
Effectively helps in planning and scheduling of the project
Verification at each stage ensures early problem/error detection
Disadvantages/Criticisms of the Waterfall Model:
•
•
•
•
Once a phase is complete you cannot go back. If design phase goes wrong, things can get very
complicated and messy in the implementation phase.
If the client is not clear about what he exactly wants, any changes that he mentions in between may
cause a lot of problems.
Working model of the software is not available to the client until the final phase is complete.
Adjusting scope during the life cycle can kill a project
High amounts of risk and uncertainty.
•
Poor model for complex and long projects.
•
Poor model where requirements are at a moderate to high risk of changing
•
RISK MANAGEMENT STRATEGY
8
There are many risks involved with software development especially if things go wrong in the early analysis
phase which then mushroom into the design phase. It is therefore necessary to have a risk management
strategy to avoid or minimize these risks from occurring.
It is often the case that poorly defined requirements, unrealistic schedules/budgets, incorrect development
of the UI and a continuing stream of changing requirements that most often bring a software development
project to its knees.
To effectively control these risks, it’s best to break up the management strategy into two main activities:
Risk Assessment
•
•
•
Creating a list of all potential risks that could affect the project
Assessing the probability of occurrence and the potential issues caused by each risk
Ranking the risks in order of highest to lowest risk
Risk Control
•
•
•
Brainstorming techniques and strategies to control the most likely risks
Implementing the strategies to mitigate the highest risks
Monitoring the effectiveness of the strategies and the changing levels of risk throughout the project
PROJECT PLAN AND ALLOCATION OF ROLES
9
Week
7, 13
7
7
7
8
8
8
8
8
9
9
9
10
10
10
11
11
12
12
12
7
13
Description
Document Design/Creation
Narrative Description
Software Lifecycle
Risk Management Strategy
System Architecture Diagram
Requirements
Use Case Descriptions
Non-Functional Requirements
GUI Prototypes
Use Case Diagrams
Analysis
List Candidate Objects
Communication Diagram
Sequence Diagram
State Chart
Entity Relationship Diagram
Class Diagram
Design
Architectural Style
State Design
Adapter Pattern
Model-View-Controller Pattern
Data Dictionary
Extras
Project Plan / Roles
References
Allocation
Manuel Honegger
Manuel Honegger, Kieran O' Brien
Manuel Honegger
Manuel Honegger
Marque Browne, Manuel Honegger
Kieran O' Brien
Kieran O' Brien
Manuel Honegger
Marque Browne, Manuel Honegger, Kieran O' Brien
Manuel Honegger
Marque Browne
Marque Browne
Marque Browne
Marque Browne
Marque Browne
Marque Browne, Manuel Honegger, Kieran O' Brien
Marque Browne, Manuel Honegger, Kieran O' Brien
Marque Browne, Manuel Honegger, Kieran O' Brien
Marque Browne, Manuel Honegger, Kieran O' Brien
Kieran O' Brien
Manuel Honegger
Marque Browne, Manuel Honegger, Kieran O' Brien
SYSTEM ARCHITECTURE
10
There are many integrated parts which make up the Swirl system. Each part has its own functionality and
so the decision was made to separate these parts of the system into their own distinct packages. In order
to group these parts, it was essential to look at the different responsibilities of each integrated part. The
packages were hence grouped as follows:
•
Database Package
This package handles all database operations that will be used when communicating with the
company’s database.
•
Network Package
This package handles the operations for testing that we have communication with the company’s
database. It opens connections to servers and downloads information about current matches. Also
feeds back the latency of the server.
•
Game Package
This package handles the information of the games and the system. Also includes a list of servers
that the game will be able to connect to, as well as containing information pertinent to launching
dedicated servers.
•
Server Package
This package holds information about servers for specific games. Includes information required for
configuring and launching dedicated servers.
•
Match Package
This package contains information about the matches for a given server.
•
Client Package
This package controls the flow of information between the network and Game and Server packages.
The package diagram below shows the dependencies between each package in the system as well as their
respective interfaces.
11
THREE-TIER ARCHITECTURE
12
The architecture we have chosen for our project is the Three Tier Architecture. This architecture deals with
three main layers:
•
User/Client Layer
Lists the various GUIs used in the system.
•
Business/Application Layer
Contains all the business logic of the system
•
Data Layer
Contains all information needed for communication and operation.
An example of this implementation is illustrated below:
13
DISCUSSION OF THE UML WORKBENCH
14
The development tools we have been assigned for this project work is the “Select Solution Factory”
software package from “Select Business Solutions”. http://www.selectbs.com/
“Select Solution Factory” is an integrated set of products and modeling tools for Service and Component
Based Development, design review, service/component management, requirements management, code
generation and reuse.
As the complexity of components increases, “Select Solution Factory” plays a greater role as a sophisticated
UML modeling tool that helps tailor components to specific requirements. It includes both analysis and
design functionality and uses visual tools to build components, manage component assets and support the
assembly of components into entire applications.
For our project we will solely focus on the UML modeling tools provided by the “Select Architect” software
of the “Select Solution Factory” package.
“Select Architect” features a scaleable design environment for pragmatic Business Motivation Modeling
(BMM), Business Process Modeling (BPM), service and Component based development and design, UML
and database design. It will be used to create and model all of the diagrams needed for the project.
At first it was difficult to come to terms with all the features that “Select Architect” offers but after 4-5
weeks of use, we had learned the functionality of the program and creating diagrams became a quick and
easy task. Overall, “Select Architect” saved us a lot of time and made the creation and modifying of the
various diagrams very fast and efficient.
REQUIREMENTS - FUNCTIONAL - USE CASE DESCRIPTIONS
15
USE CASE 1
Play Game
Goal in Context
User requests to play game
Scope & Level
User has an internet connection.
Preconditions
Client has found supported game(s).
User has been allowed to play selected game.
Success End Condition
Failed End Condition
Primary, Secondary,
Actors
User has not been allowed to play selected game.
Client, Network, Games, Servers, Database, Matches,
Request to play Game
Trigger
DESCRIPTION
EXTENSIONS
Step
Action
1
User launches Client
2
Client checks for internet connection
3
Client checks for supported games
4
User chooses Game
5
User selects Server
6
User selects Match
7
Client launches Game
Step
Branching Action
2a
Client fails to connect to Network
2ai
Client closes
3a
Client finds no supported game
3ai
Client closes
5a
User requests Server list refresh
5ai
Client refreshes Server list
VARIATIONS
Branching Action
RELATED INFORMATION
Priority:
Play Game
Performance
Highly variable depending on computer specification and hard drive
Top
16
capacity.
Frequency
High variable frequency 100’s – 100,000’s a day
Channels to actors
Internet
OPEN ISSUES
What if our Servers are down / crashed?
What if the client’s connection is disconnected during connection attempt
to the server?
Due Date
Release 1.0
…any other management
information…
<as…needed>
Superordinates
Find connection, Find Game
Subordinates
Client joins Network
USE CASE 2
Description
In order for the user to play games or host servers the client must first connect to the
network.
Preconditions
Post-conditions
Actor Actions
System Response
User has
an internet
connection
.
Client is
connected to the
network.
1. User launches
Client
2. Client connects to Network
Extension
At step 2 the client may fail to connect to network and will close.
17
Client checks Games
USE CASE 3
Description
In order for the user to play games or host servers they must have supported games on
their computer. The client searches the user's computer for any of these games.
Preconditions
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
Client finds new
game(s).
1. User launches
Client
2. Client connects to Network
3. Client searches for games
Extension
At step 2 the client may fail to connect to network and will close.
At step 3 the client may fail to find supported game(s) and will close.
Client finds new Games
USE CASE 4
Description
The Client has found at least 1 game.
Preconditions
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
Client is updated
with list of found
games
1. User launches
Client
2. Client connects to Network
3. Client searches for games
4. Client lists games
Extension
At step 2 the client may fail to connect to network and will close.
At step 3 the client may fail to find supported games and will close.
18
Games checks Database
USE CASE 5
Description
The Client cross references the list of found games with the list of supported games on the
systems database.
Preconditions
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
Client is updated
with list of found
supported games
1. User launches
Client
2. Client connects to Network
3. Client searches for games
4. Client lists games
5. Client cross references list of found games with
list of supported games on the database
Extension
At step 2 the client may fail to connect to network and will close.
At step 5 the client may fail to find supported games and will close.
Client chooses Game
USE CASE 6
Description
User chooses any one of the supported games found by the Client.
Preconditions
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
User has chosen
a game to play
and a list of
servers for that
game are
displayed.
1. User highlights
a game from the
list of supported
games.
3. Client displays a list of available servers for the
selected game from the database.
Clients has
found
supported
games
2. The “Select
Game” button is
selected.
Extension
None
Client selects Server
USE CASE 7
Description
The user selects any one of the servers listed by the Client.
Preconditions
Post-conditions
Actor Actions
System Response
Client is
User has chosen
1. User highlights
3. Client displays a list of available matches.
19
connected
to the
Network.
a server.
a server from the
list of servers.
2. The “Select
Server” button is
selected.
Client has
found
supported
games.
Extension
At step 1, 2 or 3 the client may wish to refresh the list of servers.
Client selects Type
USE CASE 8
Description
The user selects the game type they wish to play.
Precondition
s
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
User has chosen
a game type and
the client lists
servers of that
game type.
1. User selects a
game type from
the drop down
list.
2. Client updates server list.
Client has
found
supported
games.
Client has
selected a
server.
Extension
None
Database lists Servers
USE CASE 9
Description
The Client updates with a list of servers from the database.
Precondition
s
Post-conditions
Actor Actions
System Response
Client is
connected
Client is updated
with a list of
1. User highlights
a game from the
3. Client displays a list of available servers for the
20
to the
Network.
servers from the
database.
list of supported
games.
selected game from the database.
Client has
found
supported
games.
Extension
None
Client select Matches
USE CASE 10
Description
The user selects the match they wish to play.
Precondition
s
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
User has selected
a match.
1. Users
highlights a
match from the
list.
3. Client allows the user to join the selected match.
Client has
found
supported
games.
2. The “Select
Match” button is
selected
Client has
selected a
server.
Extension
None
Server list Matches
USE CASE 11
Description
The Client updates with a list of matches from the database.
Precondition
s
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Client is updated
with a list of
matches from
1. User highlights
a server from the
3. Client updates with a list of matches on the
selected server.
21
Network.
the database.
list of servers.
Client has
found
supported
games.
2. The “Select
Server” button is
selected.
Client has
selected a
server.
Extension
None
Client launches Game
USE CASE 12
Description
The Client launches the game.
Pre-conditions
Postconditio
ns
Actor Actions
System Response
Client is connected
to the Network.
User
plays
configur
ed
game.
1. The “Join
Server” button is
selected.
2. Client launches the game.
Client has found
supported games.
Client has selected
a server.
Client has selected
a match.
Extension
None
Client creates Server
USE CASE 13
Description
The user creates a server they wish to host.
Precondition
s
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
User has chosen
a game they wish
to create a server
for.
1. User highlights
a game from the
list of supported
games.
2. Client now allows user to configure a server for
the selected game.
22
Client has
found
supported
games.
Extension
None
Client configures Server
USE CASE 14
Description
The user customizes the server they wish to host.
Precondition
s
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
User has
configured their
server.
1. User selects a
game type from
the drop down
list.
3. Client now allows the user to host the configured
server.
Client has
found
supported
games.
2. User selects a
map list from the
drop down list.
Extension
At step 1, 2 or 3 the user may wish to quit the client and it will close.
Client sets type
USE CASE 15
Description
The user sets the game type they wish their server to have.
Precondition
s
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
User has set the
game type.
1. User selects a
game type from
the drop down
list.
2. Client updates the server game type.
Client has
23
found
supported
games.
Extension
None
Client sets maps
USE CASE 16
Description
The user sets the map list they wish their server to have.
Precondition
s
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
User has set the
map list.
1. User selects a
map list from the
drop down list.
2. Client updates the server map list.
Client has
found
supported
games.
Extension
None
Client hosts Server
USE CASE 17
Description
The user hosts the server they have configured.
Precondition
s
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
User hosts their
configured
server.
1. The “Host
Server” button is
selected.
2. Client launches the user’s server.
24
Client has
found
supported
games.
Extension
None
Server listed on Database
USE CASE 18
Description
The user hosts their server and it is listed on the database.
Preconditions
Post-conditions
Actor Actions
System Response
Client is
connected
to the
Network.
User's server is
listed on the
database
1. The “Host
Server” button is
selected.
2. The user’s server is added to the database.
Client has
found
supported
games.
Extension
None
NON FUNCTIONAL
Non-Functional Requirement
Description
Availability
As the system is accessible to clients worldwide it
must be available at all times.
Quality
The system fulfills the customer’s expectations by
25
conforming to the customer’s requirements of
gaming online.
Reliability
The system is reliable as the required databases and
servers have a 99.9% guarantee.
Scalability
The databases and servers for the system will often
be required to increase in size due to increasing
users and usage. For this reason it needs to be easily
scalable.
Usability
As the system is utilized by customers the user
interface is required to be very user friendly and bug
free.
USE CASE DIAGRAMS
Authentication
26
Game Browsing
First Cut of Game Selection Use Case Diagram
27
Navigation System
28
Game Hosting
29
GUI PROTOTYPES
Authentication – UI
30
31
Welcome – UI
32
Choose Game – UI
33
Choose Server – UI
34
Choose Match – UI
35
Create Server - UI
36
ANALYSIS
Candidate Objects
37
To identify the candidate objects we pick out the nouns from the description.
Playing a Game
The client must first successfully establish a connection to the network and then have his computer
scanned with at least 1 supported game being found and accepted by the database. The user must then
choose a game to play. From here the user can browse for game servers where numerous options are
available for filtering by such as max players, game type, maps, latency etc. Once the user has joined a
server he may choose to join any found matches that are found on that server. The user can also choose to
host and configure his own server.
Candidate Objects
Client
Network
Database
Game
Server
Match
CLASS DIAGRAM
38
39
SEQUENCE DIAGRAM
40
COMMUNICATION DIAGRAM
41
STATE CHART
42
E-R Diagram
43
DESIGN
ARCHITECTURAL STYLE
44
On finalization of the class diagram, a thorough analysis was conducted to examine which design patterns
would best suit our problems at hand. This involved choosing and applying structural and behavioral
patterns. The State Design Pattern (Behavioral) was applied to the Client package. The Adapter Design
Pattern (Structural) was applied to the Server package. The Model-View-Controller Pattern was applied to
the UI package.
STATE PATTERN
Intent
•
Allow an object to change its behavior. The object will appear to change its class.
Problem
•
An objects behavior is a function of its state, and it must change its behavior at run-time depending
on the state.
Discussion
The State Pattern is a solution to the problem of how to make behavior dependant on state.
Implementation
Client class is used as a boundary class for the rest of the system. We use this as our model when
developing our MVC controller. Because we use a state based design pattern in our model we reflect this
with an alternate state and controllers that will be based on each state available for the client.
ADAPTER PATTERN
Intent
45
•
Convert the interface of a class into another interface clients expect. Adapter lets classes work
together that couldn’t otherwise because of incompatible interfaces.
Problem
•
An “off the shelf” component offers compelling functionality that you would like to reuse, but its
“view of the world” is not compatible with the philosophy and architecture of the system currently
being developed.
Discussion
Adapter is about creating an intermediary abstraction that maps the old component to the new system.
Clients call methods on the Adapter object which redirects them into calls to the old component. This
strategy can be implemented either with inheritance or with aggregation. Adapter functions as a wrapper
or modifier of an existing class. It provides a different or translated view of that class.
Implementation
The Adapter Pattern was used to instantiate game and player type objects. Both inherit the basic attributes
from the server while implementing alternate interfaces to ensure that they can be implemented
differently within the system.
MODEL-VIEW-CONTROLLER PATTERN
Intent
•
Separation of objects into one of three categories - models for maintaining data, views for
displaying all or a portion of the data, and controllers for handling events that affect the model or
view(s).
Problem
•
Events typically cause a controller to change a model, or view, or both. Whenever a controller
changes a model’s data or properties, all dependent views are automatically updated. Similarly,
46
whenever a controller changes a view, for example, by revealing areas that were previously hidden,
the view gets data from the underlying model to refresh itself.
Discussion
MVC is a classic design pattern often used by applications that need the ability to maintain multiple views
of the same data. Separation, multiple views and controllers can interface with the same model. Even new
types of views and controllers that never existed before can interface with a model without forcing a
change in the model design.
Client Package
47
Database Package
48
Game Package
Match Package
49
Network Package
50
Server Package
51
UI Package
52
DATA DICTIONARY
Name: Network
Type: Actor
Description: Network represents all the information about the network such as:
53
Name: Servers
Type: Actor
Description: Servers represents an entity on the network that hosts matches for games.
Name: Database
Type: Actor
Description: The Database holds server information for each game, games settings and any information
needed for parsing.
Name: Games
Type: Actor
Description: Games represents the games found on the user’s computer by the client after successful connection to the Network.
Name: Matches
Type: Actor
Description: Matches represents a list of matches for each server.
Name: Client
Type: Actor
Description: The Client connects to the Network and searches the user’s computer for supported games. Using it the user can 1. Select a game to play
2. Launch a game
3. Create a server
4. Configure a server
5. Host a server
Name: Game
Type: Logical Entity
Description: The Game is used to store information about the various supported games. Such info includes:
game name, version, selected server and launch command.
54
Name: Server
Type: Logical Entity
Description: The Server is used to store information about the various servers. Such info includes: game
name and game version.
Name: Match
Type: Logical Entity
Description: The Match is used to store information about the various matches being held. Such info includes: score, players and players score.
Name: Database
Type: Logical Entity
Description: The Database is used to store addresses.
Name: GameServer
Type: Logical Entity
Description: The GameServer is used to store information about the various game servers. Such info includes: address and matches on the server.
Name: Network
Type: Logical Entity
Description: The Network is used to store information about the network. Such info includes: address and
network state.
Name: serverOptions [Server.Pserver$]
Type: Attribute
Description: Used to represent the server options available to the user when configuring a server.
55
Name: version [Game.Game$]
Type: Attribute
Description: Used to represent the version of a particular game.
Name: matches [Server.GameServer$]
Type: Attribute
Description: Used to represent the list of matches which is used to hold data on current matches of a server.
Name: Score [Match.Matches$]
Type: Attribute
Description: Used to represent a score which is used to hold score data of a match.
Name: PServer
Type: Interface
Description: The PServer interface provides the functionality needed to manage player server
configuration.
REFERENCES
Bennet, et al. (2005) Objected-Orientated Systems Analysis and Design using UML, 3 rd Edition.
McGraw Hill
2. Fowler, M (2003) UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3 rd
Edition. Addison-Wesley Professional
1.
56
http://www.selectbs.com/adt/analysis-and-design/select-architect Select Architect (BMM, BPMN,
UML) | Analysis and Design. [Accessed 19-3-2010]
4. http://baz.com/kjordan/swse625/intro.html Introduction to Risk & Risk Management in Software
Project Management. [Accessed 21-3-2010]
5. http://sourcemaking.com/design_patterns/adapter Adapter Design Pattern. [Accessed 12/4/2010]
6. http://www.enode.com/x/markup/tutorial/mvc.html Model-View-Controller Pattern. [Accessed
16/4/2010]
3.