Minor change
[u/philim/db2osl_thesis.git] / program_arch.tex
1 \section{Architecture}
2 \label{arch}
3 \subsection{Libraries used}
4 \subsection{Coarse structuring}
5 \label{coarse}
6 TODO: overall description, modularity, extendability, ex: easy to add new in-/output formats
7 TODO: mapping profiles (maybe better in next subsection)
8 TODO: package description
9 TODO: package interaction description
10
11 \subsection{Fine structuring}
12 \subsubsection{Class organization}
13 TODO: 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
102 \begin{figure}[H]\begin{center}
103                 \ContinuedFloat*
104                 \includegraphics[scale=0.86]{Images/inherit_graph_8.pdf}
105 \end{center}\end{figure}
106 \vspace{6px}
107 \begin{figure}[H]\begin{center}
108                 \ContinuedFloat*
109                 \includegraphics[scale=0.86]{Images/inherit_graph_5.pdf}
110         \end{center}\end{figure}
111 \begin{figure}[H]\begin{center}
112                 \ContinuedFloat*
113                 \includegraphics[scale=0.86]{Images/inherit_graph_7.pdf}
114 \end{center}\end{figure}
115 \begin{figure}[H]\begin{center}
116                 \ContinuedFloat*
117                 \includegraphics[scale=0.86]{Images/inherit_graph_19.pdf}
118 \end{center}\end{figure}
119 \begin{figure}[H]\begin{center}
120                 \ContinuedFloat*
121                 \includegraphics[scale=0.86]{Images/inherit_graph_1.pdf}
122 \end{center}\end{figure}
123 \begin{figure}[H]\begin{center}
124                 \ContinuedFloat*
125                 \includegraphics[scale=0.86]{Images/inherit_graph_17.pdf}
126 \end{center}\end{figure}
127 \begin{figure}[H]\begin{center}
128                 \ContinuedFloat*
129                 \includegraphics[scale=0.86]{Images/inherit_graph_21_extended.pdf}
130 \end{center}\end{figure}
131 \begin{figure}[H]\begin{center}
132                 \ContinuedFloat*
133                 \includegraphics[scale=0.86]{Images/inherit_graph_13.pdf}
134 \end{center}\end{figure}
135 \begin{figure}[H]\begin{center}
136                 \ContinuedFloat*
137                 \includegraphics[scale=0.86]{Images/inherit_graph_3.pdf}
138 \end{center}\end{figure}
139 \begin{figure}[H]\begin{center}
140                 \ContinuedFloat*
141                 \includegraphics[scale=0.86]{Images/inherit_graph_18.pdf}
142 \end{center}\end{figure}
143 \begin{figure}[H]\begin{center}
144                 \ContinuedFloat*
145                 \includegraphics[scale=0.86]{Images/inherit_graph_12.pdf}
146 \end{center}\end{figure}
147 \begin{figure}[H]\begin{center}
148                 \ContinuedFloat*
149                 \includegraphics[scale=0.86]{Images/inherit_graph_4.pdf}
150                 \setcounter{figure}{1}
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.}
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{}}
174         \label{arch_tbl_lone_classes}
175 \end{center}\end{table}
176
177 %For more information about the program structure on the class level, see section \fullref{code}.