The Gaming Room CS 230 Project Software Design Template

$30.00 $24.00

Executive Summary The gaming Room wants to develop a web-based game that will be used on multiple platforms. They currently have an android-based version of the game. The development of this application needs to be streamlined. The game will include an option to play with a single team or multiple teams. It also must prevent…

Rate this product

You’ll get a: zip file solution

 

Categorys:

Description

Rate this product

Executive Summary

The gaming Room wants to develop a web-based game that will be used on multiple platforms. They currently have an android-based version of the game. The development of this application needs to be streamlined. The game will include an option to play with a single team or multiple teams. It also must prevent users from creating duplicate team names.

Requirements

  • A game will have the ability to have one or more teams involved.

  • Each team will have multiple players assigned to it.

  • Game and team names must be unique to allow users to check whether a name is in use when choosing a team name.

  • Only one instance of the game can exist in memory at any given time. This can be accomplished by creating unique identifiers for each instance of a game, team, or player.

Design Constraints

  • Consistent Gameplay for both a single team or more than one team, this will require the development team to implement the Game class in a way that supports multiple teams, such as using a list of teams rather than a single team attribute.

  • Players must be grouped within a team, again this will require the development team to add an attribute to team class will which players are on that team, additionally players may also need to contain an attribute with their team.

  • Players within the same team receive the same information, this will require a way for the game class to communicate with all the players on a team, this could be done using a teams class.

  • Check for game and team names to prevent duplicates. The implications of this is likely a list of team names will need to be maintained, in order to check for repeated names before instantiation. The Game object should instead adopt a singleton pattern, to prevent duplicate instantiations.

System Architecture View

<Please note: There is nothing required here for these projects, but this section serves as a reminder that describing the system and subsystem architecture present in the application, including physical components or tiers, may be required for other projects. A logical topology of the communication and storage aspects is also necessary to understand the overall architecture and should be provided.>

Domain Model

The Entity class is used as an outline for its child classes: Game, team and Player. It contains relevant information we will use, such as id, name, and a toString() method. Game, team and Player will inherit these attributes from Entity so we can give them an id and name. These classes may overload the toString() method to display the relevant class type. This will make our code easier to understand and more efficient when programming classes as less information will be repeated. Additionally, it still allows for flexibility in the child class definitions.

2

In addition to the attributes listed above, the Game class also includes a list of teams, a constructor, as well as the ability to add teams. As we can see on the UML diagram, the game can have none to many teams.

Similarly, the Team class includes a list of players, a constructor, and a method to add players to the team. This is also shown on the diagram as a team can have none to many players.

Finally, the Player class contains a constructor.

The Game service object implements the singleton pattern, which restricts it from being instantiated multiple times. It contains a list of Games, the Id of the next game, the id of the next player, and id of the next team. It also allows the user to add a game, get game, view team or player id, and get the number of games. From the diagram, the Game Service class does not inherit from another class in the diagram. It may have none to many Games. Implementing the check internally is more efficient than implementing the check externally, which would require the program driver to contain a GameService attribute.

The program driver contains the main method, which is where program execution will start. The SingletonTester class will test if there only one instance of the GameService class.

Evaluation

Using your experience to evaluate the characteristics, advantages, and weaknesses of each operating platform (Linux, Mac, and Windows) as well as mobile devices, consider the requirements outlined below and articulate your findings for each. As you complete the table, keep in mind your client’s requirements and look at the situation holistically, as it all has to work together.

In each cell, remove the bracketed prompt and write your own paragraph response covering the indicated information.

Client Side

One key

advantage, is the

ability to develop

for both the

MacOS and other

apple products at

the same time. So

if this application

was prepared to

launch on the

MacOS through

Xcode, it could also

be launched on

other Apple

devices. However,

that is also

limitation, since

not all hardware

uses the MacOS.

There are

dedicated Mac

developers, and

because of the

benefit of

developing for

both Mac and Ios

at the same time

the cost is still

reasonable. There

are fewer ways to

test the web app

without a mac

device, although

xcode does provide

a MacOs simulator.

The browser that is

unique to Mac and

Ios devices is

Safari. Some

versions of Safari

require CSS vendor

