diff --git a/CaseStudies/gamephys/docs/SRS/GamePhysicsSRS.pdf b/CaseStudies/gamephys/docs/SRS/GamePhysicsSRS.pdf index 7718b9d7..200ec9dd 100644 Binary files a/CaseStudies/gamephys/docs/SRS/GamePhysicsSRS.pdf and b/CaseStudies/gamephys/docs/SRS/GamePhysicsSRS.pdf differ diff --git a/CaseStudies/gamephys/docs/SRS/GamePhysicsSRS.tex b/CaseStudies/gamephys/docs/SRS/GamePhysicsSRS.tex index 94bdea13..292b00b4 100644 --- a/CaseStudies/gamephys/docs/SRS/GamePhysicsSRS.tex +++ b/CaseStudies/gamephys/docs/SRS/GamePhysicsSRS.tex @@ -65,6 +65,8 @@ \newcounter{reqnum} %Requirement Number \newcommand{\rthereqnum}{P\thereqnum} \newcommand{\rref}[1]{R\ref{#1}} +\newcounter{nfrnum} %Nonfunctional Requirement Number +\newcommand{\nfrref}[1]{NFR\ref{#1}} \newcounter{lcnum} %Likely change number \newcommand{\lthelcnum}{LC\thelcnum} \newcommand{\lcref}[1]{LC\ref{#1}} @@ -1464,6 +1466,44 @@ \subsection{Nonfunctional Requirements} Other non-functional requirements that are a priority are: correctness, understandability, portability, reliability, and maintainability. +\subsubsection{Performance Requirements} + +\begin{itemize} +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_ComputationTime}:] Calculate a step of the simulation involving 1000 rigid bodies in no more than $\frac{1}{60}s$ on minimum hardware (\nfrref{NFR_MinimumRequirements}). +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_ComputationMemory}:] Consume no more than 200 megabytes of memory at any point during the simulation. +\end{itemize} + +\subsubsection{Understandability Requirements} + +\begin{itemize} +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_APIDocumentation}:] Provide interface documentation generated from the code. +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_Examples}:] Include documentation with examples demonstrating use of the system. +\end{itemize} + +\subsubsection{Portability Requirements} + +\begin{itemize} +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_DesktopOS}:] Run on desktop operating systems Windows, macOS, and Linux. +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_MobileOS}:] Run on mobile operating systems iOS and Android. +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_GameConsoles}:] Run on the Nintendo Wii game console. +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_LanguageCompatibility}:] Provide a C99-compatible\cite{C99ISO} interface. +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_MinimumRequirements}:] Meet \nfrref{NFR_ComputationTime} on a dual-core 1.5 gigahertz processor with 2 gigabytes of memory available. +\end{itemize} + +\subsubsection{Reliability Requirements} + +\begin{itemize} +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_CrashAdverse}:] No step of the simulation should cause the calling program to terminate while executing inside the library. +\end{itemize} + +\subsubsection{Maintainability Requirements} + +\begin{itemize} +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_CleanCode}:] Produce no warning messages when building the package. +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_UniformCode}:] Adhere to a consistent code formatting style. +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_PredictableCode}:] Adhere to the language formatting guide if one exists. +\end{itemize} + %%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/CaseStudies/gamephys/docs/SRS/README.md b/CaseStudies/gamephys/docs/SRS/README.md index aed4e912..f76a0d3a 100644 --- a/CaseStudies/gamephys/docs/SRS/README.md +++ b/CaseStudies/gamephys/docs/SRS/README.md @@ -4,6 +4,9 @@ Software Requirements Specification (SRS) Revision Notes -------------- +**05/09/2018** +- Expanded nonfunctional requirements to include what some may be instead just the priority of certain categories of nonfunctional requirements. + **07/06/2016** - Tidied up the formatting of models and definitions to make it more readable and similar to other SRSs. - Changed goal statements and the corresponding instance models quite a bit. diff --git a/CaseStudies/gamephys/refs/Physics_Game_Library.bib b/CaseStudies/gamephys/refs/Physics_Game_Library.bib index acfd637c..9a72b31e 100644 --- a/CaseStudies/gamephys/refs/Physics_Game_Library.bib +++ b/CaseStudies/gamephys/refs/Physics_Game_Library.bib @@ -107,3 +107,10 @@ @book{Bueche1986 Publisher = {McGraw Hill}, Title = {Introduction to Physics for Scientists}, Year = {1986}} + +@techreport{C99ISO, + Author = {ISO}, + Institution = {International Organization of Standards}, + Month = {December}, + Title = {ISO/IEC 9899:1999 - Programming Languages -- C}, + Year = {1999}}