Major change
[u/philim/db2osl_thesis.git] / impl_tools.tex
... / ...
CommitLineData
1\section{Tools employed}
2\label{tools}
3
4Several tools were used for the creation of \myprog{}, some of which also
5proved useful during the creation of this thesis.
6Their use is described briefly in this section.
7
8Thank is proffered to the contributers of these tools, all of which are free
9and open-source software TODO.
10
11\subsubsection{Debian GNU/Linux}
12The operating system to run the other tools on was \name{Debian GNU/Linux},
13version $8.0$ (``Jessie'').
14
15\subsubsection{Basic Unix tools}
16Some of the basic Unix shell tools, namely \name{find}, \name{cat}, \name{grep},
17\name{sed}, \name{less}, \name{diff}
18and, of course, the shell itself (\name{bash} was used) were very
19useful, for instance, for searching all source code files for common errors
20or for remains of obsolete constructs that were replaced,
21for carrying out changes on all source files and
22for detecting and removing debugging code.
23
24All of the tools were implementations created as part of the \name{GNU} project.
25
26\subsubsection{\name{git}}
27\name{git} was used both for version control and for shared access to the
28source code and related artifacts.
29
30\subsubsection{\name{vim}}
31To apply changes involving advanced regular expressions, to perform block editing
32(insert or remove columns from multiple lines at once), to insert debugging code
33and similar editing tasks, \name{vim} was very useful.
34
35\subsubsection{\name{Eclipse}}
36The IDE to develop the program in was \name{Eclipse}.
37It proved very useful particularly due to its abilities to easily create
38packages and move source files between them, to ease the creation of in-code
39documentation and other useful features like automatic indention or the
40automatic insertion of \code{final} keywords.
41
42\subsubsection{\name{OpenJDK}}
43The \name{Java} compiler, the \name{Javadoc} tool (see next paragraph),
44the \name{Java} debugger and the \name{Java} Runtime Environment
45used were the implementations provided by
46the \name{OpenJDK} project, version $7$.
47
48\subsubsection{\name{Javadoc}}
49\name{Javadoc} was used as the primary documentation generation system due to
50its ability to create clear and well-arranged documentations.
51Besides, documentations created by \name{Javadoc} are familiar to most
52\name{Java} programmers and cleanly integrate into the \name{Java} environment;
53for example, methods (automatically) inherited from the \code{Object}
54class are incorporated and links to methods and classes
55provided by the \name{Java} API are automatically generated.
56
57\subsubsection{\name{Doxygen}}
58To complement the documentation generated by \name{Javadoc} (see previous
59paragraph), \name{Doxygen} was used, which supports all used \name{Javadoc}
60constructs.
61This was particularly sensible, because \name{Doxygen} is able to create a
62much more in-depth documentation, that for instance includes \code{private}
63and \code{protected} members, the complete source code with syntax highlighting
64and references to it and detailed dependency and call graphs for all classes
65or methods, respectively.
66Thus, the \name{Doxygen} documentation is meant to be a more extensive,
67detail-oriented documentation providing insight into implementation issues.