Skip to content
Snippets Groups Projects
usecases.tex 13.9 KiB
Newer Older
\documentclass[../mainDocument.tex]{subfiles}
\begin{document}
	\section{Use-Cases}	
	Dieser Abschnitt basiert auf \cite{CrESt} und den darin verwendeten	Bezeichnungen und beschriebenen Use-Cases.
	
	Während der Entwicklung sollte auf größtmögliche Konformität mit dem
lenoelda's avatar
lenoelda committed
	bestehenden Projekt der Assystem geachtet werden.
	\begin{figure}
	\caption{Use Case Diagramm 2. Version}
	\input{tikzImgs/uc_diagram_2.tex}
	\end{figure}
	\clearpage
unknown's avatar
unknown committed
	
	\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.
	Weitere Informationen sind in Tabelle~\ref{tab:UC:showStatus} zu finden.
	
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:showStatus}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{Mindestens ein Fahrzeug ist eingeschaltet.} \\ \hline
			
			\tabHead{Nachbed.} & 
			\tabBody{Ausgeben des aktuellen Status verändert während der Übertragung nicht die Operation der Fahrzeuge.} \\ \hline
			
			\tabHead{Akteure} & 
			\tabBody{Operator, \gls{GV}} \\ \hline
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item Fahrzeug(e) wird/werden eingeschaltet.
					\item Fahrzeuge beginnen mit Übertragung von Position, Geschwindigkeit und Kolonnenstatus.
				\end{enumerate}
			} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:min}
					\item \nameref{AS:setupDist}
					\item \nameref{AS:stopCar}
					\item \nameref{AS:changeDist}
					\item \nameref{AS:asynStart-2}
					\item \nameref{AS:circle}
					\item \nameref{AS:changeSpeed}
					\item \nameref{AS:RCcontrol}
				\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 - 10 Status ausgeben} \label{tab:UC:showStatus}
unknown's avatar
unknown committed
	\end{table}
	
	\subsection*{UC - 20 Kolonnenfahren}\label{UC:runPlatoon}
unknown's avatar
unknown committed
	%Unter Use Cases wie UC 31: Abstand halten siehe CrESt?
	\addcontentsline{toc}{subsection}{\nameref{UC:runPlatoon}}
	
	Dieser Use-Case dient dazu, das Fahren einer bereits existierende Kolonne
	auf einer Fahrbahn in festgelegten Abständen und mit einer festgelegten
	Geschwindigkeit zu organisieren.
	%Das \gls{LV} kann dabei neue \gls{IPD} und \gls{PS}-Werte für die Kolonne festlegen.
	%Diese Werte umzusetzen heißt, dass die Fahrzeuge dafür sorgen, dass sie selbstständig die Geschwindigkeit und Abstände fahren,
	%die vom \gls{LV} erwartet werden. Beide Werte müssen so schnell wie möglich umgesetzt werden,
	%wobei erst die Entfernung und dann die Geschwindigkeit angepasst wird.
	%Jedes Fahrzeug ist stets damit beschäftigt, so dicht wie möglich seinen Abstand zum voranfahrenden Fahrzeug
	%und seine Geschwindigkeit an \gls{IPD} und \gls{PS} anzupassen und die Differenz dazwischen zu minimieren.
	Weitere Informationen sind in Tabelle~\ref{tab:UC:runPlatoon} zu finden.
	
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:runPlatoon}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{Eine existierende Kolonne steht oder fährt auf einer Fahrbahn.} \\ \hline
			
			\tabHead{Nachbed.} & 
			\tabBody{Die Kolonne fährt weiter auf der Fahrbahn} \\ \hline
			
			\tabHead{Akteure} & 
			\tabBody{\gls{LV}, mindestens ein \gls{FV}} \\ \hline
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \gls{LV} prüft seinen Abstand und relative Geschwindigkeit zu voraus befindlichen Objekten auf der Strecke.
					\item \gls{LV} legt neue Werte für die \gls{IPD} und den \gls{PS} fest.
					\item Jedes \gls{FV} passt seinen Abstand zum voranfahrenden Fahrzeug an die \gls{IPD} an und setzt die \gls{PS} um.\footnotemark
					\item Jedes \gls{FV} übermittelt die geänderten Werte.
					\item Jedes \gls{FV} hält die vorgegebenen Werte bis vom \gls{LV} neue Werte vorgegeben werden, indem die Differenz zwischen dem \gls{IPD} und der eigenen Distanz zum voranfahrenden Fahrzeug und die Differenz \gls{PS} und der eigenen Geschwindigkeit durch Geschwindigkeitskorrekturen minimiert wird.
				\end{enumerate}
			} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:min}
					\item \nameref{AS:setupDist}
					\item \nameref{AS:stopCar}
					\item \nameref{AS:changeDist}
					\item \nameref{AS:asynStart-2}
					\item \nameref{AS:circle}
					\item \nameref{AS:changeSpeed}
					\item \nameref{AS:RCcontrol}  
				\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 - 20 Kolonnenfahren} \label{tab:UC:runPlatoon}
