diff --git a/doc/mainDocument/sections/ausbaustufen.tex b/doc/mainDocument/sections/ausbaustufen.tex index 8ecbe41783f8bbe34c3ed7e3f072bf0f7c23fb7f..2f806b70c04e0f41ca4669166b56b617aa405d8a 100644 --- a/doc/mainDocument/sections/ausbaustufen.tex +++ b/doc/mainDocument/sections/ausbaustufen.tex @@ -30,7 +30,6 @@ \underline{Benötigte Use-Cases:} \begin{itemize} \item \nameref{UC:showStatus} - \item \nameref{UC:createPlatoon} \item \nameref{UC:runPlatoon} \item \nameref{UC:joinPlatoon} %für Kolonnenbeitritt des 3. Fahrzeugs \item \nameref{UC:distKeeping} @@ -105,7 +104,7 @@ Der Operator platziert das Hindernis, nachdem alle drei Fahrzeuge Teil der Kolonne sind, irgendwann während der Fahrt auf die Strecke.\\[1.5ex] \underline{Zusätzlich zu \nameref{AS:asynStart} benötigte Use-Cases:} \begin{itemize} - \item \nameref{UC:laneKeeping} + \item keine \end{itemize} %Organisation (Platoon-creating/-running/-joining) während der Fahrt (dynamische Organisation) @@ -143,7 +142,6 @@ \underline{Benötigte Use-Cases:} \begin{itemize} \item \nameref{UC:showStatus} - \item \nameref{UC:createPlatoon} \item \nameref{UC:runPlatoon} \item \nameref{UC:joinPlatoon} %für Kolonnenbeitritt des 3. Fahrzeugs \item \nameref{UC:distKeeping} diff --git a/doc/mainDocument/sections/usecases.tex b/doc/mainDocument/sections/usecases.tex index 4649da61ea915b98d554eaf16f2a6332087cd647..3da617c2b1064da307a6dfc2264ce58fb655f7a3 100644 --- a/doc/mainDocument/sections/usecases.tex +++ b/doc/mainDocument/sections/usecases.tex @@ -6,22 +6,10 @@ Während der Entwicklung sollte auf größtmögliche Konformität mit dem bestehenden Projekt der Assystem geachtet werden. \begin{figure} - \caption{Use Case Diagramm 1. Version} - \input{tikzImgs/uc_diagram.tex} - \end{figure} - \begin{figure} \caption{Use Case Diagramm 2. Version} \input{tikzImgs/uc_diagram_2.tex} \end{figure} \clearpage - Um die Anzahl der Use Cases zu reduzieren: - \begin{itemize} - \item UC - Kolonne erstellen ist kein eigenständiger UC, sondern ist nun in UC - Kolonne beitreten miteinbegriffen - \item UC - Kolonne auflösen ist kein eigenständiger UC, sondern ist nun in UC - Kolonne verlassen miteinbegriffen - \item UC - Abstand halten und UC - Fahrbahn folgen sind nun in UC - Kolonnenfahren miteinbegriffen - \end{itemize} - Es wurde noch überlegt, einen Use Case hinzuzufügen, der die Fahrmodi (ACC, CACC(LV), CACC(FV), RC) repräsentiert. - %TO DO Reihenfolge ändern ??? \subsection*{UC - 10 Status ausgeben}\label{UC:showStatus} \addcontentsline{toc}{subsection}{\nameref{UC:showStatus}} @@ -77,65 +65,6 @@ \caption{Details zum UC - Ausgeben des aktuellen Status} \label{tab:UC:showStatus} \end{table} - \subsection*{UC - 20 Kolonne erstellen}\label{UC:createPlatoon} - \addcontentsline{toc}{subsection}{\nameref{UC:createPlatoon}} - - Dieser Use-Case dient dazu, eine Kolonne zu erstellen. - Mehrere Fahrzeuge (mind. 2) erkennen sich gegenseitig und beginnen zu kommunizieren. - Weitere Informationen sind in Tabelle~\ref{tab:UC:createPlatoon} zu finden. - - \begin{table}[H] \centering - \rowcolors{1}{light-gray}{white} - \begin{tabularx}{\textwidth}{|c|X|} \hline - \tabHead{Id} & - \tabBody{\nameref{UC:createPlatoon}} \\ \hline - - \tabHead{Vorbed.} & - \tabBody{Es existieren mindestens 2 Fahrzeuge, die eine Kolonne bilden wollen.} \\ \hline - - \tabHead{Nachbed.} & - \tabBody{Die Fahrzeuge kommunizieren miteinander und die Rollenverteilung hat statt gefunden.} \\ \hline - - \tabHead{Akteure} & - \tabBody{Operator, 2 \gls{PFV}} \\ \hline - - \tabHead{Ablauf} & - \tabBody{ - \begin{enumerate}[leftmargin=*] - \item Die \gls{PFV} erhalten die Ausgabe, sich zu einer Kolonne zusammenzuschließen. - \item Die Kommunikation zwischen den \gls{PFV} wird aufgenommen. - \item Die \gls{PFV} legen selbständig fest, welches der Fahrzeuge das \gls{LV} und welches das \gls{FV} wird. - \item Der Kolonnenstatus wird im Log festgehalten. - \item Die nun erstellte Kolonne kann mit \nameref{UC:showStatus} überprüft werden. - \end{enumerate} - } \\ \hline - - \tabHead{für \gls{AS}} & - \tabBody{ - \begin{enumerate}[leftmargin=*] - \item \nameref{AS:circle} - \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 - Kolonne erstellen} \label{tab:UC:createPlatoon} - \end{table} - \subsection*{UC - 30 Kolonnenfahren}\label{UC:runPlatoon} %Unter Use Cases wie UC 31: Abstand halten siehe CrESt? \addcontentsline{toc}{subsection}{\nameref{UC:runPlatoon}} @@ -205,7 +134,8 @@ \subsection*{UC - 40 Kolonne beitreten}\label{UC:joinPlatoon} \addcontentsline{toc}{subsection}{\nameref{UC:joinPlatoon}} - Dieser Use-Case dient dazu, weitere Fahrzeuge in eine bereits existierende Kolonne aufzunehmen. + 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. 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 @@ -215,30 +145,53 @@ \tabBody{\nameref{UC:joinPlatoon}} \\ \hline \tabHead{Vorbed.} & - \tabBody{Ein einzelnes Fahrzeug (\gls{PFV}) fährt hinter einer bestehenden Kolonne (ein \gls{LV} und mindestens ein \gls{FV}) und will dieser beitreten.} \\ \hline + \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 \tabHead{Nachbed.} & - \tabBody{Das Fahrzeug fährt als \gls{FV} an hinterster Position als Teil der Kolonne.} \\ \hline + \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 \tabHead{Akteure} & - \tabBody{\gls{LV}, mindestens ein \gls{FV}, \gls{PFV}} \\ \hline + \tabBody{ + \begin{enumerate} + \item[a)] Operator, 2 \gls{PFV} + \item[b)] \gls{LV}, mindestens ein \gls{FV}, \gls{PFV} + \end{enumerate}} \\ \hline \tabHead{Ablauf} & \tabBody{ \begin{enumerate}[leftmargin=*] - \item \gls{PFV} sendet seinen Beitrittswunsch als eine Nachricht. - \item \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 \gls{PFV} prüft die Kennung des voranfahrenden Fahrzeugs. + \item[a)] Es existiert noch keine Kolonne: \begin{enumerate} - \item Kennung passt, dann weiter mit \ref{it:afterIdMatch}. - \item \label{it:idMissmatch}Kennung passt nicht, dann Abbruch. + \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. \end{enumerate} - \item \label{it:afterIdMatch}\gls{PFV} erhält die nächsten \gls{PS} und \gls{IPD} vom \gls{LV}. - \item \gls{PFV} passt den Abstand zum letzen \gls{FV} an. - \item \gls{PFV} passt die eigene Geschwindigkeit an. - \item \gls{PFV} bestätigt erfolgreiche Umsetzung in einer Nachricht. - \item \gls{LV} passt sein Wissen über die Kennung des letzen \gls{FV} an. - \item Der Kolonnenstatus wird im Log festgehalten. + \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} \end{enumerate} } \\ \hline @@ -274,6 +227,7 @@ \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. Weitere Informationen sind in Tabelle~\ref{tab:UC:leavePlatoon} zu finden. \begin{table}[H] \centering @@ -286,8 +240,9 @@ \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 + \tabBody{ + Fahrzeug ist nicht mehr in der Kolonne. + \gls{LV} hat aktualisierte Platoon-Statusdaten.} \\ \hline \tabHead{Akteure} & \tabBody{\gls{LV}, \gls{PFV}, \gls{FV}} \\ \hline @@ -295,14 +250,19 @@ \tabHead{Ablauf} & \tabBody{ \begin{enumerate}[leftmargin=*] - \item Letzte \gls{FV} signalisiert Austrittswunsch und wird zu einem \gls{PFV} + \item Letztes \gls{FV} signalisiert Austrittswunsch und wird zu einem \gls{PFV} \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. \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 + \tabHead{für \gls{AS}} & \tabBody{ \begin{enumerate}[leftmargin=*] @@ -321,148 +281,6 @@ \caption{Details zum UC - Kolonne verlassen} \label{tab:UC:leavePlatoon} \end{table} - \subsection*{UC - 60 Kolonne auflösen}\label{UC:deletePlatoon} %in CrRESt stand dissolvePlatoon - \addcontentsline{toc}{subsection}{\nameref{UC:deletePlatoon}} %in CrRESt stand dissolvePlatoon - - Dieser Use-Case dient dazu, eine existierende Kolonne aufzulösen, wenn \nameref{UC:leavePlatoon} eintritt und sich in der Kolonne nur noch das \gls{LV} und ein \gls{FV} befinden. - Weitere Informationen sind in Tabelle~\ref{tab:UC:deletePlatoon} zu finden. - - \begin{table}[H] \centering - \rowcolors{1}{light-gray}{white} - \begin{tabularx}{\textwidth}{|c|X|} \hline - \tabHead{Id} & - \tabBody{\nameref{UC:deletePlatoon}} \\ \hline - - \tabHead{Vorbed.} & - \tabBody{Ein Kolonne aus einem \gls{LV} und einem \gls{FV} existiert. } \\ \hline - - \tabHead{Nachbed.} & - \tabBody{Kolonne wurde aufgelöst. Alle teilnehmenden Fahrzeuge treffen ihre Entscheidungen nun selbstständig.} \\ \hline - - \tabHead{Akteure} & - \tabBody{LV, FV} \\ \hline - - \tabHead{Ablauf} & - \tabBody{ - \begin{enumerate}[leftmargin=*] - \item \gls{LV} sendet an das \gls{FV} die Information, die Kolonne zu verlassen. - \item \gls{LV} löst Kolonne auf. - \item Der Kolonnenstatus wird im Log festgehalten. - \end{enumerate} - } \\ \hline - - \tabHead{für \gls{AS}} & - \tabBody{ - \begin{enumerate}[leftmargin=*] - \item keine - \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 - Kolonne auflösen} \label{tab:UC:deletePlatoon} - \end{table} - - - \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. - \begin{table}[H] \centering - \rowcolors{1}{light-gray}{white} - \begin{tabularx}{\textwidth}{|c|X|} \hline - \tabHead{Id} & - \tabBody{\nameref{UC:laneKeeping}} \\ \hline - - \tabHead{Vorbed.} & - \tabBody{Ein Fahrzeug befindet sich auf einer Fahrbahn.} \\ \hline - - \tabHead{Nachbed.} & - \tabBody{Das Fahrzeug befindet sich auf einem späteren Teil der Fahrbahn.} \\ \hline - - \tabHead{Akteure} & - \tabBody{Ein allgemeines Fahrzeug (\gls{GV}).} \\ \hline - - \tabHead{Ablauf} & - \tabBody{ - \begin{enumerate}[leftmargin=*] - \item Das \gls{GV} fährt auf der Fahrbahn. - \item Das \gls{GV} erkennt den Streckenverlauf. - \item Das \gls{GV} passt seine Geschwindigkeit und seine Radstellung dem Streckenverlauf an. - \end{enumerate} - } \\ \hline - - \tabHead{für \gls{AS}} & - \tabBody{ - \begin{enumerate}[leftmargin=*] - \item \nameref{AS:circle} - \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 - 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 \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 - 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. diff --git a/doc/mainDocument/tikzImgs/uc_diagram_2.tex b/doc/mainDocument/tikzImgs/uc_diagram_2.tex index 8d73b452964c58a0eb7eb286eeb164979981c1e1..c850e72e5a12cadee892a0fab274b9797c507987 100644 --- a/doc/mainDocument/tikzImgs/uc_diagram_2.tex +++ b/doc/mainDocument/tikzImgs/uc_diagram_2.tex @@ -19,21 +19,21 @@ \umlHVHinherit[arm2=16mm]{PFV}{GV} \umlassoc{Operator}{usecase-1} + \umlassoc{Operator}{usecase-3} \umlassoc{Operator}{usecase-4} \umlassoc{Operator}{usecase-5} - \umlassoc{Operator}{usecase-9} - \umlassoc{Operator}{usecase-10} + \umlassoc{Operator}{usecase-6} + \umlassoc{LV}{usecase-2} \umlassoc{LV}{usecase-3} \umlassoc{LV}{usecase-4} \umlassoc{LV}{usecase-5} - \umlassoc{LV}{usecase-9} - \umlassoc{FV}{usecase-3} - \umlassoc{FV}{usecase-5} + \umlassoc{FV}{usecase-2} + \umlassoc{FV}{usecase-4} - \umlassoc{PFV}{usecase-4} - \umlassoc{PFV}{usecase-10} + \umlassoc{PFV}{usecase-3} + \umlassoc{PFV}{usecase-6} \umlassoc{GV}{usecase-1}