\chapter{Introduction} 
\label{chapterIntroduction}

\section{Purpose and scope of this document} \label{sec:PurposeAndScope}

This document contains the functional design for the \ProgramName, a user interface for the DAM Engine. The DAM Engine is designed for the automated calculation of the strength of dikes.
DAM was developed by Deltares with and for STOWA for all water authorities.
This document describes requirements and functional design of \ProgramName. 
What will actually will be implemented depends on the requirements of the clients using this \ProgramName.
If some functionality is not (yet) needed, then that part does not need to be implemented. 

\subsection{Future options}
\label{sec:FutureOptions}
As mentioned above this document contains some options that will not be implemented in the first release, but are foreseen to be implemented in the near future. Therefore although sometimes a reference will be made to these options, these will not be described in detail yet.

That applies in particular to the following subjects:
\begin{itemize}
	\item NWO module("Niet Waterkerende Objecten")
	\item WBI failure mechanisms (Piping, Macrostability)
\end{itemize}
\section{Other system documents} 
\label{sec:SystemDocuments}

The full documentation on the program comprises the following documents.

\renewcommand{\arraystretch}{1.3}

\begin{table}[H]
%\caption{xxx}
%\label{xxx}
\begin{tabular}{|p{40mm}|p{\textwidth-40mm-24pt}|} \hline
\textbf{Title} & \textbf{Content} \\ \hline
\ProgramName - Architecture Overall \newline \citep{DAM_ArchitectureOverall} & Description of overall architecture of the \ProgramName and its components. \\ \hline
\ProgramName- Functional Design\newline  \citep{DAMEngine_FunctionalDesign} & Description of the requirements and functional design. \\ \hline
\ProgramName - Technical Design\newline \citep{DAMEngine_TechnicalDesign}& Description of the implementation of the technical design of \ProgramName. \\ \hline
\ProgramName - Technical documentation \newline \citep{DAMEngine_TechnicalDocumentation} & Description of the arguments and usage of different software components, generated from in-line comment with Doxygen. \\ \hline
\ProgramName - Test Plan \newline \citep{DAMEngine_TestPlan} & Description of the different regression and acceptation tests, including target values.  \\ \hline
\ProgramName - Test Report \newline \citep{DAMEngine_TestReport} & Description of the test results (benchmarks and test scripts). \\ \hline
Architecture Guidelines \newline \citep{ArchitectureGuidelines} & Architecture guidelines that are used by DSC-Deltares. \\ \hline
\end{tabular}
\caption{\small \ProgramName system documents.}
\label{table-SystemDocuments}
\end{table}

\section{Document revisions}
\label{sec:DocumentRevisions}
\subsection{Revision 0.1}
\label{sec:Revision01}
First concept of the document.

\chapter{Non-functional requirements}

\chapter{Functional requirements}

Main purpose of the \ProgramName
The \ProgramName can import data and combines this data to calculation input for the DAM Engine. After calculations made by DAM Engine the \ProgramName can show the results and make analyzation possible.

\section{REQ Import.Project}\label{sec:REQImportProject}
The \ProgramName can import an excisting project.

\section{REQ Data.Format}\label{sec:REQDataFormat}
The \ProgramName has a defined format for the data input, so DAM users know how to arrange the input data.

\section{REQ Data.Content}\label{sec:REQDataContent}
The \ProgramName has a defined content for the data input, so DAM users know which input data to provide.

\section{REQ Data.Combination}\label{sec:REQDataCombi}
The \ProgramName combines data per location when data is provide in GIS-files. Locations are defined by RD-coordinates. The design of this functionality is described in \autoref{sec:DataCombination}.

\section{REQ Data.Generation.Geometry}\label{sec:REQDataGenerationGeometry}
The \ProgramName can combine a surface line with a subsoil scenario. The result is a geometry, usable for the failure mechanism Macrostability. 

\section{REQ Display.result}\label{sec:REQDisplayResults}
The \ProgramName can display the results of the calculations of the DAM Engine as:
\begin{itemize}
	\item factor of safety (macrostability and piping)
	\item slip plane as picture (macrostability)
	\item new geometry (design mode)
	\item colored location on map (asssessment mode)
\end{itemize}

\section{REQ Link.Standalone}\label{sec:REQLinkStandalone}
The \ProgramName can open a single calculation in a stand alone version of an UI of the used kernel.

\section{REQ Export.data}\label{sec:REQExportData}
The \ProgramName can export data as tables and/or shapes.

\section{REQ Save.Project}\label{sec:REQSaveProject}
The \ProgramName can save a project.
