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