Mental Math Android Application - PowerPoint PPT Presentation

mental math android application n.
Skip this Video
Loading SlideShow in 5 Seconds..
Mental Math Android Application PowerPoint Presentation
Download Presentation
Mental Math Android Application

play fullscreen
1 / 85
Mental Math Android Application
Download Presentation
Download Presentation

Mental Math Android Application

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Mental Math Android Application Team No. 7 FCR-ARB Presentation 10/17/2018

  2. Overview • Team Status: Strengths, Weaknesses, Concerns, Risks • Operational Concept Development • Win-Win Agreement • Prototype • Architecture • Life Cycle Plan • Feasibility Evidence Document • Quality Focal Point


  4. Team Strengths and Weaknesses

  5. Technical Concerns and Solutions

  6. Operational Risks and Mitigation


  8. The system will be a mobile application, meant to function properly on an Android phone having Android 5.1 or above, and geared toward testing, teaching and sharing mathematical skills. The success-critical stakeholders of this system are: Users Maintainer Owner (Client) Developers System Purpose and Success-Critical Stakeholders

  9. Shared Vision

  10. Capability Goals

  11. Level of Service Goals

  12. Benefits Chain Diagram

  13. System Boundary

  14. Current Business Workflow Diagram

  15. Business Workflow Diagram


  17. Users experience

  18. Security

  19. COTS Implement

  20. Business requirement


  22. Prototype 1: Encryption

  23. Need for Encryption Encryption algorithm is essential for protecting user’s data, such as the scores. There are many valid encryption methods that are independent of the environment. Prototype the encryption algorithm to estimate the feasibility of implementation.

  24. Implementation: Part 1 Hashing involves a small amount of cryptography and is the most commonly used method of encrypting data. Hash functions deterministically map arbitrary pieces of data into fixed-length values. The scores are encrypted before being stored in the local file. The encrypted scores are then decrypted and uploaded to Google leaderboard if the user has signed in with their Google account.

  25. Implementation: Part 2 Encrypt an integer to a unique 32-character long string. - Convert the integer to an array of 8 single digit number. - Use 4 randomized number and letter to denote each number’s binary value. The integer represent the value of time spent on a level, and should be less than 8 digits (8 digit integer in millisecond is 2.8 hours). The encrypted string can be decrypted back to the original value.

  26. Demonstration

  27. Examples - Randomly generate an integer less than 8 digits.

  28. Business Value and Risk Mitigation Encryption user data has a high business value: - Maintain the integrity of the data. - Prevent the users from tempering with game file. Prototyping encryption algorithm reduces risks: - Gaining information about the feasibility of implementing such feature. - Preventing the user falsifying their score on the leaderboard.

  29. Prototype 2: Progress Page

  30. Why do we need a Progress Page? • It is critically important for kids to track their progress to achieve maximum possible results. • They can make a schedule according to the statistics being provided to them. If they are lacking in some skill or say some operator basics, they can limit and manage their time accordingly. • This is more of how much you have achieved and not the report. because if progress is not related to levels of achievement this. will do a dis-service to young people.

  31. Progress Page

  32. Flow • Chart

  33. What else are we planning to add? • Total time in the game. • Last played level in each operator. • How far are you from completing the last level played. • Best time in each level.

  34. Prototype 3: Flavors with Refactored Code (Screenshots)

  35. Flavors • Premium Version • Free Version

  36. Improving Readability of Code • Changed variable, method and class names according industry standards for naming conventions • Improved readability of old code. • Will help for team collaboration as variable names are self explanatory and team members will understand what they are working with • Helps new people who will be working on the project in future

  37. Definition of Code Refactoring • Code refactoring is the process of changing a computer program's internal structure without modifying its external functional behavior or existing functionality, in order to improve internal non-functional properties of the software, for example, to improve code readability, to simplify code structure.

  38. Before… All the app pages were inside one single activity

  39. After… POJO Class • POJO Class

  40. We have created a Pojo class which has Game variables shared across all the app pages. The game parameters class follows Singleton Design pattern which means we can create only 1 object of the class The first object of this class is made in MainActivity, later all the activities use the same object, whenever any activity updates the member variable of the object it is accessed across all activities.

  41. Integration is easy OOPS concepts. Code follows industry standards Code is extendible in future Debugging became easy Structured, readable Advantages of Refactoring the code

  42. Advantages of Refactoring the code (contd.) • If one page of the app is hanging then we know where the problem is.

  43. Future Work


  45. Context Diagram

  46. Use-Case Diagram

  47. Hardware Class Diagram

  48. Software Class Diagram


  50. Life Cycle Plan Overview Purpose: The purpose of LCP is to layout the plan for the project ahead of time so that the risk of project incompletion is mitigated. LCP helps us keep all the success critical stakeholders on the same page. LCP helps in evaluating risks at each phase. Written goals to be delivered in each phase. Team: 8 members Duration : 12 weeks or 1 semester