CS 230 Project Software Design - Tolentino Project 2

docx

School

Southern New Hampshire University *

*We aren’t endorsed by this school

Course

230

Subject

Computer Science

Date

Feb 20, 2024

Type

docx

Pages

8

Uploaded by UltraCamelMaster345

Report
Draw It or Lose It CS 230 Project Software Design Template Version 1.0
Table of Contents CS 230 Project Software Design Template 1 Table of Contents 2 Document Revision History 2 Executive Summary 3 Requirements 3 Design Constraints 3 System Architecture View 3 Domain Model 3 Evaluation 4 Recommendations 5 Document Revision History Version Date Author Comments 1.0 9 Jul 2023 Raphael Tolentino Changes made to GameService java. Implemented Singleton pattern. Implemented iterators for addGame and getGame methods to ensure only 1 instance of each class 1.1 16 Jul 2023 Raphael Tolentino Added new classes Entity, TeamService, PlayerService. Entity will be parent class for Player, Game, and Team. Added Executive Summary, updated Design constraints and requirements. 2
Executive Summary The Gaming Room currently has an app currently only available on Android called Draw It or Lose it. The company would like to develop a web-based game that serves multiple platforms based off the current game. The game revolves around multiple teams and players guessing what is being drawn by the other team of players. The Gaming Room staff needs assistance in setting up the correct app environment for the game to function on a web-based platform and consulted our company to facilitate its development. Requirements - Games will consist of four rounds of 1-minute each. - Drawings need to be completed at the 30-second mark. - Game pulls from an image library of stock drawings. - Allows the competing team to “steal” the guess if the guessing team does not guess the puzzle on time. - Client wants to streamline development into the web-based version. Design Constraints - Needs to have one or more teams - Each team needs to support multiple players assigned to it - Game and Team Names must be unique - Create unique identifiers for each game instance, team, or player to prevent memory leak 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 ProgramDriver class contains main() method and uses Directed Association with the SingletonTester to test if there’s already an instance of GameService. Entity class is the parent class to Game, Team, and Player Classes. Game, Team, and Player all inherity Entity’s required attributes. It goes from Game > Team > Player, which means a Player cannot have a Team, but a Team can have a Player, and a Team cannot have a Game, but the Game can have a Team. A Game cannot have a GameService but a GameService can have a Game. GameService must only have one instance of each game running at any time. Each Game can only have one unique Team at any time. Each Team can only have one of Each individual Player at one time. 3
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help
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. 4
Development Requirements Mac Linux Windows Mobile Devices Server Side Pros: - Offers server based environments - Proven security suites - Excellent technical support and products available Cons: - Expensive licensing - Requires Apple products using macOS - Reliant on company to provide updates Pros: - Open-source software enables faster updates - Well supported by many different web browsers - Community updates security gaps, leading to stronger security updates Cons: - Does not offer the same level of software support as the other OSs - Few software and apps available Pros: - Large range of software support - Widely popular across the globe, supporting many different hardware - Updates are quick because of large userbase Cons: - Closed source - Reliant on company to provide updates - Less secure than both Linux and Mac Pros: - Stores persistent date - User cannot interact or see code Cons: - Server would need to integrate cloud services or physical servers Client Side Pros: - Easy cross- browser testing software - Wide range of supported web browsers Cons: - Requires apple product with macOS Pros: - Wide range of supported web browsers - Quick development and deployment - Accommodates tree-file structure Cons: - Updates can be slow due to reliance on open source - Requires expert level understanding Pros: - Most users are familiar with using Windows - Easy cross platform testing except across macOS - Wide range of supported web browsers Cons: - More difficult to test for MacOS browser - Very susceptible to viruses Pros: - Wider reach Cons: - Poor security - Longer dev time - Difficulty testing other environments Development Tools Pros: - Can use Virtual Machine to run both Windows and Linux <Identify the relevant programming languages and tools (IDEs and <Identify the relevant programming languages and tools (IDEs and <Identify the relevant programming languages and tools (IDEs and other 5
Development Requirements Mac Linux Windows Mobile Devices Server Side Pros: - Offers server based environments - Proven security suites - Excellent technical support and products available Cons: - Expensive licensing - Requires Apple products using macOS - Reliant on company to provide updates Pros: - Open-source software enables faster updates - Well supported by many different web browsers - Community updates security gaps, leading to stronger security updates Cons: - Does not offer the same level of software support as the other OSs - Few software and apps available Pros: - Large range of software support - Widely popular across the globe, supporting many different hardware - Updates are quick because of large userbase Cons: - Closed source - Reliant on company to provide updates - Less secure than both Linux and Mac Pros: - Stores persistent date - User cannot interact or see code Cons: - Server would need to integrate cloud services or physical servers Client Side Pros: - Easy cross- browser testing software - Wide range of supported web browsers Cons: - Requires apple product with macOS Pros: - Wide range of supported web browsers - Quick development and deployment - Accommodates tree-file structure Cons: - Updates can be slow due to reliance on open source - Requires expert level understanding Pros: - Most users are familiar with using Windows - Easy cross platform testing except across macOS - Wide range of supported web browsers Cons: - More difficult to test for MacOS browser - Very susceptible to viruses Pros: - Wider reach Cons: - Poor security - Longer dev time - Difficulty testing other environments - XCode makes it easier to setup environment for devs Cons: other tools) that are used to build this type of software for deploying on other tools) that are used to build this type of software for deploying on tools) that are used to build this type of software for deploying on Mobile Devices.> 6
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help
Development Requirements Mac Linux Windows Mobile Devices Server Side Pros: - Offers server based environments - Proven security suites - Excellent technical support and products available Cons: - Expensive licensing - Requires Apple products using macOS - Reliant on company to provide updates Pros: - Open-source software enables faster updates - Well supported by many different web browsers - Community updates security gaps, leading to stronger security updates Cons: - Does not offer the same level of software support as the other OSs - Few software and apps available Pros: - Large range of software support - Widely popular across the globe, supporting many different hardware - Updates are quick because of large userbase Cons: - Closed source - Reliant on company to provide updates - Less secure than both Linux and Mac Pros: - Stores persistent date - User cannot interact or see code Cons: - Server would need to integrate cloud services or physical servers Client Side Pros: - Easy cross- browser testing software - Wide range of supported web browsers Cons: - Requires apple product with macOS Pros: - Wide range of supported web browsers - Quick development and deployment - Accommodates tree-file structure Cons: - Updates can be slow due to reliance on open source - Requires expert level understanding Pros: - Most users are familiar with using Windows - Easy cross platform testing except across macOS - Wide range of supported web browsers Cons: - More difficult to test for MacOS browser - Very susceptible to viruses Pros: - Wider reach Cons: - Poor security - Longer dev time - Difficulty testing other environments - App Linux.> Windows.> 7
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.> 2. Operating Systems Architectures : <Describe the details of the chosen operating platform architectures.> 3. Storage Management : <Identify an appropriate storage management system to be used with the recommended operating platform.> 4. Memory Management : <Explain how the recommended operating platform uses memory management techniques for the Draw It or Lose It software.> 5. 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).> 6. 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.> 8