\chapter{Niet-functionele eisen} \label{sec:niet-functionele eisen}

Een  veelgebruikte  onderverdeling  van  eisen  is  het  onderscheid  in  functionele  en  niet-functionele  eisen.  Functionele  eisen  geven  gewenst  gedrag  van  het  systeem  weer,  terwijl niet-functionele  eisen  een  kwaliteitseis  vormen  waaraan  het  systeem  moet  voldoen.  Niet- functionele  eisen  specificeren criteria  om  het  functioneren  van  het  systeem  te  beoordelen,
maar beschrijven niet het specifieke gedrag zelf.\
In  dit  hoofdstuk  wordt  ingegaan  op  de  niet-functionele  eisen  van  \dam.  Hierin  wordt onderscheid  gemaakt  in  7  soorten  niet-functionele  eisen;  functionaliteit,  betrouwbaarheid, bruikbaarheid, efficiency, onderhoudbaarheid, overdraagbaarheid en beheer.


\dam geeft de voortgang van een importeeractie aan.
\dam geeft de voortgang van een berekening aan.
\dam geeft heldere foutmeldingen bij het ontbreken van data. 
\dam geeft heldere foutmeldingen bij gebruik van foutieve data.
\dam geeft geen crashes tijdens normaal gebruik.
\dam code heeft een code coverage van 80\%
\dam is nederlands- en engelstalig.
\dam is voorbereid op een meertalig gebruik.
\dam moet door gebruikers gebruikt kunnen worden met standaardrechten. Het moet dus niet nodig zijn om de applicatie uit te voeren met administrator rechten, met uitzondering van installatie.

\subsection{Architectuur \dam}

Binnen Deltares wordt software voor de bepaling van de sterkte van waterkeringen modulair ontwikkeld. Hierbij is het streven om zoveel mogelijk componenten te delen. \autoref 	 geeft schematisch de onderlinge samenhang tussen de verschillende componenten weer en rekenplatformen, bijvoorbeeld \dam en Ringtoets. 
Het delen van componenten heeft verschillende voordelen. Zo kan de dijkbeheerder zijn bron data gebruiken voor verschillende toepassingen. Daarnaast geldt dat door het delen van goed geteste bibliotheken de betrouwbaarheid vergroot wordt. Delen van faalmechanismebibliotheken leidt tot directe vergelijkbaarheid van resultaten voor verschillende toepassingen. Door de herkenbaarheid van de User Interface (UI) componenten wordt het voor de gebruiker makkelijker de software te bedienen en daarmee wordt de drempel verlaagd voor gebruik van de software. Voor de ontwikkelaar zijn gedeelde bibliotheken beter en goedkoper te onderhouden.

\begin{figure}[H]
	\centering
		\includegraphics[width=0.5\textwidth]{figuren/Softwarecomponenten.png}
	\caption{Softwarecomponenten}
	\label{fig:Softwarecomponenten}
\end{figure}



Eis X \dam kan gebruik maken van meerdere rekenharten (kernels) ten behoeve van dijksterkte analyse.
De huidige kernels zijn:
\begin{itemize}
	\item kernel Macrostabiliteit, 
  \item kernel Piping

\end{itemize}

\textit{Het voldoen aan deze requirement wordt aangetoond door:}

Eis X De UI van \dam is tweetalig: Engels- en Nederlandstalig.



Eis X Na 2017 kunnen de volgende kernels met een geringe (<5 ontwikkeldagen) inspanning per item  aangesloten worden:
\begin{itemize}
	\item WTI kernel Macrostabiliteit
  \item kernel waternet creator
  \item WTI kernel Piping

\end{itemize}

\textit{Het voldoen aan deze requirement wordt aangetoond door:}

Eis X Na 2017 kan \dam (invoer)bestanden inlezen met een geringe (<5 ontwikkeldagen) inspanning per item  van:
\begin{itemize}
	\item D-Soil Model
  \item BM-Macrostabiliteit
  \item Ringtoets
\end{itemize}

Het voldoen aan deze requirement wordt aangetoond door:
