Skip to content
Snippets Groups Projects
Commit bac76994 authored by Hameed Andy's avatar Hameed Andy
Browse files
parents aa944954 039d2f39
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -236,14 +236,17 @@ $\bullet$ Requirement number: FR18\\
The final product shall be a desktop application which will contain a playground with a snake in it. It shall have different theme options and buttons to \textcolor{red}{select different modes to play with. In addition, there should be a help page for a new player in order to get familiar with the commands to play this game}. Also, it shall show the highest score made on the specific device.
\textcolor{red}{Fit Criterion: The game will be ran and checked if all the mentioned options pop up.}
\subsubsection{Style Requirements:\textcolor{red}{NFR2}}
The product should be given a modern style by adding a nice background to it with a user-friendly interface.
\textcolor{red}{Fit Criterion: The game will be ran and beta testing will be performed to check this.}
\subsection{Usability and Humanity Requirements:\textcolor{red}{NFR3}}
The application must be simple for a person aged 10 or above. It should be understandable by any person within the age group who is familiar to the technology. No feature should restrict the player to a non-knowledgeable outcome.
\textcolor{red}{Fit Criterion: People with different age group will be requested to play the game and rate it.}
\subsection{Performance Requirements}
\subsubsection{Speed Requirements:\textcolor{red}{NFR4}}
......@@ -254,61 +257,73 @@ The application must be simple for a person aged 10 or above. It should be under
\item[$\bullet$] The speed for snake should be customizable by the user and should not increase or decrease by itself.
\textcolor{red}{Fit Criterion: The buttons should respond within half a second and modes with different speed will be available.}
\end{description}
\subsubsection{Safety Critical requirements :\textcolor{red}{NFR5}}
The game shall not consume any private data from the user's device.
\textcolor{red}{Fit Criterion: The game can not interfere with user's private data}
\subsubsection{Precision Requirements :\textcolor{red}{NFR6}}
The turn for snake should match with the users key and should be done as precisely as possible.
\textcolor{red}{Fit Criterion: There should be no lag between the press of the button and snake's movement.}
\subsubsection{Reliability and Availability Requirements :\textcolor{red}{NFR7}}
The game should be available 24 hours, 365 days per year to the user.
\textcolor{red}{Fit Criterion: The game can be played any time of the day, on any day.}
\subsubsection{Capacity Requirements :\textcolor{red}{NFR8}}
The game shall not overload the clients device's memory.
\textcolor{red}{Fit Criterion: The game must not take more than 20MB of the users storage.}
\subsection{Operational and Environmental Requirements}
\subsubsection{Expected Physcial environment :\textcolor{red}{NFR9}}
The application is intended to be used anywhere, at any desktop device. It can be used in any climatic condition from harsh summers to chilly winter( given that the device is working as well).
\textcolor{red}{Fit Criterion: The game should work under any environmental conditions.}
\subsubsection{Expected Technological environment :\textcolor{red}{NFR10}}
This application should work on any desktop device as long as the device is working.
\textcolor{red}{Fit Criterion: The game should work on all the working devices supported by the software.}
\subsection{Maintainability and Support Requirements}
\subsubsection{Maintainability :\textcolor{red}{NFR11}}
The application shall require minimum maintenance. Also, the application shall be revised every year. \textcolor{red}{Also, the code should be heavily commented in order to provide ease to the developer/maintainer.}
\textcolor{red}{Fit Criterion: Doxygen commenting should be done to ease maintainability.}
\subsubsection{Portability :\textcolor{red}{NFR12}}
The application is expected to run on Windows, Mac OS and Linux environment.
\textcolor{red}{Fit Criterion: The game must run on MacOD, Windows and Linux.}
\subsection{Security Requirements :\textcolor{red}{NFR13}}
This is an open-ended application. However, the application must not break the privacy policy by interfering with files stored on the desktop.
\textcolor{red}{Fit Criterion: The system can not interfere with user's privacy}
\subsection{Cultural Requirements :\textcolor{red}{NFR14}}
The application will not use any kind of communicating data that will offend any religion, country or user in any way. The product will give a detailed explanation in case of use of any cultural or political symbol.
\textcolor{red}{Fit Criterion: The system must not contain anything that can offend any subject.}
\subsection{Legal Requirements :\textcolor{red}{NFR15}}
The application shall comply with all national and federal laws. In addition, the application must agree to the MIT Open License.
\textcolor{red}{Fit Criterion: The system must obey laws and have an open License.}
\subsection{Health and Safety Requirements :\textcolor{red}{NFR16}}
\textcolor{red}{This software should not affect the health of the user by any means. Color contrast ratio between colors used in the game \textcolor{blue}{ is at a minimum of 4.5:1 according to G18 of the W3C Web Content Accessibility Guidelines 2.0}}
\textcolor{red}{This software should not affect the health of the user by any means. Color contrast ratio between colors used in the game is at a minimum of 4.5:1 according to G18 of the W3C Web Content Accessibility Guidelines 2.0}
\textcolor{red}{Fit Criterion: The system must not harm an individuals health in any way.}
\section{Project Issues}
\subsection{Open Issues}
......@@ -317,6 +332,7 @@ Below is a list of open issues pertaining to the project scope:
\item Investigating and understanding the capabilities of the Pygame library is yet to be completed.
\item Integrating additional features is not decided on as of yet. It is dependant on time constraints.
\item snake-game multiplayer mode is an open issue on the open source project which we may or may not choose to implement as time permits.
\end{itemize}
\subsection{Off-the-Shelf Solutions}
......
No preview for this file type
......@@ -38,6 +38,7 @@
\toprule {\bf Date} & {\bf Version} & {\bf Notes}\\
\midrule
2018-12-04 & 1.0 & Andy worked on 5 - how Intergrated \& System testing helped the process \\
2018-12-05 & 1.0 & Usman worked on Functional Requirements \& tracing the requirements to the test \\
Date 2 & 1.1 & Notes\\
\bottomrule
\end{tabularx}
......@@ -47,10 +48,10 @@ Date 2 & 1.1 & Notes\\
\pagenumbering{arabic}
This document ...
\section{Functional Requirements Evaluation}
Through the strategy of dynamic testing, the main testing for the requirements was done. Most of the functional requirements were met, and the errors that were found during the execution were fixed. The project was demonstrated to different peers, and with the help of their review, the project was molded to achieve all the functional requirements described in SRS. \\
During the testing, we found the food usually appears within the snake's body which violated one our functional requirements, so to resolve the issue we used boundary conditions to limit the appearance of the food within the gameplay screen. After making the snake and food display on the screen, we found a bug that the snake's body is not aligned with the food most of the time, we changed the code, so the game is divided into rows and columns with the block size equal to the size of the snake and food. Splitting the screen in grids made the food to reappear within a grid, and the snake could easily eat it making our further implementation easy.
\section{Nonfunctional Requirements Evaluation}
\subsection{Usability}
......@@ -76,9 +77,15 @@ Similarly, the gameplay was tested and verified by the developers of the softwar
\end{figure}
\section{Automated Testing}
The main testing for this program was done through dynamic testing whcih has been discussed in the requirements. The validation
for the testing of the product was done by peer review, surveys and self-testing. Boundary cases and groups of test cases were used in dynamic testing to visualize the output and fix it.
\section{Trace to Requirements}
To meet the functional and non-functional requirements for the program, the requirements were divided into groups and modular
were created for each group. A module for the high score part was made in which the requirements for displaying the highest score, displaying the highest score and storing it was done.\\
Moreover, a theme module was made to meet the requirements regarding the selection of the theme. The user could select two types of themes from the main menu and then the gameplay would have a background of that color, with different themes the color of the snake changes.\\
To focus on the major requirements, most of the requirements were accomplished in the Gameplay and Interface module. Gameplay module was responsible for all the code in the backend. Requirements controlling the snake, altering the speed for the snake, checking boundary conditions for each level in the game was done in this module.\\
The interface module is more focused on the frontend, it visualizes the backend program to a user-interface which increases usability and allow the user to communicate with the program easily.ted for each group. A module for the highscore part
\section{Trace to Modules}
Integrated testing can visibly be traced back to the modules created. The main interface uses the Interface module along with GUI module for interface text and buttons. It is connected to the highscore module and theme module through the highscore and difficulty level buttons respectively. It also connected to the help module through the Help button. If any of these buttons is clicked and an error is released, the error can be traced back with ease depending on the button that was clicked prior to the malfunction.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment