From 99f64240c4dfa2a1b8b64c8f6775aa99230b0f84 Mon Sep 17 00:00:00 2001
From: Franz Bethke <bethke@math.hu-berlin.de>
Date: Sun, 24 Dec 2017 02:55:31 +0100
Subject: [PATCH] Modify UC-diagram; Add missing UCs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Added 3 more use cases:
  - "UC - 80 Abstandhalten": It seemed weird that "UC - 70
    Fahrbahn folgen" was considered a use case, but distance keeping
    was not represented in any use case.
    One could consider deleting both use cases.
  - "UC - 90 Kolonnendaten ändern" and "UC - 100 Geschwindigkeit
    ändern" where both added, since the their functionality should not
    be considered part of any other use case, but is essential to the
    project.

Modified associations:
  - Removed PFV from "UC - 50 Kolonne verlassen", since no PFV takes
    action in this use case.
  - Removed FV from "UC - 40 Kolonne beitreten", since no FV takes
    action in this use case.
  - "UC - 10 Status ausgeben" now only has one connection to GV
    instead of one to LV, FV and PFV.

Modified <<include>> and <<extend>> relations:
  - UC - 20 now extends UC - 40, since a platoon needs to be created if
    the first 2 operator want to platoon.
  - UC - 60 now extends UC - 50 for similar reasons.
  - UC - 20 now includes UC - 30.

Added colour coding to the diagram, to group use cases:
  - blue <-> core platoon stuff
  - green <-> input and output of the operator
  - red <-> critical diving

Changed name of "UC - 10"
---
 doc/lastenheft/lastenheft.tex          | 156 ++++++++++++++++++-------
 doc/lastenheft/tikzImgs/uc_diagram.tex |  55 +++++++++
 2 files changed, 169 insertions(+), 42 deletions(-)
 create mode 100644 doc/lastenheft/tikzImgs/uc_diagram.tex

diff --git a/doc/lastenheft/lastenheft.tex b/doc/lastenheft/lastenheft.tex
index 776fcc35..3c82e523 100644
--- a/doc/lastenheft/lastenheft.tex
+++ b/doc/lastenheft/lastenheft.tex
@@ -11,6 +11,8 @@
 \usepackage[table]{xcolor}
 \usepackage{float} % used to allow the [H] option for tables, etc.
 \usepackage{verbatim}	% makes multiline comments possible via \begin{comment}\end{comment}
+\usepackage{ifthen, tikz, xstring, calc, pgfopts} % required for tikz-uml
+\usepackage{../tikz-uml}
 
 %%% GLOSSARY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \input{../glossary.tex}
@@ -25,10 +27,6 @@
 \DeclareFieldFormat{labelalpha}{\thefield{entrykey}}
 \DeclareFieldFormat{extraalpha}{}
 
-%%% USE CASE DIAGRAM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\usepackage{ifthen, tikz, xstring, calc, pgfopts} % required for tikz-uml
-\usepackage{../tikz-uml}
-
 %%% SETTINGS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \usepackage{parskip}  % makes end of paragraphs use an empty line
 \setlength\parindent{0pt} % no indentation
@@ -245,46 +243,11 @@ d.h., der Abstand der Fahrzeuge ist immer größer als Null.\\[1.5ex]
 
 \section{Use-Cases}
 