unknown's avatar
unknown committed
	\end{table}
	\footnotetext{{Details dazu folgen in der Modulbeschreibung zum (C)ACC.}}
	
	\subsection*{UC - 30 Kolonne beitreten}\label{UC:joinPlatoon}
unknown's avatar
unknown committed
	\addcontentsline{toc}{subsection}{\nameref{UC:joinPlatoon}}
	Dieser Use-Case dient dazu, weitere Fahrzeuge in eine Kolonne aufzunehmen. Gegebenenfalls wird vorher eine Kolonne erstellt, falls noch keine existiert.
	Mehrere Fahrzeuge (mind. 2) erkennen sich gegenseitig und beginnen zu kommunizieren.
unknown's avatar
unknown committed
	Dabei können nur Fahrzeuge, die direkt hinter der Kolonne fahren, in diese aufgenommen werden.
	Weitere Informationen sind in Tabelle~\ref{tab:UC:joinPlatoon} zu finden.
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:joinPlatoon}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{
			\begin{enumerate}
			\item[a)] Es existieren mindestens 2 Fahrzeuge, die eine Kolonne bilden wollen.
			\item[b)] Ein einzelnes Fahrzeug (\gls{PFV}) fährt hinter einer bestehenden Kolonne (ein \gls{LV} und mindestens ein \gls{FV}) und will dieser beitreten.
			\end{enumerate}} \\ \hline
unknown's avatar
unknown committed
			
			\tabHead{Nachbed.} & 
			\tabBody{
			\begin{enumerate}
			\item[a)] Die Fahrzeuge kommunizieren miteinander und die Rollenverteilung hat statt gefunden.
			\item[b)] Das Fahrzeug fährt als \gls{FV} an hinterster Position als Teil der Kolonne.
			\end{enumerate}} \\ \hline
unknown's avatar
unknown committed
			
			\tabHead{Akteure} & 
			\tabBody{
			\begin{enumerate}
			\item[a)] Operator, 2 \gls{PFV}
			\item[b)] \gls{LV}, mindestens ein \gls{FV}, \gls{PFV}
			\end{enumerate}} \\ \hline
unknown's avatar
unknown committed
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item[a)] Es existiert noch keine Kolonne:
unknown's avatar
unknown committed
					\begin{enumerate}
					\item[1.] Die \gls{PFV} erhalten die Ausgabe, sich zu einer Kolonne zusammenzuschließen.
					\item[2.] Die Kommunikation zwischen den \gls{PFV} wird aufgenommen.
					\item[3.] Die \gls{PFV} legen selbständig fest, welches der Fahrzeuge das \gls{LV} und welches das \gls{FV} wird.
					\item[4.] Der Kolonnenstatus wird im Log festgehalten.
					\item[5.] Die nun erstellte Kolonne kann mit \nameref{UC:showStatus} überprüft werden.
				\end{enumerate}
					\item[b)] Es existiert bereits eine Kolonne.
					\begin{enumerate}
					\item[1.] \gls{PFV} sendet seinen Beitrittswunsch als eine Nachricht.
					\item[2.] \gls{LV} sendet Antwort mit der Kennung\footnote{In der Gruppe wurden QR Codes als Kennung diskutiert. Dies gehört jedoch nicht in die Use Case Beschreibung.} des letzten \gls{FV}.
					\item[3.] \gls{PFV} prüft die Kennung des voranfahrenden Fahrzeugs.			
					\begin{enumerate}
						\item[a)] Kennung passt, dann weiter mit \ref{it:afterIdMatch}.
						\item[b)] \label{it:idMissmatch}Kennung passt nicht, dann Abbruch.
unknown's avatar
unknown committed
					\end{enumerate}
					\item[4.] \label{it:afterIdMatch}\gls{PFV} erhält die nächsten \gls{PS} und \gls{IPD} vom \gls{LV}.
					\item[5.] \gls{PFV} passt den Abstand zum letzen \gls{FV} an.
					\item[6.] \gls{PFV} passt die eigene Geschwindigkeit an.
					\item[7.] \gls{PFV} bestätigt erfolgreiche Umsetzung in einer Nachricht.
					\item[8.] \gls{LV} passt sein Wissen über die Kennung des letzen \gls{FV} an.
					\item[9.] Der Kolonnenstatus wird im Log festgehalten.
				\end{enumerate}
