Major change
[u/philim/db2osl_thesis.git] / program_arch.tex
index 5904210..d3e3542 100644 (file)
@@ -1,13 +1,13 @@
-\section{Architecture}
+\section{Architecture of \myprog{}}
 \label{arch}
-\subsection{Libraries used}
-\subsection{Coarse structuring}
+\subsection{Libraries used in \myprog{}}
+\subsection{Coarse structuring of \myprog{}}
 \label{coarse}
 TODO: overall description, modularity, extendability, ex: easy to add new in-/output formats
 TODO: mapping profiles (maybe better in next subsection)
 TODO: Java, OPTIQUE
 
-\subsubsection{Package structuring}
+\subsubsection{Package structuring of \myprog{}}
 The $45$ classes of \myprog{} were assigned to $11$ packages, each containing
 classes responsible for the same area of operation or taking over similar roles.
 Care was taken that package division happened senseful, producing meaningful packages
@@ -17,10 +17,9 @@ Packages were chosen not to be nested but to be set out vapidly.
 Since this doesn't have any functional implications \cite{java}, but is rather an
 implementation detail, this is further explained in Section~\fullref{code_packages}.
 
-The packages are introduced and described in table \ref{arch_tbl_packages}.
-The lists of classes each package contains are given in table \ref{arch_tbl_classes}
-in the next Section~\fullref{fine}.
-For a detailed package description, refer to Appendix TODO.
+The packages are introduced and described in Table~\ref{arch_tbl_packages}.
+The lists of classes each package contains are given in Table~\ref{app_tbl_classes}
+in Appendix~\fullref{app_pkgs}.
 
 \begin{table}[H]
        \begin{tabular}{p{3cm}|p{13cm}} %\KOMAoption{fontsize}{\smallerfontsize{}}
@@ -154,107 +153,24 @@ to have the driver class reside in a package called ``settings''.
 %Package \code{helpers} depends on package \code{database}, which provides the \code{static}
 %method \code{getSQLTypeName}.
 
-\subsection{Fine structuring}
+\subsection{Fine structuring of \myprog{}}
 \label{fine}
+TODO: OBDA spec rep
+
 While the packages in \myprog{} are introduced and described in Section~\fullref{coarse},
 the classes that comprise them are addressed in this section.
-For a detailed class index, refer to Appendix TODO.
+For a list of classes contained in each package, refer to Appendix \ref{app_pkgs}.
+
 TODO: total classes etc.
 
 \subsubsection{Package contents}
 \label{package_details}
 
-Table \ref{arch_tbl_classes} lists the classes each package contains.
+Table~\ref{app_tbl_classes} lists the classes each package contains.
 The packages \code{cli}, \code{main}, \code{osl} and \code{settings} contain only
 one class each, while the by far most extensive package is \code{database},
 containing $15$ classes.
 
-\begin{table}[H]
-       \begin{multicols}{2}\begin{itemize} %\KOMAoption{fontsize}{\smallerfontsize{}}
-                       \item \code{bootstrapping}
-                       \begin{itemize}
-                               \item \code{Bootstrapping}
-                               \item \code{DirectMappingURIBuilder}
-                               \item \code{URIBuilder}
-                       \end{itemize}
-                       \item \code{cli}
-                       \begin{itemize}
-                               \item \code{CLIDatabaseInteraction}
-                       \end{itemize}
-                       \item \code{database}
-                       \begin{itemize}
-                               \item \code{Column}
-                               \item \code{ColumnSet}
-                               \item \code{DatabaseException}
-                               \item \code{DBSchema}
-                               \item \code{ForeignKey}
-                               \item \code{Key}
-                               \item \code{PrimaryKey}
-                               \item \code{ReadableColumn}
-                               \item \code{ReadableColumnSet}
-                               \item \code{ReadableForeignKey}
-                               \item \code{ReadableKey}
-                               \item \code{ReadablePrimaryKey}
-                               \item \code{RetrieveDBSchema}
-                               \item \code{Table}
-                               \item \code{TableSchema}
-                       \end{itemize}
-                       \item \code{helpers}
-                       \begin{itemize}
-                               \item \code{Helpers}
-                               \item \code{MapValueIterable}
-                               \item \code{MapValueIterator}
-                               \item \code{ReadOnlyIterable}
-                               \item \code{ReadOnlyIterator}
-                               \item \code{SQLType}
-                               \item \code{UserAbortException}
-                       \end{itemize}
-                       \newpage
-                       \item \code{log}
-                       \begin{itemize}
-                               \item \code{ConsoleDiagnosticOutputHandler}
-                               \item \code{GlobalLogger}
-                       \end{itemize}
-                       \item \code{main}
-                       \begin{itemize}
-                               \item \code{Main}
-                       \end{itemize}
-                       \item \code{osl}
-                       \begin{itemize}
-                               \item \code{OSLSpecification}
-                       \end{itemize}
-                       \item \code{output}
-                       \begin{itemize}
-                               \item \code{ObjectSpecPrinter}
-                               \item \code{OSLSpecPrinter}
-                               \item \code{SpecPrinter}
-                       \end{itemize}
-                       \item \code{settings}
-                       \begin{itemize}
-                               \item \code{Job}
-                       \end{itemize}
-                       \item \code{specification}
-                       \begin{itemize}
-                               \item \code{AttributeMap}
-                               \item \code{EntityMap}
-                               \item \code{IdentifierMap}
-                               \item \code{InvalidSpecificationException}
-                               \item \code{OBDAMap}
-                               \item \code{OBDASpecification}
-                               \item \code{RelationMap}
-                               \item \code{SubtypeMap}
-                               \item \code{TranslationTable}
-                       \end{itemize}
-                       \item \code{test}
-                       \begin{itemize}
-                               \item \code{CreateTestDBSchema}
-                               \item \code{GetSomeDBSchema}
-                       \end{itemize}
-               \end{itemize}\end{multicols} %\KOMAoption{fontsize}{\myfontsize{}}
-               \caption{Class attachment to packages in \myprog{}}
-               \label{arch_tbl_classes}
-\end{table}
-
 \subsubsection{Class organization}
 \label{hierarchies}
 Organizing classes in a structured, obvious manner such that classes have well-defined