|
@@ -13,8 +13,7 @@ Assumptions~\ref{itm:hyperedges},~\ref{itm:constraints} and~\ref{itm:labels} wer
|
|
Assumption~\ref{itm:cross-hierarchy-edges} was made because these are not possible with the Sugiyama approach.
|
|
Assumption~\ref{itm:cross-hierarchy-edges} was made because these are not possible with the Sugiyama approach.
|
|
|
|
|
|
Regarding assumption~\ref{itm:connected}, we found an example where for a disconnected graph the algorithm behaved incorrectly.
|
|
Regarding assumption~\ref{itm:connected}, we found an example where for a disconnected graph the algorithm behaved incorrectly.
|
|
-Maybe we will get rid of this assumption later, see chapter~\ref{ch:progress}.
|
|
|
|
-This example is included in the appendix (figures~\ref{fig:error_disconnected_img} and~\ref{fig:error_disconnected}).
|
|
|
|
|
|
+This example is included in the appendix (figure~\ref{fig:error_disconnected}).
|
|
|
|
|
|
|
|
|
|
\section{Overview}\label{sec:components}
|
|
\section{Overview}\label{sec:components}
|
|
@@ -43,7 +42,7 @@ Advantages of this architecture include:
|
|
\end{figure}
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
-\section{System Requirements}\label{sec:systemRequirements}
|
|
|
|
|
|
+\section{System Requirements and Software Dependencies}\label{sec:systemRequirements}
|
|
{
|
|
{
|
|
\centering
|
|
\centering
|
|
\small
|
|
\small
|
|
@@ -67,7 +66,6 @@ Advantages of this architecture include:
|
|
\end{longtable}
|
|
\end{longtable}
|
|
}
|
|
}
|
|
|
|
|
|
-\section{Software Dependencies}\label{sec:softwareDependencies}
|
|
|
|
{
|
|
{
|
|
\centering
|
|
\centering
|
|
\small
|
|
\small
|
|
@@ -76,8 +74,8 @@ Advantages of this architecture include:
|
|
\textbf{Dependency} && \textbf{Version} \\
|
|
\textbf{Dependency} && \textbf{Version} \\
|
|
Java && $\geq8$ \\
|
|
Java && $\geq8$ \\
|
|
\rowcolor{gray!25}
|
|
\rowcolor{gray!25}
|
|
- JSON-java~\ref{leary_json-java:_2018} && \\
|
|
|
|
- Eclipse Layout Kernel~\ref{noauthor_elk:_2018} && \\
|
|
|
|
|
|
+ JSON-java~\cite{leary_json-java:_2018} && \\
|
|
|
|
+ Eclipse Layout Kernel~\cite{noauthor_elk:_2018} && \\
|
|
\\
|
|
\\
|
|
\caption[Software Dependencies]{Software Dependencies. If no version is given, all should work and the latest is recommended.}
|
|
\caption[Software Dependencies]{Software Dependencies. If no version is given, all should work and the latest is recommended.}
|
|
\label{table:softwareDependencies}
|
|
\label{table:softwareDependencies}
|
|
@@ -99,7 +97,9 @@ 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 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}.
|
|
The internal representation of graphs is further explained in the section~\ref{sec:graph}.
|
|
|
|
|
|
|
|
+{
|
|
\centering
|
|
\centering
|
|
|
|
+\small
|
|
\begin{longtable}{|l|l|l|p{8.5cm}|}
|
|
\begin{longtable}{|l|l|l|p{8.5cm}|}
|
|
\hline
|
|
\hline
|
|
Attribute & Type & Optional & Explanation \\\hline\hline
|
|
Attribute & Type & Optional & Explanation \\\hline\hline
|
|
@@ -118,7 +118,7 @@ The internal representation of graphs is further explained in the section~\ref{s
|
|
\caption[Node Attributes]{Node Attributes. < \emph{element type} > is a list.}
|
|
\caption[Node Attributes]{Node Attributes. < \emph{element type} > is a list.}
|
|
\label{table:node-attributes}
|
|
\label{table:node-attributes}
|
|
\end{longtable}
|
|
\end{longtable}
|
|
-\raggedright
|
|
|
|
|
|
+}
|
|
|
|
|
|
\begin{figure}[htp]
|
|
\begin{figure}[htp]
|
|
\centering
|
|
\centering
|
|
@@ -129,6 +129,7 @@ The internal representation of graphs is further explained in the section~\ref{s
|
|
|
|
|
|
\begin{table}[htp]
|
|
\begin{table}[htp]
|
|
\centering
|
|
\centering
|
|
|
|
+ \small
|
|
\begin{longtable}{|l|l|l|p{8.5cm}|}
|
|
\begin{longtable}{|l|l|l|p{8.5cm}|}
|
|
\hline
|
|
\hline
|
|
Attribute & Type & Optional & Explanation \\\hline\hline
|
|
Attribute & Type & Optional & Explanation \\\hline\hline
|
|
@@ -151,16 +152,16 @@ The internal representation of graphs is further explained in the section~\ref{s
|
|
\begin{figure}[htp]
|
|
\begin{figure}[htp]
|
|
\begin{lstinputlisting}[language=json,emph={}]{src/graph.json}
|
|
\begin{lstinputlisting}[language=json,emph={}]{src/graph.json}
|
|
\end{lstinputlisting}
|
|
\end{lstinputlisting}
|
|
- \caption[Example input file]{Example input file that is understood by \appname.}
|
|
|
|
|
|
+ \caption[Example input file]{Example input file that is understood by \appname.
|
|
|
|
+ The graph is also displayed in figure~\ref{fig:full-application-example}.}
|
|
\label{fig:json-example}
|
|
\label{fig:json-example}
|
|
\end{figure}
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
\section{Internal graph representation, \code{graph}}\label{sec:graph}
|
|
\section{Internal graph representation, \code{graph}}\label{sec:graph}
|
|
-One feature that is important to us, is to be able to work with hierarchical graphs (cf.\ chapter~\ref{ch:progress}).
|
|
|
|
|
|
+One feature that is important to us, is to be able to work with hierarchical graphs.
|
|
Therefore a node can contain other nodes and edges.
|
|
Therefore a node can contain other nodes and edges.
|
|
-So far this is similar to what we described in section~\ref{sec:inputFileFormat}.
|
|
|
|
-Additionally, there are multiple attributes that are used during the computation or as output variables.
|
|
|
|
|
|
+In addition to the variables described in section~\ref{sec:inputFileFormat}, there are multiple attributes that are used during the computation or as output variables.
|
|
\begin{itemize}
|
|
\begin{itemize}
|
|
\item The \member{parent} of a node is the node that contains it in the hierarchy.
|
|
\item The \member{parent} of a node is the node that contains it in the hierarchy.
|
|
\item \member{dummy} specifies whether this node is a dummy node.
|
|
\item \member{dummy} specifies whether this node is a dummy node.
|
|
@@ -175,6 +176,7 @@ Additionally, there are multiple attributes that are used during the computation
|
|
\end{itemize}
|
|
\end{itemize}
|
|
The last six bullet points are available separately for each of the four extremal layouts.
|
|
The last six bullet points are available separately for each of the four extremal layouts.
|
|
The last four bullet points are also separately available for the combined layout.
|
|
The last four bullet points are also separately available for the combined layout.
|
|
|
|
+To achieve this, they are stored in the internal classes \code{LayoutInfo} and \code{CombinedLayoutInfo}.
|
|
|
|
|
|
Similarly, edges have the following attributes in addition to those given through the JSON format:
|
|
Similarly, edges have the following attributes in addition to those given through the JSON format:
|
|
\begin{itemize}
|
|
\begin{itemize}
|
|
@@ -270,7 +272,6 @@ A class diagrams for the \code{processor} package is displayed in figure~\ref{fi
|
|
\section{View}\label{sec:view}
|
|
\section{View}\label{sec:view}
|
|
This section only covers the software architecture regarding the views.
|
|
This section only covers the software architecture regarding the views.
|
|
For an explanation of what is actually displayed, see chapter~\ref{ch:ui}
|
|
For an explanation of what is actually displayed, see chapter~\ref{ch:ui}
|
|
-\TODO{outdated}
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
\begin{itemize}
|
|
\item The main window displays a \code{JLayeredPane} on the right where the graph is shown and a \code{menu} of the class \code{JPanel} on the left, where \code{NiceButton}s and \code{PseudoCodeNode}s are located.
|
|
\item The main window displays a \code{JLayeredPane} on the right where the graph is shown and a \code{menu} of the class \code{JPanel} on the left, where \code{NiceButton}s and \code{PseudoCodeNode}s are located.
|
|
@@ -289,7 +290,7 @@ A class diagram of the package \code{view} is displayed in figure~\ref{fig:view}
|
|
|
|
|
|
\begin{figure}[htp]
|
|
\begin{figure}[htp]
|
|
\centering
|
|
\centering
|
|
- \includegraphics[width=0.9\linewidth,trim=0 11cm 0 0,clip]{img/main_and_view.pdf}
|
|
|
|
|
|
+ \includegraphics[width=\linewidth,trim=0 11cm 0 0,clip]{img/main_and_view.pdf}
|
|
\caption[Class diagram of the packages \code{view} and \code{main}]{Class diagram of the packages \code{view} and \code{main}.
|
|
\caption[Class diagram of the packages \code{view} and \code{main}]{Class diagram of the packages \code{view} and \code{main}.
|
|
Getters, setters and contructors are not omitted because most of them perform nontrivial computations.}
|
|
Getters, setters and contructors are not omitted because most of them perform nontrivial computations.}
|
|
\label{fig:view}
|
|
\label{fig:view}
|