\section{Correspondence between requirements and design}

This chapter describes the correspondence between requirements found in SRS document and design decision found in this document.

\textit{Requirement} defines the identification and name of the requirement. \textit{Priority} defines the priority of the requirement (E = essential, C = conditional, O = optional), \textit{Design status} describes whether the requirement is designed and going to be implemented and \textit{Chapters} list the chapters of this document related to the particular requirement.

Possible design statuses include:
\begin{itemize}
\item Designed: The requirement is going to be supported
\item Designed, found in prototype: The requirement is going to be supported and the prototype already supports it
\item Not going to be implemented: The requirement is not going to be supported
\end{itemize}

\subsection{Model requirements}

\begin{tabular}[]{| p{4cm}| p{1.5cm} | p{5cm} | p{2cm}| }
\hline
\textbf{Requirement} & \textbf{Priority} & \textbf{Design status} & \textbf{Chapters} \\
\hline
M1: Using models & E & Designed & 4.1\\
\hline
M2: Defining variables whose values are taken from data & E & Designed & 4.1 \\
\hline
M3: Defining parameters whose values are not taken from data & E & Designed & 4.1 \\
\hline
M4: Defining dependencies & E & Designed & 4.1 \\
\hline
M5: Equations & E & Designed & 4.1 \\
\hline
M6: Defining variable/parameter repetition structures & E & Designed & 4.1 \\
\hline
M7: Defining spatial relations & E & Designed & 4.1 \\
\hline
M9: Reading models from text files & E & Designed & 4.1 \\
\hline
M10: The distributions used & E & Only distributions found in the NAG library are supported. & 5 \\
\hline
M11: Distributions defined by the user & C & Designed & 4.3, 8.8 \\
\hline
M12: Defining distributions & E & Designed & 4.1 \\
\hline
\end{tabular}

\subsection{Data requirements}

\begin{tabular}[]{| p{4cm}| p{1.5cm} | p{5cm} | p{2cm}| }
\hline
\textbf{Requirement} & \textbf{Priority} & \textbf{Design status} & \textbf{Chapters} \\
\hline
D1: The general data format & E & Designed & \\
\hline
D2: Data not available & E & Designed & 9.1 \\
\hline
D3: Invalid data & E & Designed & 9.1 \\
\hline
\end{tabular}

\subsection{Simulation requirements}

\begin{tabular}[]{| p{4cm}| p{1.5cm} | p{5cm} | p{2cm}| }
\hline
\textbf{Requirement} & \textbf{Priority} & \textbf{Design status} & \textbf{Chapters} \\
\hline
S1: The algorithm used & E & Designed, found in prototype & 8.1, 6.1 \\
\hline
S2: Choice of algorithm & C & Not going to be implemented & 8.1 \\
\hline
S3: Setting the number of updates & E & Designed (except when related to blocks), found in prototype & 8.1, 6.1 \\
\hline
S4: Setting the number of burn-in iterations & E & Designed, found in prototype & 4.2.1 \\
\hline
S5: Setting the thinning factor & E & Designed, found in prototype & 4.2.1 \\
\hline
S6: Setting the blocks  & C & Not going to be implemented & -\\
\hline
S7: Setting the update strategy & C & Designed, found in prototype & 8.1 \\
\hline
S8: Setting the weight of the blocks & O & Not going to be implemented & -\\
\hline
S9: Setting the proposal strategies for variables & E & Designed, found in prototype & 6.1\\
\hline
S10: Proposal distributions & E & Designed, found in prototype & 4.2.3, 6.2.1 \\
\hline
S11: Setting initial values  & E & Designed, found in prototype & 4.2.2, 6.2.2 \\
\hline
S12: Defining parameters to output & E & Designed & 4.2.5, 6.2.3 \\
\hline
S14: Informing the user about the progress & E & Designed & \\
\hline
S15: Soft stop & O & Not going to be implemented & \\
\hline
S16: Parameters in random walk & O & Not going to be implemented & \\
\hline
\end{tabular}

\subsection{Output requirements}

\begin{tabular}[]{| p{4cm}| p{1.5cm} | p{5cm} | p{2cm}| }
\hline
\textbf{Requirement} & \textbf{Priority} & \textbf{Design status} & \textbf{Chapters} \\
\hline
OP1: Writing output into a file & E & Designed, found in prototype & 6.2.3\\
\hline
OP2: Output file names & E & Designed & 4.2.5\\
\hline
OP3: The output & E & Designed, found in prototype & 6.2.3\\
\hline
OP4: Information written to output files & E & Designed & \\
\hline
OP5: Summary of the simulation & C & Designed & 6.2.3 \\
\hline
OP6: File access check & C & Not going to be implemented & - \\
\hline
\end{tabular}

\subsection{General error conditions}

\begin{tabular}[]{| p{4cm}| p{1.5cm} | p{5cm} | p{2cm}| }
\hline
\textbf{Requirement} & \textbf{Priority} & \textbf{Design status} & \textbf{Chapters} \\
\hline
E1: File not found & E & Designed, found in prototype & 6.2.2\\
\hline
E2: Reporting syntax errors & O & Designed & 9.1 \\
\hline
E3: Reporting semantic errors & O & Not going to be implemented & -\\
\hline
\end{tabular}

\subsection{Non-functional requirements}

\begin{tabular}[]{| p{4cm}| p{1.5cm} | p{5cm} | p{2cm}| }
\hline
\textbf{Requirement} & \textbf{Priority} & \textbf{Design status} & \textbf{Chapters} \\
\hline
N1: Working on Linux & E & Designed, found in prototype & -\\
\hline
N2: The implementation language & E & Designed, found in prototype & 6 \\
\hline
N3: Parallel computation & O & Not going to be implemented & -\\
\hline
N4: Graphical user interface & O & Not going to be implemented & -\\
\hline
\end{tabular}

\subsection{General requirements}

\begin{tabular}[]{| p{4cm}| p{1.5cm} | p{5cm} | p{2cm}| }
\hline
\textbf{Requirement} & \textbf{Priority} & \textbf{Design status} & \textbf{Chapters} \\
\hline
G1: Adding comments to definition files & E & Designed & 4 \\
\hline
\end{tabular}