-\begin{tikzpicture}
-	\begin{umlsystem}[x=4, y=0]{CACC/Platooning}
-		\umlusecase[y=-4.5, width=25mm]{\nameref{UC:showStatus}}
-		\umlusecase[y=-0.5, width=20mm]{\nameref{UC:createPlatoon}}
-		\umlusecase[x=5, y=-6, width=20mm]{\nameref{UC:runPlatoon}}
-		\umlusecase[x=5, y=-9, width=20mm]{\nameref{UC:joinPlatoon}}
-		\umlusecase[x=5, y=-12, width=20mm]{\nameref{UC:leavePlatoon}}
-		\umlusecase[x=5, y=-3, width=20mm]{\nameref{UC:deletePlatoon}}
-		\umlusecase[x=4, width=20mm]{\nameref{UC:laneKeeping}}
-	\end{umlsystem}
-	
-	\umlactor[y=-2]{Operator}
-	\umlactor[x=14, y=-4.5]{LV}
-	\umlactor[x=14, y=-7.5]{FV}
-	\umlactor[x=14, y=-10.5]{PFV}
-	\umlactor[x=14]{GV}
-	
-	\umlHVHinherit[arm2=15mm]{LV}{GV}
-	\umlHVHinherit[arm2=15mm]{FV}{GV}
-	\umlHVHinherit[arm2=15mm]{PFV}{GV}
-	\umlassoc{Operator}{usecase-1}
-	\umlassoc{Operator}{usecase-2}
-	\umlassoc{LV}{usecase-3}
-	\umlassoc{LV}{usecase-4}
-	\umlassoc{LV}{usecase-5}
-	\umlassoc{LV}{usecase-6}
-	\umlassoc{FV}{usecase-3}
-	\umlassoc{FV}{usecase-4}
-	\umlassoc{FV}{usecase-5}
-	\umlassoc{FV}{usecase-6}
-	\umlassoc{PFV}{usecase-4}
-	\umlassoc{PFV}{usecase-5}
-	\umlassoc{GV}{usecase-1}
-	\umlassoc{GV}{usecase-7}
-	\umlinclude{usecase-1}{usecase-2}
-\end{tikzpicture}
+\input{tikzImgs/uc_diagram.tex}
 
 %TO DO Reihenfolge ändern	???
 
-\subsection*{UC - 10 Ausgeben des aktuellen Status}\label{UC:showStatus}
+\subsection*{UC - 10 Status ausgeben}\label{UC:showStatus}
 \addcontentsline{toc}{subsection}{\nameref{UC:showStatus}}
 
 Dieser Use-Case dient dazu, als Operator jederzeit \gls{IPD} und \gls{PS} sowie \gls{LV}, \gls{FV} und potentielle Kolonnenkandidaten (\gls{PFV}) einsehen zu können.
@@ -597,7 +560,6 @@ Weitere Informationen sind in Tabelle~\ref{tab:UC:deletePlatoon} zu finden.
 
 
 \subsection*{UC - 70 Fahrbahn folgen}\label{UC:laneKeeping}
-
 \addcontentsline{toc}{subsection}{\nameref{UC:laneKeeping}}
 Dieser Use-Case dient dazu, ein automatisch agierendes Fahrzeug auf einer vorgegeben Fahrbahn zu halten.
 Weitere Information sind in Tabelle~\ref{tab:UC:laneKeeping} zu finden.
@@ -637,6 +599,116 @@ Weitere Information sind in Tabelle~\ref{tab:UC:laneKeeping} zu finden.
   \caption{Details zum UC - Fahrbahn folgen} \label{tab:UC:laneKeeping}
 \end{table}
 
