The Great Race (Group 11)
High Level Design
COP 4331C Fall 2014
High-Level Architecture:
- The User is the sole user of the application with the capability of touch interface. The user will be the one accessing the Main Application.
- The Main Application is the biggest component of the system. Once the User has started up the Main Application, he or she will choose whether to start a game, review a game or to join a game. If the user decided to start a game, he/she will be asked to create a game ID and it will be sent to the server so that users that wish to join can be verified beforehand. If the user decided to join a game he/she will be asked for a game ID and after submission it will be checked with the corresponding game ID that was sent to the database from the game master’s main application. Once a game is started by the game master the main application will keep track of each user’s locations with the map handler session handler and google API. Once the game is over it will be sent to the database to be saved and a link to the game titled with the game ID will be saved on the main application. If the user decided to review a game, he/she will click on the link and the main application will request the desired game information from the database. Then the main application will show the user the information provided by the database.
- The Database is the second most important component of the system. It will keep track of game id and store all previous games that have been played by various players. The database acts as the security of the system and will be programmed using MySQL and PHP. The database will store game ID’s and which are active and which are saved for later viewing.
- The map handler, session handler, and Google API are all interfaces used by the main application via the code. They are used to make the game work by supplying the GPS information and the methods for storing and tracking the users via that information.
Design Issues:
Design Issues
- Software Reusability issues include:
- Correct implementation of Android API and Google Maps API
- Many classes will have only one instance of said class
- Reoccurring methods must have efficient coding and performance times
- Application Maintainability issues include:
- Keeping database and application software up to data
- Code must be easily understandable, for adding additional features
- Application Testability issues include:
- Simulation testing will be limited in how much it helps for core functionality
- Need to do end-to-end testing for core functionality
- Application Performance issues include:
- Must run fast enough so that players can keep track of each other on map
- Cell service connection is needed keep application from forcing player to leave sessions
- Application Portability issues include:
- Only needs to run on the Android, so biggest problem is if new/old Android version are unable to efficiently communicate with server.
- Application Safety issues include:
- Application must stop tracking player when player isn’t playing
Prototyping
- Prototype to evaluate the core functionality of the application
- Then various prototypes of application with increased functionality
Technical Difficulties
- Expect technical difficulties in implementing the map to display GPS location at first as we learn to use Google and Android API this will naturally solve itself.
- Expect difficulties in difference between simulation testing and end-to-end testing, this means that the application will require real scenario testing in order to accurately determine if it works as intended.
- Expect difficulties in communication between application and database, use simulator testing to work out the bugs before end-to-end testing.
Architecture
- Incremental Phase Architecture provides the best design strategy for the application, because of the basic design of the project revolving around the GPS and map drawing. Once these core functions of the application are running smoothly, the ability to communicate to the server is next step. After that the program just requires basic functions in order to make it an easy and enjoyable experience for the user. Although with this method little feedback on our product can be given during the early phases, as well as a fully ready product could take more time than anticipated.