Skip to content

Commit

Permalink
Chore: Correcting errors in requirements documentation. Mainly errors…
Browse files Browse the repository at this point in the history
… related to using "will" instead of "shall".
  • Loading branch information
UO282104 committed Feb 16, 2024
1 parent 0f9af18 commit 8f35335
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 58 deletions.
28 changes: 14 additions & 14 deletions docs/src/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ ifndef::imagesdir[:imagesdir: ../images]
RTVE has hired the company HappySw, composed of students from the Oviedo School of Software Engineering, to develop a new experimental version of the quiz show Saber y Ganar. This application will be called WIQ, where users will be able to register and log in to play. The application will consist of answering questions of different types generated with Wikidata. For each question answered correctly, points will be obtained.

=== Requirements Overview
* The system will provide non-registered users with the option to sign up.
* The system will provide unidentified users with the option to log in.
* The system can only be used by registered users.
* The system will have a game mode with 9 rounds.
* In each round, the system will generate a question.
* In each round, the system will generate four answers, with only one being correct.
* The system will offer registered users access to the number of games they have played.
* The system will offer registered users access the number of questions they have answered correctly.
* The system will offer registered users access the number of questions they have answered incorrectly.
* The system will offer registered users access the time they have spent within the system.
* The system will offer registered users access the ranking of the game.
* The system will set a time limit for registered users to respond to each question.
* The system shall provide non-registered users with the option to sign up.
* The system shall provide unidentified users with the option to log in.
* The system shall only be used by registered users.
* The system shall have a game mode with 9 rounds.
* In each round, the system shall generate a question.
* In each round, the system shall generate four answers, with only one being correct.
* The system shall offer registered users access to the number of games they have played.
* The system shall offer registered users access the number of questions they have answered correctly.
* The system shall offer registered users access the number of questions they have answered incorrectly.
* The system shall offer registered users access the time they have spent within the system.
* The system shall offer registered users access the ranking of the game.
* The system shall set a time limit for registered users to respond to each question.

See the complete functional requirements in the xref:#section-annex[Annex] of the documentation.