+\subsection*{UC - 80 Abstand halten}\label{UC:distKeeping}
+\addcontentsline{toc}{subsection}{\nameref{UC:distKeeping}}
+Weitere Information sind in Tabelle~\ref{tab:UC:distKeeping} zu finden.
+\begin{table}[H] \centering
+  \rowcolors{1}{light-gray}{white}
+  \begin{tabularx}{\textwidth}{|c|X|} \hline
+    \tabHead{Id} & 
+    \tabBody{\nameref{UC:distKeeping}} \\ \hline
+    
+    \tabHead{Vorbed.} & 
+    \tabBody{} \\ \hline
+    
+    \tabHead{Nachbed.} & 
+    \tabBody{} \\ \hline
+    
+    \tabHead{Akteure} & 
+    \tabBody{} \\ \hline
+    
+    \tabHead{Ablauf} &
+    \tabBody{\begin{enumerate}[leftmargin=*]
+      \item 
+    \end{enumerate}} \\ \hline
+    
+    \tabHead{für \gls{AS}} &
+    \tabBody{\begin{enumerate}[leftmargin=*]
+      \item
+    \end{enumerate}} \\ \hline
+    
+    %\tabHead{nutzt \gls{RQ}}  &
+    %\tabBody{\begin{enumerate}[leftmargin=*]
+    %  \item Hier stehen Anforderungen mit **nameref**
+    %\end{enumerate}}\\ \hline
+    
+  \end{tabularx}
+  \caption{Details zum UC - 80 Abstand halten} \label{tab:UC:distKeeping}
+\end{table}
+
+\subsection*{UC - 90 Kolonnendaten ändern}\label{UC:changePlatoonData}
+\addcontentsline{toc}{subsection}{\nameref{UC:changePlatoonData}}
+Weitere Information sind in Tabelle~\ref{tab:UC:changePlatoonData} zu finden.
+\begin{table}[H] \centering
+  \rowcolors{1}{light-gray}{white}
+  \begin{tabularx}{\textwidth}{|c|X|} \hline
+    \tabHead{Id} & 
+    \tabBody{\nameref{UC:changePlatoonData}} \\ \hline
+    
+    \tabHead{Vorbed.} & 
+    \tabBody{} \\ \hline
+    
+    \tabHead{Nachbed.} & 
+    \tabBody{} \\ \hline
+    
+    \tabHead{Akteure} & 
+    \tabBody{} \\ \hline
+    
+    \tabHead{Ablauf} &
+    \tabBody{\begin{enumerate}[leftmargin=*]
+      \item 
+    \end{enumerate}} \\ \hline
+    
+    \tabHead{für \gls{AS}} &
+    \tabBody{\begin{enumerate}[leftmargin=*]
+      \item
+    \end{enumerate}} \\ \hline
+    
+    %\tabHead{nutzt \gls{RQ}}  &
+    %\tabBody{\begin{enumerate}[leftmargin=*]
+    %  \item Hier stehen Anforderungen mit **nameref**
+    %\end{enumerate}}\\ \hline
+    
+  \end{tabularx}
+  \caption{Details zum UC - 90 Kolonnendaten ändern} \label{tab:UC:changePlatoonData}
+\end{table}
+
+\subsection*{UC - 100 Geschwindigkeit ändern}\label{UC:changeSpeed}
+\addcontentsline{toc}{subsection}{\nameref{UC:changeSpeed}}
+Weitere Information sind in Tabelle~\ref{tab:UC:changeSpeed} zu finden.
+\begin{table}[H] \centering
+  \rowcolors{1}{light-gray}{white}
+  \begin{tabularx}{\textwidth}{|c|X|} \hline
+    \tabHead{Id} & 
+    \tabBody{\nameref{UC:changeSpeed}} \\ \hline
+    
+    \tabHead{Vorbed.} & 
+    \tabBody{} \\ \hline
+    
+    \tabHead{Nachbed.} & 
+    \tabBody{} \\ \hline
+    
+    \tabHead{Akteure} & 
+    \tabBody{} \\ \hline
+    
+    \tabHead{Ablauf} &
+    \tabBody{\begin{enumerate}[leftmargin=*]
+      \item 
+    \end{enumerate}} \\ \hline
+    
+    \tabHead{für \gls{AS}} &
+    \tabBody{\begin{enumerate}[leftmargin=*]
+      \item
+    \end{enumerate}} \\ \hline
+    
+    %\tabHead{nutzt \gls{RQ}}  &
+    %\tabBody{\begin{enumerate}[leftmargin=*]
+    %  \item Hier stehen Anforderungen mit **nameref**
+    %\end{enumerate}}\\ \hline
+    
+  \end{tabularx}
+  \caption{Details zum UC - 100 Geschwindigkeit ändern} \label{tab:UC:changeSpeed}
+\end{table}
 %Commenting this section out 
 \begin{comment}
 \section{Funktionale Anforderungen}
