|
65 | 65 | \newcounter{reqnum} %Requirement Number |
66 | 66 | \newcommand{\rthereqnum}{P\thereqnum} |
67 | 67 | \newcommand{\rref}[1]{R\ref{#1}} |
| 68 | +\newcounter{nfrnum} %Nonfunctional Requirement Number |
| 69 | +\newcommand{\nfrref}[1]{NFR\ref{#1}} |
68 | 70 | \newcounter{lcnum} %Likely change number |
69 | 71 | \newcommand{\lthelcnum}{LC\thelcnum} |
70 | 72 | \newcommand{\lcref}[1]{LC\ref{#1}} |
@@ -1464,6 +1466,44 @@ \subsection{Nonfunctional Requirements} |
1464 | 1466 | Other non-functional requirements that are a priority are: correctness, |
1465 | 1467 | understandability, portability, reliability, and maintainability. |
1466 | 1468 |
|
| 1469 | +\subsubsection{Performance Requirements} |
| 1470 | + |
| 1471 | +\begin{itemize} |
| 1472 | +\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}). |
| 1473 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_ComputationMemory}:] Consume no more than 200 megabytes of memory at any point during the simulation. |
| 1474 | +\end{itemize} |
| 1475 | + |
| 1476 | +\subsubsection{Understandability Requirements} |
| 1477 | + |
| 1478 | +\begin{itemize} |
| 1479 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_APIDocumentation}:] Provide interface documentation generated from the code. |
| 1480 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_Examples}:] Include documentation with examples demonstrating use of the system. |
| 1481 | +\end{itemize} |
| 1482 | + |
| 1483 | +\subsubsection{Portability Requirements} |
| 1484 | + |
| 1485 | +\begin{itemize} |
| 1486 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_DesktopOS}:] Run on desktop operating systems Windows, macOS, and Linux. |
| 1487 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_MobileOS}:] Run on mobile operating systems iOS and Android. |
| 1488 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_GameConsoles}:] Run on the Nintendo Wii game console. |
| 1489 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_LanguageCompatibility}:] Provide a C99-compatible\cite{C99ISO} interface. |
| 1490 | +\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. |
| 1491 | +\end{itemize} |
| 1492 | + |
| 1493 | +\subsubsection{Reliability Requirements} |
| 1494 | + |
| 1495 | +\begin{itemize} |
| 1496 | +\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. |
| 1497 | +\end{itemize} |
| 1498 | + |
| 1499 | +\subsubsection{Maintainability Requirements} |
| 1500 | + |
| 1501 | +\begin{itemize} |
| 1502 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_CleanCode}:] Produce no warning messages when building the package. |
| 1503 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_UniformCode}:] Adhere to a consistent code formatting style. |
| 1504 | +\item[NFR\refstepcounter{nfrnum}\thenfrnum \label{NFR_PredictableCode}:] Adhere to the language formatting guide if one exists. |
| 1505 | +\end{itemize} |
| 1506 | + |
1467 | 1507 |
|
1468 | 1508 | %%%%%%%%%%%%%%%%%%%%%%%% |
1469 | 1509 | % |
|
0 commit comments