Browse Source

write on system requirements and dependencies

Eren Yilmaz 6 years ago
parent
commit
ddd26f801f
3 changed files with 60 additions and 14 deletions
  1. 54 11
      doc/chapter/2architecture.tex
  2. 2 1
      doc/chapter/4progress.tex
  3. 4 2
      doc/chapter/appendix.tex

+ 54 - 11
doc/chapter/2architecture.tex

@@ -32,6 +32,48 @@ Figure~\ref{fig:components} contains a component diagram that illustrates these
 \end{figure}
 
 
+\section{System Requirements}\label{sec:systemRequirements}
+\begin{table}[ht]
+	\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 × 768 resolution & 1920 x 1080 resolution \\
+        \rowcolor{gray!25}
+        CPU & capable of running java applications & faster is better \\
+        GPU & not any & not any\\
+        \rowcolor{gray!25}
+        Internet connection & not any & not any\\
+        \\
+	\end{longtable}
+	\caption{System Requirements}
+	\label{table:systemRequirements}
+\end{table}
+
+
+\section{Software Dependencies}\label{sec:softwareDependencies}
+\begin{table}[ht]
+	\centering
+    \small
+    \begin{longtable}{l l p{6cm}}
+        \rowcolor{gray!50}
+		\textbf{Dependency} & \textbf{Version} \\
+		Java & $\geq8$ \\
+        \rowcolor{gray!25}
+        JSON-java~\ref{leary_json-java:_2018} & \\
+        Eclipse Layout Kernel~\ref{noauthor_elk:_2018} & \\
+	\end{longtable}
+	\caption[Software Dependencies]{Software Dependencies. If no version is given, all should work and the latest is recommended.}
+	\label{table:softwareDependencies}
+\end{table}
+
+
 \section{Input File Format}\label{sec:inputFileFormat}
 The input to \appname\ is a JSON file.
 An example is displayed in figure~\ref{fig:json-example}.
@@ -170,22 +212,23 @@ By these means our implementation is oriented more towards the original paper by
 
 The \enquote{stages} of the algorithm, located in the package \code{bk}, represent intervals during which each step of the algorithm is performed in a similar way.
 These stages, however, do not run the algorithm, but instead create lines of pseudocode, class \code{PseudoCodeNode}, that can be executed (don't be mislead by the term pseudocode!).
-More precisely each \code{PseudoCodeNode} is a line of code that can be displayed and contains a \code{CodeLine} that can be executed.
-All the stages are displayed in class diagram~\ref{fig:bk}.
+More precisely, each \code{PseudoCodeNode} is a line of code that can be displayed and contains a \code{CodeLine} that can be executed.
+The \code{PseudoCodeNode}s are arranged hierarchically to form a whole pseudocode tree.
+All the stages are displayed in class diagram~\ref{fig:bk} while the different kinds of \code{CodeLine}s are listed in class diagram~\ref{fig:codeline}.
 
-\TODO{write about processor}
-
-Note that the \code{AnimationController} is not a controller in the MVC sense that it processes user input, but in the sense that it \emph{controls} the execution of steps/stages.
+For the execution of the \code{CodeLine}s a \code{PseudoCodeProcessor} interacts with its own \code{ProcessController} and \code{Memory}.
+Note that the \code{ProcessController} is not a controller in the MVC sense that it processes user input, but in the sense that it \emph{controls} the execution of steps/stages.
 This works the following:
 \begin{enumerate}
-    \item The \code{MainView} creates a node placement algorithm (only \code{BKNodePlacement} available).
-    It sends an \code{AnimationController} as a parameter for the constructor.
-    \item The algorithm concurrently asks the \code{AnimationController} if it should do a forward or backward step and if that is a \enquote{step into}, \enquote{step over} or \enquote{step out}.
-    \item The \code{AnimationController} waits until it knows which action to take (for example if the user pressed Alt + Right arrow key).
+    \item The \code{MainView} creates a node placement algorithm (only \code{BKNodePlacement} available) and a \code{PseudoCodeProcessor} to run it.
+    \item The processor concurrently asks its associated \code{ProcessController} if it should do a forward or backward step and if that is a \enquote{step into}, \enquote{step over} or \enquote{step out}.
+    \item The \code{ProcessController} waits until it knows which action to take (for example if the user pressed Alt + Right arrow key, see chapter~\ref{ch:ui}).
     Alternatively, if the animation is not paused, it waits until a specific delay has passed.
-    Then it returns to the algorithm which step to take next.
-    \item The algorithm potentially calls one the step methods of other stages while executing one step.
+    Then it returns to the processor which step to take next.
+    \item Depending on the return value, the processor executes one or multiple lines of code in forwards or backwards direction.
 \end{enumerate}
+A class diagrams for the \code{processor} package is displayed in figure~\ref{fig:processor}.
+
 
 \begin{figure}[htp]
     \centering

+ 2 - 1
doc/chapter/4progress.tex

@@ -51,6 +51,7 @@ The following features are either planned (\planned), under construction (\progr
         \item[\done] Right clicking the code to expand or collapse all lines up to a specified level.
     \end{itemize}
     \item[\done] Using debugger-like commands such as \enquote{step into}, \enquote{step over}, \enquote{step out}.
+    \item[\done] Running the algorithm backwards, both manually and automatic, using \enquote{step backwards into}, \enquote{step backwards over}, \enquote{step backwards out}.
     \item[\done] Adding buttons and other graphical elements to support the user interface (low priority, see figure~\ref{fig:sketch}).
     Currently there is only keyboard input (cf.\ section~\ref{sec:userInterface}).
     \begin{itemize}
@@ -68,5 +69,5 @@ The following features are either planned (\planned), under construction (\progr
 Only the most important unsolved issues are listed here.
 For a complete list, see \url{http://gogs.koljastrohm-games.com/GraphDrawer/NodeShuffler/issues}.
 \begin{itemize}
-    \item The most important issues were solved.
+    \item[\done] The most important issues were solved.
 \end{itemize}

+ 4 - 2
doc/chapter/appendix.tex

@@ -18,12 +18,14 @@
         \member{align} & See table~\ref{table:bk-variables} & \\
         Extremal layout & Defines in which order the layers are traversed and if a node is aligned with its upper or lower median. & Leftmost lower \\
         \rowcolor{gray!25}
-        Automatic execution & The state of the \code{AnimationController} where it repeatedly sends step commands with a certain delay & See section~\ref{sec:userInterface} \\
+        Automatic execution & The state of the \code{ProcessController} where it repeatedly sends step commands with a certain delay & See section~\ref{sec:userInterface} \\
         Automatic backwards execution & Special case of automatic execution in backwards direction & See section~\ref{sec:userInterface} \\
         \rowcolor{gray!25}
         pseudocode & Code that does not clearly belong to a specific programming language.
         It can actually be executed, although we call it pseudocode. & see figure~\ref{fig:full-application-example} \\
-        step overrun & The state of the \code{AnimationController} where it repeatedly sends step commands, but only inserts a delay after steps whose line of pseudocode is currently unfolded in the pseudocode view. & See section~\ref{sec:userInterface} \\
+        step overrun & The state of the \code{ProcessController} where it repeatedly sends step commands, but only inserts a delay after steps whose line of pseudocode is currently unfolded in the pseudocode view. & See section~\ref{sec:userInterface} \\
+        \rowcolor{gray!25}
+        Processor & See section~\ref{sec:theActualAlgorithm}. & \\
         \\\\
 	\end{longtable}
 	\caption{Glossary for the most difficult terms as we use them.}