Index: DamOverall/trunk/doc/DAM - Architecture Overall/pictures/DamSVNFailureMechanismLayout.png =================================================================== diff -u -r908 -r4104 Binary files differ Index: DamOverall/trunk/doc/DAM - Architecture Overall/DAM - Architecture Overall.tex =================================================================== diff -u -r4014 -r4104 --- DamOverall/trunk/doc/DAM - Architecture Overall/DAM - Architecture Overall.tex (.../DAM - Architecture Overall.tex) (revision 4014) +++ DamOverall/trunk/doc/DAM - Architecture Overall/DAM - Architecture Overall.tex (.../DAM - Architecture Overall.tex) (revision 4104) @@ -17,8 +17,8 @@ \reference{1210702-000-GEO-0005} \classification{-} -\date{Jul. 2019} -\version{1.0} +\date{Apr. 2023} +\version{1.1} \keywords{Dike, safety assessment, design, software, macro stability, piping} @@ -27,17 +27,17 @@ \textbf{\footnotesize{Samenvatting}} \\ Dit document bevat een beschrijving van de totale architectuur van \ProgramName, een User Interface applicatie die een gebruiker in staat stelt om voor een dijktraject berekeningen uit te voeren voor verschillende faalmechanismen, waaronder macrostabiliteit en piping.} -\versioni{1.0} -\datei{Jul 2019} +\versioni{1.1} +\datei{Apr. 2023} \author{Tom The} \organisationi{Deltares} \documentid{DAM - Architecture Overall.pdf} -\partner{Irene van der Zwan} +\partner{John Bokma} \authori{Tom The} \revieweri{John Bokma} -\approvali{Maya Sule} +\approvali{Kin Sun Lan} \publisheri{-} -\contact{Irene van der Zwan} +\contact{Kin Sun Lan} \status{final} \disclaimer{} @@ -193,9 +193,6 @@ Depending on the client, 1 or more of these submodules can be addressed by the client. The \ProgramName Engine has no knowledge of the clients that use the Engine and there will be no code dependencies from the Engine to the clients. -\section{Failure mechanisms} \label{sec:ComponentsFailureMechanisms} -The \ProgramName Engine uses external failure mechanisms. These are completely independent, and have no knowledge of the \ProgramName Engine. So there will be no code dependencies from the failure mechanisms to the \ProgramName Engine. Furthermore development, maintenance and support of these failure mechanisms are not in the scope of the DAM system. - %------------------------------------------------------------------------------ \chapter{Architectural Choices} \label{ArchitecturalChoices} @@ -268,19 +265,6 @@ \end{itemize} -\section{Failure mechanisms} \label{sec:ArchitectureFailureMechanisms} -The failure mechanisms are completely independent, and will incorportate their own libraries. -The only restriction that is imposed on the failure mechanisms is that, if they share the same libraries with \ProgramName, the libraries should have the same version. -The following libraries are know to be used by some failure mechanisms: -\begin{itemize} - \item DSL-Core - \item DSL-Probabilistic - \item DSL-Geographic - \item DSL-Geo - \item DSL-GeoIO - \item Math.Net -\end{itemize} - %------------------------------------------------------------------------------ \chapter{Version control} \label{VersionControl} @@ -302,11 +286,10 @@ \label{fig-SVNMainLayout} \end{figure} -The 5 main parts are +The 4 main parts are \begin{itemize} \item DamClients - the client applications that use the \ProgramName Engine. \item DamClientsLibrary - shared libraries by the \ProgramName clients. - \item DamFailureMechanisms - the failure mechanisms that were used in the orginalversion of \ProgramName; they will also be used in the \ProgramName Engine. \item DamEngine - the computational engine of \ProgramName. \item DamOverall - general documentation for \ProgramName (like this document). \end{itemize} @@ -354,11 +337,15 @@ \label{fig-SVNClientLibraryLayout} \end{figure} -At this moment only one project is foreseen to be put in the "`dam clients library"' src map is: +At this moment only two projects are foreseen to be put in the "`dam clients library"' src map: \begin{itemize} - \item Deltares.Dam.Data: this map contains the business layer. + \item Deltares.Dam.Data contains the business layer. + \item Deltares.Maps contains the map layer. \end{itemize} +\Note{At the moment DamClientsLibrary is part of the DamUI repository for practical reasons. +If the developement of the clients are finished, the source code should be moved from DamUI to its own source tree.} + \section{\ProgramName repository \ProgramName Engine} \label{sec:RepositoryDamEngine} In \autoref{fig-SVNDamEngineLayout} the layout of the \ProgramName Engine map is shown. @@ -377,38 +364,11 @@ \item Deltares.DamEngine.Data: this map contains pure data classes. \item Deltares.DamEngine.Interface: this map contains classes to interface to the engine. \item Deltares.DamEngine.Io: this map contains classes performing Input/Output to and from the engine. - \item Deltares.DamEngine.Version: this map contains a class to configure the version number for all classes. \end{itemize} Each project will have a corresponding test project. -\section{\ProgramName repository Failure Mechanisms} \label{sec:RepositoryDamFailureMechanisms} -The original \ProgramName implementation had its own failure mechanisms implemented. In the current architecture, the failure mechanisms are not part of the \ProgramName engine itself. They will be implemented as independent kernels. -In \autoref{fig-SVNDamEngineLayout} the layout of the \ProgramName Failure Mechanisms map is shown. - -\begin{figure}[H] - \begin{flushleft} - \includegraphics{pictures/DamSVNFailureMechanismLayout.png} - \end{flushleft} - \caption{\small \ProgramName Failure Mechanisms layout.} - \label{fig-SVNFailureMechanismLayout} -\end{figure} - -As will be the case with other, third party kernels, a wrapper will be written around these kernels, to use them in the \ProgramName engine. These wrappers are a part of the \ProgramName engine. - -At this moment the following failure mechanisms will be put here: -\begin{itemize} - \item Macrostability: this is an implementation of the Delphi D-Geo Stability kernel. - \item Piping: there are 3 different piping methods that are implemented here: - \begin{itemize} - \item Bligh - \item Sellmeijer 4 forces - \item Sellmeijer VNK (neural network) - \end{itemize} -\end{itemize} - - \section{\ProgramName repository full layout} \label{sec:RepositoryFullLayout} The full layout of the \ProgramName repository will be as shown in \autoref{fig-SVNLayout}. @@ -513,7 +473,7 @@ \item Create a new Dam Engine TeamCity Project XX.Y by copying the entire trunk project (with all sub projects). \item Create a branch XX.Y \item Add/adapt the TeamCity configuration for the subproject to use the branch - \item Set version number in branch to XX.Y.1 + \item Set version number in branch to XX.Y.1 in .$\backslash$src$\backslash$build$\backslash$Base.targets \item Adapt/Correct all externals where needed to the proper tags (instead of trunk) \item Make sure that in SVN signing branch, external current points to the proper branch (XX.Y) \item Run the TeamCity Release project. @@ -534,7 +494,8 @@ \item Create a new Dam UI TeamCity Project XX.Y by copying the entire trunk project (with all sub projects). \item create a branch XX.Y \item Add/adapt the TeamCity configuration for the subproject to use the branch - \item Set version number in branch to XX.Y.1 + \item Set version number in branch to XX.Y.1 in .$\backslash$src$\backslash$build$\backslash$Base.targets + \item Set version number in branch to XX.Y.1 in .$\backslash$src$\backslash$DamClientsLibrary$\backslash$build$\backslash$Base.targets \item Adapt/Correct all externals where needed to the proper tags (instead of trunk) \item Make sure that in SVN signing branch, external current points to the proper branch (XX.Y) \item Run the TC Release project (this will activate/run TeamCity Signing). @@ -557,7 +518,8 @@ \item Create a new Dam Live TeamCity Project XX.Y by copying the entire trunk project (with all sub projects). \item create a branch XX.Y \item Add/adapt the TeamCity configuration for the subproject to use the branch - \item Set version number in branch to XX.Y.1 + \item Set version number in branch to XX.Y.1 in .$\backslash$src$\backslash$build$\backslash$Base.targets + \item Set version number in branch to XX.Y.1 in .$\backslash$src$\backslash$DamClientsLibrary$\backslash$build$\backslash$Base.targets \item Adapt/Correct all externals where needed to the proper tags (instead of trunk) \item Make sure that in SVN signing branch, external current points to the proper branch (XX.Y) \item Run the TC Release project (this will activate/run TeamCity Signing).