|
@@ -51,44 +51,47 @@ Advantages of this architecture include:
|
|
|
|
|
|
|
|
|
\section{System Requirements and Software Dependencies}\label{sec:systemRequirements}
|
|
|
-{
|
|
|
-\centering
|
|
|
-\small
|
|
|
-\begin{longtable}{l l p{6cm}}
|
|
|
- \rowcolor{gray!50}
|
|
|
- \textbf{Requirement} & \textbf{Minimum} & \textbf{Recommended} \\
|
|
|
- Free disk space & 150MB & 150MB \\
|
|
|
- \rowcolor{gray!25}
|
|
|
- Free RAM & 300MB (single window) & More for multiple windows/graphs \\
|
|
|
- \rowcolor{gray!25}
|
|
|
- & & At least 2 GB for running the automatic tests. \\
|
|
|
- Display & $1024 \times 768$ resolution & $1920 \times 1080$ resolution \\
|
|
|
- \rowcolor{gray!25}
|
|
|
- CPU & capable of running java applications & faster is better \\
|
|
|
- GPU & capable of 2D rendering & rendering in $1920 \times 1080$ resolution\\
|
|
|
- \rowcolor{gray!25}
|
|
|
- Internet connection & not any & not any\\
|
|
|
- \\
|
|
|
- \caption{System Requirements}
|
|
|
- \label{table:systemRequirements}
|
|
|
-\end{longtable}
|
|
|
-}
|
|
|
-
|
|
|
-{
|
|
|
-\centering
|
|
|
-\small
|
|
|
-\begin{longtable}{l p{1cm} p{6cm}}
|
|
|
- \rowcolor{gray!50}
|
|
|
- \textbf{Dependency} && \textbf{Version} \\
|
|
|
- Java && $\geq8$ \\
|
|
|
- \rowcolor{gray!25}
|
|
|
- JSON-java~\cite{leary_json-java:_2018} && \\
|
|
|
- Eclipse Layout Kernel~\cite{noauthor_elk:_2018} && \\
|
|
|
- \\
|
|
|
+The software \appname relies on is listed in table~\ref{table:softwareDependencies}.
|
|
|
+The requirements to any system running \appname are demanded in table~\ref{table:systemRequirements}.
|
|
|
+
|
|
|
+\begin{table}[htp]
|
|
|
+ \centering
|
|
|
+ \small
|
|
|
+ \begin{tabular}{l p{1cm} p{6cm}}
|
|
|
+ \rowcolor{gray!50}
|
|
|
+ \textbf{Dependency} && \textbf{Version} \\
|
|
|
+ Java && $\geq8$ \\
|
|
|
+ \rowcolor{gray!25}
|
|
|
+ JSON-java~\cite{leary_json-java:_2018} && \\
|
|
|
+ Eclipse Layout Kernel~\cite{noauthor_elk:_2018} && \\
|
|
|
+ \\
|
|
|
+ \end{tabular}
|
|
|
\caption[Software Dependencies]{Software Dependencies. If no version is given, all should work and the latest is recommended.}
|
|
|
\label{table:softwareDependencies}
|
|
|
-\end{longtable}
|
|
|
-}
|
|
|
+\end{table}
|
|
|
+
|
|
|
+\begin{table}[htp]
|
|
|
+ \centering
|
|
|
+ \small
|
|
|
+ \begin{tabular}{l l p{6cm}}
|
|
|
+ \rowcolor{gray!50}
|
|
|
+ \textbf{Requirement} & \textbf{Minimum} & \textbf{Recommended} \\
|
|
|
+ Free disk space & 150MB & 150MB \\
|
|
|
+ \rowcolor{gray!25}
|
|
|
+ Free RAM & 300MB (single window) & More for multiple windows/graphs \\
|
|
|
+ \rowcolor{gray!25}
|
|
|
+ & & At least 2 GB for running the automatic tests. \\
|
|
|
+ Display & $1024 \times 768$ resolution & $1920 \times 1080$ resolution \\
|
|
|
+ \rowcolor{gray!25}
|
|
|
+ CPU & capable of running java applications & faster is better \\
|
|
|
+ GPU & capable of 2D rendering & rendering in $1920 \times 1080$ resolution\\
|
|
|
+ \rowcolor{gray!25}
|
|
|
+ Internet connection & not any & not any\\
|
|
|
+ \\
|
|
|
+ \end{tabular}
|
|
|
+ \caption{System Requirements}
|
|
|
+ \label{table:systemRequirements}
|
|
|
+\end{table}
|
|
|
|
|
|
\section{Input File Format}\label{sec:inputFileFormat}
|
|
|
The input to \appname\ is a JSON file.
|
|
@@ -105,51 +108,55 @@ For parsing the JSON file the JSON-java library~\cite{leary_json-java:_2018} is
|
|
|
The classes for reading and writing those JSON files are displayed in figure~\ref{fig:io}.
|
|
|
The internal representation of graphs is further explained in the section~\ref{sec:graph}.
|
|
|
|
|
|
-{
|
|
|
-\centering
|
|
|
-\small
|
|
|
-\begin{longtable}{|l|l|l|p{8.5cm}|}
|
|
|
- \hline
|
|
|
- Attribute & Type & Optional & Explanation \\\hline\hline
|
|
|
- name & string & yes & If not omitted, this must be unique for a given parent node. \\\hline
|
|
|
- width & integer & yes & The minimum width of the node.
|
|
|
- The node can be wider if it contains other nodes that need more space.
|
|
|
- If the whole layout is too large, it is resized, such that all nodes are proportionately shrunk: In that case the minimum width can be exceeded after the shrinking.
|
|
|
- Default 40.\\\hline
|
|
|
- height & integer & yes & The minimum height of the node.
|
|
|
- The node can be higher if it contains other nodes that need more space.
|
|
|
- If the whole layout is too large, it is resized, such that all nodes are proportionately shrunk: In that case the minimum height can be exceeded after the shrinking.
|
|
|
- Default 40.\\\hline
|
|
|
- dummy & boolean & yes & Iff this is explicitly set to true, then the node is a dummy node. This attribute is necessary, because we expect previous stages to have eliminated multilayer edges, see section~\ref{sec:assumptions}. \\\hline
|
|
|
- layers & < < node > > & yes & The layers of nodes inside this node (Hierarchy). \\\hline
|
|
|
- edges & < edge > & yes & The edges between nodes whose parent node is this node. \\\hline
|
|
|
- \caption[Node Attributes]{Node Attributes. < \emph{element type} > is a list.}
|
|
|
- \label{table:node-attributes}
|
|
|
-\end{longtable}
|
|
|
-}
|
|
|
-
|
|
|
-\begin{figure}[htp]
|
|
|
- \centering
|
|
|
- \includegraphics[width=\linewidth,trim=0 26cm 0 0,clip]{img/io.pdf}
|
|
|
- \caption[Class diagram of the \code{graph.io} package]{Class diagram of the \code{graph.io} package, containing utilities for reading and writing graphs.}
|
|
|
- \label{fig:io}
|
|
|
-\end{figure}
|
|
|
-
|
|
|
\begin{table}[htp]
|
|
|
\centering
|
|
|
\small
|
|
|
- \begin{longtable}{|l|l|l|p{8.5cm}|}
|
|
|
- \hline
|
|
|
- Attribute & Type & Optional & Explanation \\\hline\hline
|
|
|
+ \begin{tabular}{l l l p{8.5cm}}
|
|
|
+ \rowcolor{gray!50}
|
|
|
+ \textbf{Attribute} & \textbf{Type} & \textbf{Optional} & \textbf{Explanation} \\
|
|
|
source & string & no & The name of the source of this edge.
|
|
|
Must be a node with the same parent node as the node specified by the \code{target} attribute. \\\hline
|
|
|
+ \rowcolor{gray!25}
|
|
|
target & string & no & The name of the target of this edge.
|
|
|
Must be a node with the same parent node as the node specified by the \code{source} attribute. \\\hline
|
|
|
- \end{longtable}
|
|
|
+ \end{tabular}
|
|
|
\caption{Edge Attributes}
|
|
|
\label{table:edge-attributes}
|
|
|
\end{table}
|
|
|
|
|
|
+\begin{table}[htp]
|
|
|
+ \centering
|
|
|
+ \small
|
|
|
+ \begin{tabular}{l l l p{8.5cm}}
|
|
|
+ \rowcolor{gray!50}
|
|
|
+ \textbf{Attribute} & \textbf{Type} & \textbf{Optional} & \textbf{Explanation} \\
|
|
|
+ name & string & yes & If not omitted, this must be unique for a given parent node. \\
|
|
|
+ \rowcolor{gray!25}
|
|
|
+ width & integer & yes & The minimum width of the node.
|
|
|
+ The node can be wider if it contains other nodes that need more space.
|
|
|
+ If the whole layout is too large, it is resized, such that all nodes are proportionately shrunk: In that case the minimum width can be exceeded after the shrinking.
|
|
|
+ Default 40.\\
|
|
|
+ height & integer & yes & The minimum height of the node.
|
|
|
+ The node can be higher if it contains other nodes that need more space.
|
|
|
+ If the whole layout is too large, it is resized, such that all nodes are proportionately shrunk: In that case the minimum height can be exceeded after the shrinking.
|
|
|
+ Default 40.\\
|
|
|
+ \rowcolor{gray!25}
|
|
|
+ dummy & boolean & yes & Iff this is explicitly set to true, then the node is a dummy node. This attribute is necessary, because we expect previous stages to have eliminated multilayer edges, see section~\ref{sec:assumptions}. \\
|
|
|
+ layers & < < node > > & yes & The layers of nodes inside this node (Hierarchy). \\
|
|
|
+ \rowcolor{gray!25}
|
|
|
+ edges & < edge > & yes & The edges between nodes whose parent node is this node. \\\\
|
|
|
+ \end{tabular}
|
|
|
+ \caption[Node Attributes]{Node Attributes. < \emph{element type} > is a list.}
|
|
|
+ \label{table:node-attributes}
|
|
|
+\end{table}
|
|
|
+
|
|
|
+\begin{figure}[htp]
|
|
|
+ \centering
|
|
|
+ \includegraphics[width=\linewidth,trim=0 26cm 0 0,clip]{img/io.pdf}
|
|
|
+ \caption[Class diagram of the \code{graph.io} package]{Class diagram of the \code{graph.io} package, containing utilities for reading and writing graphs.}
|
|
|
+ \label{fig:io}
|
|
|
+\end{figure}
|
|
|
+
|
|
|
|
|
|
|
|
|
|