User Level Definition
Aside from individual Study Buddy scores, Brainiac users are also given points. Points are awarded based on the success of users for a particular game or quiz. That is, the higher the score that a user achieves for a particular quiz, the more points he/she earns.
In turn, users collect as many points as possible in order to unlock certain features of the system, such as new Study Buddies. These features will only be unlocked once a user reaches a certain number of points, and are unavailable to other users who haven't reached the required number of points.
System Level Specification
Function: Award points to users; control availability of additional Study Buddies
Description: Computes the number of points to be awarded based on a user's score; Determine whether a user has reached the required number of points to unlock a particular Study Buddy.
Inputs: Score for a game or quiz, total number of points a user has, maximum number of points that may be awarded for a particular Study Buddy
Source: Internal variables (totalPoints and ratio, an int and a double, respectively)
Outputs: number of points to be awarded for one instance of a game or quiz; a boolean value representing whether the number of points that a user has is sufficient to unlock a Buddy
Action: To compute the number of points to be awarded for a certain game or quiz, the ratio (i.e. the score) is multiplied by the maximum number of points that may be awarded. Each "locked" Study Buddy is associated with a variable representing the minimum number of points required to unlock it. Therefore, to determine whether to unlock a "locked" Study Buddy, compare this variable with the total number of points that a user has. The Buddy will only be unlocked if, and only if, this comparison returns TRUE.
Pre-condition: A user must have played a game or quiz, so that a score will be produced; There must be at least one locked Study Buddy.
Post-condition: The total number points that a user has will be updated after he/she has played a game or quiz;