prefixes(A way for

browsers to locate

features specific to

them), so the

website is

consistent across

all versions.

As we are developing an application that runs almost completely within the browser, the Linux operating system provides sufficient support. Linux-only browsers are less popular than safari or internet explorer, so no additional design considerations are necessary. Linux also has good security, and most customization. One downside is that Linux developments may need specialization based on which distribution and version of linux you plan to use. However, Linux developers are very common, which means that it also would have

  1. lower development cost and shorten development time.

5

Windows is very

commonly used,

so it would apply

to many clients.

Similarly,

windows offer a

large amount of

development

tools to simulate

the Operating

system. Hence,

more developers

are likely to have

experience with

the windows OS,

which lowers the

cost and time

requirements for

developing the

application. The

unique clients we

might encounter

on a windows

computer are

users using

internet explorer

or Microsoft Edge

as their internet

browser. Both of

these are

associated with

being older, so

making sure that

our web

application is

compatible with

previous versions

of these browsers,

while still being

safe and secure

for other users is

essential. This

might include,

supporting longer

response times or

decreasing the

amount of

information sent.

A good solution for

creating mobile

apps with a lower

budget is to design a

cross-plaform

application, or a

progressive web

app, as the Onix-

systems blog

explains.

(Sheremetov 2023)

This means that the

majority of

development is in

the form of web

development, but

the layout and UI is

changed to work

with a mobile

device. However, it

will still require

experts in more

than one OS,

because IOS and

Android applications

use different

development tools.

Which nearly

doubles the cost of

creating the

application(because

in many ways 2

applications are

being created). One

way this can be

leveraged in our

favor is by using the

MacOS to develop

for IOS devices. Or

similarly using the

Linux system to

develop for android

devices. However,

another

disadvantage is

hosting an

application on both

the App Store and

Google Play store

means paying the

required fees for

both of these

services.

Recommendations

Analyze the characteristics of and techniques specific to various systems architectures and make a recommendation to The Gaming Room. Specifically, address the following:

  1. Operating Platform: <Recommend an appropriate operating platform that will allow The Gaming Room to expand Draw It or Lose It to other computing environments.>

  1. Operating Systems Architectures: <Describe the details of the chosen operating platform architectures.>

  1. Storage Management: <Identify an appropriate storage management system to be used with the recommended operating platform.>

  1. Memory Management: <Explain how the recommended operating platform uses memory management techniques for the Draw It or Lose It software.>

  1. Distributed Systems and Networks: <Knowing that the client would like Draw It or Lose It to communicate between various platforms, explain how this may be accomplished with distributed software and the network that connects the devices. Consider the dependencies between the components within the distributed systems and networks (connectivity, outages, and so on).>

  1. Security: <Security is a must-have for the client. Explain how to protect user information on and between various platforms. Consider the user protection and security capabilities of the recommended operating platform.>

Sources:

Butler, R. (2022, February 14). Which OS is Best Suited for Your Development. BairesDev.

Develop Android games. (2023). Retrieved June 12, 2023, from Android Developers website:

https://developer.android.com/games

Gawin, M. (2021, April 23). Best Android App Development Tools & Software. INVO Blog. Retrieved June 12, 2023, from INVO Blog website: https://invotech.co/blog/best-android-app-development-tools-software/

Horne, K. (2021, May 4). Which Operating System Should You Choose for Your Web Hosting Server? Digital.com; Digital.com. https://digital.com/best-web-hosting/operating-systems/

O’Leary, R.(2021, May 5). Is Vendor Prefixing Dead?. https://css-tricks.com/is-vendor-prefixing-dead/.

Sheremetov, D. (2023, April 11). How Much Does It Cost to Make a Mobile App? Onix-Systems.com; Onix. https://onix-systems.com/blog/how-much-does-mobile-app-development-cost

7

Silberschatz, B.,Galvin P.,Gagne G. (2008) Operating System Concepts. 8th Edition.

Team, S. (2022, May 16). Develop Apple Apps: Learn Mac & iOS App Development, Xcode & Swift — SitePoint. Sitepoint.com; SitePoint. https://www.sitepoint.com/develop-apple-apps/

8

The Gaming Room CS 230 Project Software Design Template
$30.00 $24.00