Expand All @@ -25,12 +25,12 @@ See the complete functional requirements in the xref:#section-annex[Annex] of th
[options="header",cols="1,3"]
|===
|Goal|Description
| Functional suitability | The system must fulfill its intended purpose effectively and efficiently, allowing users to register, log in, play the quiz, and access their historical data.
| Functional suitability | The system shall fulfill its intended purpose effectively and efficiently, allowing users to register, log in, play the quiz, and access their user statistics.
| Security | The system must prioritize user data security. It must implement robust authentication mechanisms for user registration and login. The API access points for user information and generated questions must be secured with proper authorization.
| Reliability | The system should be reliable in generating questions from Wikidata, ensuring that questions are accurate and diverse. The system must handle user registrations, logins, and game data storage without errors.
| Availability | The system must be available 99.99% of the time a user tries to access it.
| Maintainability | The system must be designed and implemented in a way that facilitates easy maintenance and updates.
| Performance efficiency | The system must deliver optimal performance, ensuring responsive interactions for users. The automatic generation of questions from Wikidata and the real-time gameplay must be efficient. The system must handle 20 concurrent users.
| Performance efficiency | The system must deliver optimal performance, ensuring responsive interactions for users. The automatic generation of questions from Wikidata and the real-time gameplay must be efficient. The system must handle 3000 (temporal datum) concurrent users.
| Usability | The system must provide a user-friendly interface, making it easy for users to register, log in, and play the game. The system learning time for a user should be less than 4 hours.
| Compatibility | The system must be compatible with various web browsers and devices, ensuring a seamless experience for users regardless of their choice of platform. It has to be well-optimized for different screen sizes and functionalities.
| Transferability | The system must allow for easy transfer of user data and game-related information through its APIs.
Expand Down
22 changes: 11 additions & 11 deletions docs/src/10_quality_requirements.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,20 @@ To obtain a measurable system response to stimulus corresponding to the various
[options="header",cols="1,3,1"]
|===
|Quality attribute|Scenario|Priority
| Functional suitability | Users should be able to register, log in, play the quiz, and access historical data without encountering errors or glitches. | High, Medium
| Security | User data must be securely handled. Robust authentication mechanisms should be in place for user registration and login. API access points for user information and generated questions must be secured with proper authorization. | High, High
| Reliability | The system should reliably generate accurate and diverse questions from Wikidata. User registrations, logins, and game data storage should be handled without errors. | High, Medium
| Availability | The system must be available 99.99% of the time when a user attempts to access it. | High, High
| Performance efficiency | The system must deliver optimal performance, ensuring responsive interactions for users. It should efficiently generate questions from Wikidata and handle real-time gameplay with up to 20 concurrent users. | High, High
| Usability | The system must provide a user-friendly interface, allowing users to register, log in, and play the game with a learning time of less than 4 hours. | High, Medium
| Compatibility | The system must be compatible with various web browsers and devices, providing a seamless experience for users regardless of their choice of platform. It should be well-optimized for different screen sizes and functionalities. | High, Medium
| Transferability | The system must allow for easy transfer of user data and game-related information through its APIs. | Medium, High
| Testability | The unit tests must have at least 90% coverage. | High, Medium
| Functional suitability | Users shall be able to register, log in, play the quiz, and access historical data without encountering errors or glitches. | High, Medium
| Security | User data shall be securely handled. Robust authentication mechanisms shall be in place for user registration and login. API access points for user information and generated questions shall be secured with proper authorization. | High, High
| Reliability | The system shall reliably generate accurate and diverse questions from Wikidata. User registrations, logins, and game data storage shall be handled without errors. | High, Medium
| Availability | The system shall be available 99.99% of the time when a user attempts to access it. | High, High
| Performance efficiency | The system shall deliver optimal performance, ensuring responsive interactions for users. It shall efficiently generate questions from Wikidata and handle real-time gameplay with up to 20 concurrent users. | High, High
| Usability | The system shall provide a user-friendly interface, allowing users to register, log in, and play the game with a learning time of less than 4 hours. | High, Medium
| Compatibility | The system shall be compatible with various web browsers and devices, providing a seamless experience for users regardless of their choice of platform. It shall be well-optimized for different screen sizes and functionalities. | High, Medium
| Transferability | The system shall allow for easy transfer of user data and game-related information through its APIs. | Medium, High
| Testability | The unit tests shall have at least 75% coverage. | High, Medium
|===
==== Change Scenarios
[options="header",cols="1,3,1"]
|===
|Quality attribute|Scenario|Priority
| Maintainability | The system should be designed and implemented in a way that allows for easy maintenance and updates. | High, Medium
| Maintainability | The code of the system should be well-documented, and modular, allowing for efficient troubleshooting and modifications. | High, Medium
| Maintainability | The system shall be designed and implemented in a way that allows for easy maintenance and updates. | High, Medium
| Maintainability | The code of the system shall be well-documented, and modular, allowing for efficient troubleshooting and modifications. | High, Medium
|===
65 changes: 32 additions & 33 deletions docs/src/13_annex.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,76 +5,75 @@ ifndef::imagesdir[:imagesdir: ../images]
=== Functional Requirements
==== Users Sign up.
[none or no-bullet]
* FR-USU 1. The system will offer to an unregistered user a registration form.
* FR-USU 2. The system will request the necessary data to register the new user.
* FR-USU 1. The system shall allow an unregistered user to register in the application.
* FR-USU 2. The system shall request the necessary data to register the new user.
[none or no-bullet]
** FR-USU 2.1. The system will request the following data to register the new user:
** FR-USU 2.1. The system shall request the following mandatory data to register the new user:
[none or no-bullet]
*** FR-USU 2.1.1. Username.
*** FR-USU 2.1.2. Email address.
*** FR-USU 2.1.3. Password.
*** FR-USU 2.1.4. All data fields are mandatory.
* FR-USU 3. When any value entered by the new user is invalid, the user will receive a message notifying the error and will not be able to register.
* FR-USU 4. When all the values entered by the new user are valid, the system will check if the user is already registered in the persistence system.
* FR-USU 3. The system shall not allow the user to be registered when any value entered by the new user is invalid.
* FR-USU 4. When all the values entered by the new user are valid, the system shall check if the user is already registered in the persistence system.
[none or no-bullet]
** FR-USU 4.1. When a user with the same data is already found in the persistence system, the user will not be able to create a new account since it already exists.
** FR-USU 4.1. When a user with the same data is already found in the persistence system, the user shall not be able to create a new account since it already exists.
** FR-USU 4.2. When no user matching the data is found in the persistence system.
[none or no-bullet]
*** FR-USU 4.2.1. The new user will be registered in the system.
*** FR-USU 4.2.1. The new user shall be registered in the system.

==== Users Log in.
[none or no-bullet]
* FR-ULI 1. The system must allow an unidentified user to log in.
[none or no-bullet]
** FR-ULI 1.1. The system will request the email address as the user identifier.
** FR-ULI 1.1. The system shall request the email address as the user identifier.
[none or no-bullet]
*** FR-ULI 1.1.1. The system must check that its format is valid.
*** FR-ULI 1.1.2. It is a mandatory field.
** FR-ULI 1.2. The system will request the user's password.
** FR-ULI 1.2. The system shall request the user's password.
[none or no-bullet]
*** FR-ULI 1.2.1. It is a mandatory field.
** FR-ULI 1.3. The system will automatically validate the entered data to verify when it corresponds to a registered user account.
** FR-ULI 1.3. The system shall automatically validate the entered data to verify when it corresponds to a registered user account.
[none or no-bullet]
*** FR-ULI 1.3.1. When the user is not stored in the persistence system, an error message will be displayed.
*** FR-ULI 1.3.2. When the user exists in the persistence system, but the passwords do not match, a message will be displayed to the user notifying them of the error.
*** FR-ULI 1.3.3. When the user is stored in the persistence system and the passwords match, the user will be logged in.
*** FR-ULI 1.3.1. When the user is not stored in the persistence system, an error message shall be displayed.
*** FR-ULI 1.3.2. When the user exists in the persistence system, but the passwords do not match, a message shall be displayed to the user notifying them of the error.
*** FR-ULI 1.3.3. When the user is stored in the persistence system and the passwords match, the user shall be logged in.
* FR-ULI 2. The system must allow users who are logged in to log out.