unknown's avatar
unknown committed
				\end{enumerate}
			} \\ \hline
			
			\tabHead{alt. Ende} &
			\tabBody{Abbruch in \ref{it:idMissmatch} - Fahrzeug wird nicht in die Kolonne aufgenommen.} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:min}
					\item \nameref{AS:setupDist}
					\item \nameref{AS:stopCar}
					\item \nameref{AS:changeDist}
					\item \nameref{AS:asynStart-2}
					\item \nameref{AS:circle}
					\item \nameref{AS:changeSpeed}
					\item \nameref{AS:RCcontrol}
				\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 - 30 Kolonne beitreten} \label{tab:UC:joinPlatoon}
unknown's avatar
unknown committed
	\end{table}
	
	\subsection*{UC - 40 Kolonne verlassen}\label{UC:leavePlatoon}
unknown's avatar
unknown committed
	\addcontentsline{toc}{subsection}{\nameref{UC:leavePlatoon}}
	
	Dieser Use-Case dient dazu, als \gls{FV} aus der Kolonne auszutreten. Dabei können nur \gls{FV}, welche an letzter Stelle der Kolonne fahren, diese regulär verlassen.
	Falls sich in der Kolonne nur noch das \gls{LV} und ein \gls{FV} befinden, wird die Kolonne aufgelöst.
unknown's avatar
unknown committed
	Weitere Informationen sind in Tabelle~\ref{tab:UC:leavePlatoon} zu finden.
	
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:leavePlatoon}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{Eine Kolonne existiert. Fahrzeug fährt an letzter Position.} \\ \hline
			
			\tabHead{Nachbed.} & 
			\tabBody{
			Fahrzeug ist nicht mehr in der Kolonne. 
			\gls{LV} hat aktualisierte Platoon-Statusdaten.} \\ \hline
unknown's avatar
unknown committed
			
			\tabHead{Akteure} & 
			\tabBody{\gls{LV}, \gls{PFV}, \gls{FV}} \\ \hline
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item Letztes \gls{FV} signalisiert Austrittswunsch und wird zu einem \gls{PFV}
unknown's avatar
unknown committed
					\item \gls{LV} aktualisiert Platoon-Statusdaten
					\item \gls{LV} signalisiert \gls{PFV}, dass es nicht mehr Teil des Platoons ist
					\item Der Kolonnenstatus wird im Log festgehalten.
					\item \gls{PFV} schert aus
					\item \label{it:disperse} Falls nur noch das \gls{LV} in der Kolonnen ist, löst es die Kolonne auf.
					\item Der Kolonnenstatus wird im Log festgehalten.
unknown's avatar
unknown committed
				\end{enumerate}
			} \\ \hline
			
			\tabHead{alt. Ende} &
			\tabBody{Weitere Schritte in \ref{it:disperse} - Kolonne wurde aufgelöst. Alle teilnehmenden Fahrzeuge treffen ihre Entscheidungen nun selbstständig.} \\ \hline
			
unknown's avatar
unknown committed
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:stopCar}
				\end{enumerate}} \\ \hline
			
			%\tabHead{nutzt \gls{RQ}}  &
			%\tabBody{
				%\begin{enumerate}[leftmargin=*]
					%\item \nameref{RQ:leaveMsg}
					%\item \nameref{RQ:mngPlatState}
				%\end{enumerate}
			%}\\ \hline
			
		\end{tabularx}
		\caption{Details zum UC - 40 Kolonne verlassen} \label{tab:UC:leavePlatoon}
unknown's avatar
unknown committed
	\end{table}
	
	\subsection*{UC - 50 Kolonnendaten ändern}\label{UC:changePlatoonData}
unknown's avatar
unknown committed
	\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{Operator, \gls{LV}} \\ \hline
unknown's avatar
unknown committed
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item	Operator sendet neue IPD und PS Werte an das \gls{LV}.
					\item Die Kolonne f\"ahrt mit den \"ubermittelten IPD und PS Werten. 
unknown's avatar
unknown committed
				\end{enumerate}
			} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:changeDist}
				\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 - 50 Kolonnendaten ändern} \label{tab:UC:changePlatoonData}
unknown's avatar
unknown committed
	\end{table}
	
	\subsection*{UC - 60 Geschwindigkeit ändern}\label{UC:changeSpeed}
unknown's avatar
unknown committed
	\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{Operator, ein nicht \gls{FV}} \\ \hline
unknown's avatar
unknown committed
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item	Operator sendet eine neue Sollgeschwindigkeit an das Fahrzeug.
					\item Das Fahrzeug passt seine Geschwindigkeit an die Sollgeschwindigkeit an, sofern der Sicherheitsabstand nach vorne eingehalten wird.
unknown's avatar
unknown committed
				\end{enumerate}
			} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:changeSpeed}
				\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 - 60 Geschwindigkeit ändern} \label{tab:UC:changeSpeed}
unknown's avatar
unknown committed
	\end{table}