diff --git a/doc/lastenheft/tikzImgs/uc_diagram.tex b/doc/lastenheft/tikzImgs/uc_diagram.tex
new file mode 100644
index 00000000..60607402
--- /dev/null
+++ b/doc/lastenheft/tikzImgs/uc_diagram.tex
@@ -0,0 +1,55 @@
+\begin{tikzpicture}
+	\begin{umlsystem}[x=4, y=0, fill=black!15]{CACC/Platooning}
+		\umlusecase[x=0, y=0,   width=18mm, fill=green!30]{\nameref{UC:showStatus}}
+		\umlusecase[x=5, y=-12, width=18mm, fill=blue!20]{\nameref{UC:createPlatoon}}
+		\umlusecase[x=5, y=-5,  width=18mm, fill=blue!20]{\nameref{UC:runPlatoon}}
+		\umlusecase[x=5, y=-15, width=18mm, fill=blue!40]{\nameref{UC:joinPlatoon}}
+		\umlusecase[x=1, y=-8,  width=18mm, fill=blue!40]{\nameref{UC:leavePlatoon}}
+		\umlusecase[x=1, y=-11, width=18mm, fill=blue!20]{\nameref{UC:deletePlatoon}}
+		\umlusecase[x=7, y=-2,  width=18mm, fill=red!30]{\nameref{UC:laneKeeping}}
+    \umlusecase[x=3, y=-2,  width=18mm, fill=red!30]{\nameref{UC:distKeeping}}
+    \umlusecase[x=1, y=-5,  width=28mm, fill=green!30]{\nameref{UC:changePlatoonData}}
+    \umlusecase[x=3, y=-17, width=34mm, fill=green!30]{\nameref{UC:changeSpeed}}
+	\end{umlsystem}
+	
+	\umlactor[x=0,  y=-10]{Operator}
+	\umlactor[x=14, y=-10]{LV}
+	\umlactor[x=14, y=-5]{FV}
+	\umlactor[x=14, y=-15]{PFV}
+	\umlactor[x=14, y=1]{GV}
+	
+	\umlHVHinherit[arm2=10mm]{LV}{GV}
+	\umlHVHinherit[arm2=10mm]{FV}{GV}
+	\umlHVHinherit[arm2=10mm]{PFV}{GV}
+  
+	\umlassoc{Operator}{usecase-1}
+	\umlassoc{Operator}{usecase-4}
+	\umlassoc{Operator}{usecase-5}
+	\umlassoc{Operator}{usecase-9}
+	\umlassoc{Operator}{usecase-10}
+  
+	\umlassoc{LV}{usecase-3}
+	\umlassoc{LV}{usecase-4}
+	\umlassoc{LV}{usecase-5}
+	\umlassoc{LV}{usecase-6}
+	\umlassoc{LV}{usecase-9}
+  
+	\umlassoc{FV}{usecase-3}
+	\umlassoc{FV}{usecase-5}
+	\umlassoc{FV}{usecase-6}
+  
+	\umlassoc{PFV}{usecase-4}
+	\umlassoc{PFV}{usecase-2}
+	\umlassoc{PFV}{usecase-10}
+  
+	\umlassoc{GV}{usecase-1}
+	\umlassoc{GV}{usecase-7}
+	\umlassoc{GV}{usecase-8}
+  
+	\umlinclude[pos stereo=0.25]{usecase-2}{usecase-3}
+	\umlinclude{usecase-3}{usecase-7}
+	\umlinclude{usecase-3}{usecase-8}
+  
+	\umlextend{usecase-4}{usecase-2}
+	\umlextend{usecase-5}{usecase-6}
+\end{tikzpicture}
-- 
GitLab