==== Data management by the user.
[none or no-bullet]
* FR-DMU 1. The system will allow all registered users to access their historical data from their participation.
* FR-DMU 1. The system shall allow all registered users to access their historical data from their participation.
[none or no-bullet]
** FR-DMU 1.1. Registered users will be able to access the number of games they have played.
** FR-DMU 1.2. Registered users will be able to access the number of questions they have answered correctly.
** FR-DMU 1.3. Registered users will be able to access the number of questions they have answered incorrectly.
** FR-DMU 1.4. Registered users will be able to access the time they have spent within the system.
** FR-DMU 1.5. Registered users will be able to access the ranking of the game.
** FR-DMU 1.1. Registered users shall be able to access the number of games they have played.
** FR-DMU 1.2. Registered users shall be able to access the number of questions they have answered correctly.
** FR-DMU 1.3. Registered users shall be able to access the number of questions they have answered incorrectly.
** FR-DMU 1.4. Registered users shall be able to access the time they have spent within the system.
** FR-DMU 1.5. Registered users shall be able to access the ranking of the game.

==== Play to WIQ.
[none or no-bullet]
* FR-PWIQ 1. The system will only allow registered users to play the WIQ game.
* FR-PWIQ 1. The system shall only allow registered users to play the WIQ game.
* FR-PWIQ 2. The game consists of nine rounds.
[none or no-bullet]
** FR-PWIQ 2.1. In each round, the system will automatically generate a question to the registered user.
** FR-PWIQ 2.2. In each round, the system will provide the registered user with four automatically generated possible answers.
** FR-PWIQ 2.3. In each round, there will always be only one correct answer.
** FR-PWIQ 2.4. The system will automatically end the game after completing the ninth round.
** FR-PWIQ 2.1. In each round, the system shall automatically generate a question to the registered user.
** FR-PWIQ 2.2. In each round, the system shall provide the registered user with four automatically generated possible answers.
** FR-PWIQ 2.3. In each round, there shall always be only one correct answer.
** FR-PWIQ 2.4. The system shall automatically end the game after completing the ninth round.
* FR-PWIQ 3. The registered user must respond to the question before the specified time expires.
[none or no-bullet]
** FR-PWIQ 3.1. When the specified time has not ended, and the registered user has provided an answer:
[none or no-bullet]
*** FR-PWIQ 3.1.1. The system will check if the answer is correct.
*** FR-PWIQ 3.1.1. The system shall check if the answer is correct.
[none or no-bullet]
**** FR-PWIQ 3.1.1.1. When the answer is correct:
[none or no-bullet]
***** FR-PWIQ 3.1.1.1.1. The registered user will earn 10 points.
***** FR-PWIQ 3.1.1.1.2. When the registered user is in the ninth round, the system will end the game.
***** FR-PWIQ 3.1.1.1.3. When the registered user is not in the ninth round, the system will move to the next round.
***** FR-PWIQ 3.1.1.1.1. The registered user shall earn 10 points.
***** FR-PWIQ 3.1.1.1.2. When the registered user is in the ninth round, the system shall end the game.
***** FR-PWIQ 3.1.1.1.3. When the registered user is not in the ninth round, the system shall move to the next round.
**** FR-PWIQ 3.1.1.2. When the answer is incorrect:
[none or no-bullet]
***** FR-PWIQ 3.1.1.2.1. When the registered user is in the ninth round, the system will end the game.
***** FR-PWIQ 3.1.1.2.2. When the registered user is not in the ninth round, the system will move to the next round.
***** FR-PWIQ 3.1.1.2.1. When the registered user is in the ninth round, the system shall end the game.
***** FR-PWIQ 3.1.1.2.2. When the registered user is not in the ninth round, the system shall move to the next round.
** FR-PWIQ 3.2. When the specified time has ended:
[none or no-bullet]
*** FR-PWIQ 3.2.1. When the registered user is in the ninth round, the system will end the game.
*** FR-PWIQ 3.2.2. When the registered user is not in the ninth round, the system will move to the next round.
*** FR-PWIQ 3.2.1. When the registered user is in the ninth round, the system shall end the game.
*** FR-PWIQ 3.2.2. When the registered user is not in the ninth round, the system shall move to the next round.

0 comments on commit 8f35335

Please sign in to comment.