Major change
[u/philim/db2osl_thesis.git] / program_arch.tex
CommitLineData
c31df1ed
PM
1\section{Architecture}
2\label{arch}
3\subsection{Libraries used}
4\subsection{Coarse structuring}
28b54c67 5\label{coarse}
c31df1ed
PM
6TODO: overall description, modularity, extendability, ex: easy to add new in-/output formats
7TODO: mapping profiles (maybe better in next subsection)
8TODO: package description
9TODO: package interaction description
10
11\subsection{Fine structuring}
28b54c67
PM
12\subsubsection{Class organization}
13TODO: Every class hierarchy has at least one interface
14
15\begin{table}
16 \begin{multicols}{2}\begin{itemize} %\KOMAoption{fontsize}{\smallerfontsize{}}
17 \item \code{bootstrapping}
18 \begin{itemize}
19 \item \code{Bootstrapping}
20 \item \code{DirectMappingURIBuilder}
21 \item \code{URIBuilder}
22 \end{itemize}
23 \item \code{cli}
24 \begin{itemize}
25 \item \code{CLIDatabaseInteraction}
26 \end{itemize}
27 \item \code{database}
28 \begin{itemize}
29 \item \code{Column}
30 \item \code{ColumnSet}
31 \item \code{DatabaseException}
32 \item \code{DBSchema}
33 \item \code{ForeignKey}
34 \item \code{Helpers}
35 \item \code{Key}
36 \item \code{PrimaryKey}
37 \item \code{ReadableColumn}
38 \item \code{ReadableColumnSet}
39 \item \code{ReadableForeignKey}
40 \item \code{ReadableKey}
41 \item \code{ReadablePrimaryKey}
42 \item \code{RetrieveDBSchema}
43 \item \code{SQLType}
44 \item \code{Table}
45 \item \code{TableSchema}
46 \end{itemize}
47 \item \code{helpers}
48 \begin{itemize}
49 \item \code{MapValueIterable}
50 \item \code{MapValueIterator}
51 \item \code{ReadOnlyIterable}
52 \item \code{ReadOnlyIterator}
53 \item \code{UserAbortException}
54 \end{itemize}
55 \newpage
56 \item \code{log}
57 \begin{itemize}
58 \item \code{ConsoleDiagnosticOutputHandler}
59 \item \code{GlobalLogger}
60 \end{itemize}
61 \item \code{main}
62 \begin{itemize}
63 \item \code{Main}
64 \end{itemize}
65 \item \code{osl}
66 \begin{itemize}
67 \item \code{OSLSpecification}
68 \end{itemize}
69 \item \code{output}
70 \begin{itemize}
71 \item \code{ObjectSpecPrinter}
72 \item \code{OSLSpecPrinter}
73 \item \code{SpecPrinter}
74 \end{itemize}
75 \item \code{settings}
76 \begin{itemize}
77 \item \code{Job}
78 \end{itemize}
79 \item \code{specification}
80 \begin{itemize}
81 \item \code{AttributeMap}
82 \item \code{EntityMap}
83 \item \code{IdentifierMap}
84 \item \code{InvalidSpecificationException}
85 \item \code{OBDAMap}
86 \item \code{OBDASpecification}
87 \item \code{RelationMap}
88 \item \code{SubtypeMap}
89 \item \code{TranslationTable}
90 \end{itemize}
91 \item \code{test}
92 \begin{itemize}
93 \item \code{CreateTestDBSchema}
94 \item \code{GetSomeDBSchema}
95 \end{itemize}
96 \end{itemize}\end{multicols} %\KOMAoption{fontsize}{\myfontsize{}}
97 \caption{Class affiliation to packages in \myprog{}}
98 \label{arch_tbl_classes}
99\end{table}
100
101
c31df1ed
PM
102\begin{figure}[H]\begin{center}
103 \ContinuedFloat*
28b54c67 104 \includegraphics[scale=0.86]{Images/inherit_graph_8.pdf}
c31df1ed 105\end{center}\end{figure}
28b54c67 106\vspace{6px}
c31df1ed
PM
107\begin{figure}[H]\begin{center}
108 \ContinuedFloat*
28b54c67
PM
109 \includegraphics[scale=0.86]{Images/inherit_graph_5.pdf}
110 \end{center}\end{figure}
c31df1ed
PM
111\begin{figure}[H]\begin{center}
112 \ContinuedFloat*
28b54c67 113 \includegraphics[scale=0.86]{Images/inherit_graph_7.pdf}
c31df1ed
PM
114\end{center}\end{figure}
115\begin{figure}[H]\begin{center}
116 \ContinuedFloat*
28b54c67 117 \includegraphics[scale=0.86]{Images/inherit_graph_19.pdf}
c31df1ed
PM
118\end{center}\end{figure}
119\begin{figure}[H]\begin{center}
120 \ContinuedFloat*
28b54c67 121 \includegraphics[scale=0.86]{Images/inherit_graph_1.pdf}
c31df1ed
PM
122\end{center}\end{figure}
123\begin{figure}[H]\begin{center}
124 \ContinuedFloat*
28b54c67 125 \includegraphics[scale=0.86]{Images/inherit_graph_17.pdf}
c31df1ed
PM
126\end{center}\end{figure}
127\begin{figure}[H]\begin{center}
128 \ContinuedFloat*
28b54c67 129 \includegraphics[scale=0.86]{Images/inherit_graph_21_extended.pdf}
c31df1ed
PM
130\end{center}\end{figure}
131\begin{figure}[H]\begin{center}
132 \ContinuedFloat*
28b54c67 133 \includegraphics[scale=0.86]{Images/inherit_graph_13.pdf}
c31df1ed
PM
134\end{center}\end{figure}
135\begin{figure}[H]\begin{center}
136 \ContinuedFloat*
28b54c67 137 \includegraphics[scale=0.86]{Images/inherit_graph_3.pdf}
c31df1ed
PM
138\end{center}\end{figure}
139\begin{figure}[H]\begin{center}
140 \ContinuedFloat*
28b54c67 141 \includegraphics[scale=0.86]{Images/inherit_graph_18.pdf}
c31df1ed
PM
142\end{center}\end{figure}
143\begin{figure}[H]\begin{center}
144 \ContinuedFloat*
28b54c67 145 \includegraphics[scale=0.86]{Images/inherit_graph_12.pdf}
c31df1ed
PM
146\end{center}\end{figure}
147\begin{figure}[H]\begin{center}
148 \ContinuedFloat*
28b54c67 149 \includegraphics[scale=0.86]{Images/inherit_graph_4.pdf}
c31df1ed 150 \setcounter{figure}{1}
28b54c67
PM
151 \caption[Class hierarchies in \myprog{}]{Class hierarchies in \myprog{}.
152 Interface names are italicized,
153 external classes or interfaces are hemmed with a gray frame.}
c31df1ed
PM
154 \label{arch_fig_inheritance}
155\end{center}\end{figure}
156
157
158\begin{table}[H]\begin{center}
159 \begin{tabular}{l}
160 \itm{} \code{main.Main}\\
161 \itm{} \code{database.Helpers}\\
162 \itm{} \code{database.RetrieveDBSchema}\\
163 \itm{} \code{database.SQLType}\\
164 \itm{} \code{database.Table}\\
165 \itm{} \code{specification.OBDASpecification}\\
166 \itm{} \code{osl.OSLSpecification}\\
167 \itm{} \code{bootstrapping.Bootstrapping}\\
168 \itm{} \code{cli.CLIDatabaseInteraction}\\
169 \itm{} \code{log.GlobalLogger}\\
170 \itm{} \code{test.CreateTestDBSchema}\\
171 \itm{} \code{test.GetSomeDBSchema}\\
172 \end{tabular}\\
173 \caption{Standalone classes in \myprog{}}
28b54c67 174 \label{arch_tbl_lone_classes}
c31df1ed
PM
175\end{center}\end{table}
176
177%For more information about the program structure on the class level, see section \fullref{code}.