Skip to content
Snippets Groups Projects
Commit 05db70bd authored by Phuc Tran Truong's avatar Phuc Tran Truong
Browse files

clean up use cases and ausbaustufen

parent 1d74da48
No related merge requests found
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
\underline{Benötigte Use-Cases:} \underline{Benötigte Use-Cases:}
\begin{itemize} \begin{itemize}
\item \nameref{UC:showStatus} \item \nameref{UC:showStatus}
\item \nameref{UC:createPlatoon}
\item \nameref{UC:runPlatoon} \item \nameref{UC:runPlatoon}
\item \nameref{UC:joinPlatoon} %für Kolonnenbeitritt des 3. Fahrzeugs \item \nameref{UC:joinPlatoon} %für Kolonnenbeitritt des 3. Fahrzeugs
\item \nameref{UC:distKeeping} \item \nameref{UC:distKeeping}
...@@ -105,7 +104,7 @@ ...@@ -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] 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:} \underline{Zusätzlich zu \nameref{AS:asynStart} benötigte Use-Cases:}
\begin{itemize} \begin{itemize}
\item \nameref{UC:laneKeeping} \item keine
\end{itemize} \end{itemize}
%Organisation (Platoon-creating/-running/-joining) während der Fahrt (dynamische Organisation) %Organisation (Platoon-creating/-running/-joining) während der Fahrt (dynamische Organisation)
...@@ -143,7 +142,6 @@ ...@@ -143,7 +142,6 @@
\underline{Benötigte Use-Cases:} \underline{Benötigte Use-Cases:}
\begin{itemize} \begin{itemize}
\item \nameref{UC:showStatus} \item \nameref{UC:showStatus}
\item \nameref{UC:createPlatoon}
\item \nameref{UC:runPlatoon} \item \nameref{UC:runPlatoon}
\item \nameref{UC:joinPlatoon} %für Kolonnenbeitritt des 3. Fahrzeugs \item \nameref{UC:joinPlatoon} %für Kolonnenbeitritt des 3. Fahrzeugs
\item \nameref{UC:distKeeping} \item \nameref{UC:distKeeping}
......
...@@ -6,22 +6,10 @@ ...@@ -6,22 +6,10 @@
Während der Entwicklung sollte auf größtmögliche Konformität mit dem Während der Entwicklung sollte auf größtmögliche Konformität mit dem
bestehenden Projekt der Assystem geachtet werden. bestehenden Projekt der Assystem geachtet werden.
\begin{figure} \begin{figure}
\caption{Use Case Diagramm 1. Version}
\input{tikzImgs/uc_diagram.tex}
\end{figure}
\begin{figure}
\caption{Use Case Diagramm 2. Version} \caption{Use Case Diagramm 2. Version}
\input{tikzImgs/uc_diagram_2.tex} \input{tikzImgs/uc_diagram_2.tex}
\end{figure} \end{figure}
\clearpage \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} \subsection*{UC - 10 Status ausgeben}\label{UC:showStatus}
\addcontentsline{toc}{subsection}{\nameref{UC:showStatus}} \addcontentsline{toc}{subsection}{\nameref{UC:showStatus}}
...@@ -77,65 +65,6 @@ ...@@ -77,65 +65,6 @@
\caption{Details zum UC - Ausgeben des aktuellen Status} \label{tab:UC:showStatus} \caption{Details zum UC - Ausgeben des aktuellen Status} \label{tab:UC:showStatus}
\end{table} \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} \subsection*{UC - 30 Kolonnenfahren}\label{UC:runPlatoon}
%Unter Use Cases wie UC 31: Abstand halten siehe CrESt? %Unter Use Cases wie UC 31: Abstand halten siehe CrESt?
\addcontentsline{toc}{subsection}{\nameref{UC:runPlatoon}} \addcontentsline{toc}{subsection}{\nameref{UC:runPlatoon}}
...@@ -205,7 +134,8 @@ ...@@ -205,7 +134,8 @@
\subsection*{UC - 40 Kolonne beitreten}\label{UC:joinPlatoon} \subsection*{UC - 40 Kolonne beitreten}\label{UC:joinPlatoon}
\addcontentsline{toc}{subsection}{\nameref{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. 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. Weitere Informationen sind in Tabelle~\ref{tab:UC:joinPlatoon} zu finden.
\begin{table}[H] \centering \begin{table}[H] \centering
...@@ -215,30 +145,53 @@ ...@@ -215,30 +145,53 @@
\tabBody{\nameref{UC:joinPlatoon}} \\ \hline \tabBody{\nameref{UC:joinPlatoon}} \\ \hline
\tabHead{Vorbed.} & \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.} & \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} & \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} & \tabHead{Ablauf} &
\tabBody{ \tabBody{
\begin{enumerate}[leftmargin=*] \begin{enumerate}[leftmargin=*]
\item \gls{PFV} sendet seinen Beitrittswunsch als eine Nachricht. \item[a)] Es existiert noch keine Kolonne:
\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.
\begin{enumerate} \begin{enumerate}
\item Kennung passt, dann weiter mit \ref{it:afterIdMatch}. \item[1.] Die \gls{PFV} erhalten die Ausgabe, sich zu einer Kolonne zusammenzuschließen.
\item \label{it:idMissmatch}Kennung passt nicht, dann Abbruch. \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} \end{enumerate}
\item \label{it:afterIdMatch}\gls{PFV} erhält die nächsten \gls{PS} und \gls{IPD} vom \gls{LV}. \item[4.] \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[5.] \gls{PFV} passt den Abstand zum letzen \gls{FV} an.
\item \gls{PFV} passt die eigene Geschwindigkeit an. \item[6.] \gls{PFV} passt die eigene Geschwindigkeit an.
\item \gls{PFV} bestätigt erfolgreiche Umsetzung in einer Nachricht. \item[7.] \gls{PFV} bestätigt erfolgreiche Umsetzung in einer Nachricht.
\item \gls{LV} passt sein Wissen über die Kennung des letzen \gls{FV} an. \item[8.] \gls{LV} passt sein Wissen über die Kennung des letzen \gls{FV} an.
\item Der Kolonnenstatus wird im Log festgehalten. \item[9.] Der Kolonnenstatus wird im Log festgehalten.
\end{enumerate}
\end{enumerate} \end{enumerate}
} \\ \hline } \\ \hline
...@@ -274,6 +227,7 @@ ...@@ -274,6 +227,7 @@
\addcontentsline{toc}{subsection}{\nameref{UC:leavePlatoon}} \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. 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. Weitere Informationen sind in Tabelle~\ref{tab:UC:leavePlatoon} zu finden.
\begin{table}[H] \centering \begin{table}[H] \centering
...@@ -286,8 +240,9 @@ ...@@ -286,8 +240,9 @@
\tabBody{Eine Kolonne existiert. Fahrzeug fährt an letzter Position.} \\ \hline \tabBody{Eine Kolonne existiert. Fahrzeug fährt an letzter Position.} \\ \hline
\tabHead{Nachbed.} & \tabHead{Nachbed.} &
\tabBody{Fahrzeug ist nicht mehr in der Kolonne. \tabBody{
\gls{LV} hat aktualisierte Platoon-Statusdaten} \\ \hline Fahrzeug ist nicht mehr in der Kolonne.
\gls{LV} hat aktualisierte Platoon-Statusdaten.} \\ \hline
\tabHead{Akteure} & \tabHead{Akteure} &
\tabBody{\gls{LV}, \gls{PFV}, \gls{FV}} \\ \hline \tabBody{\gls{LV}, \gls{PFV}, \gls{FV}} \\ \hline
...@@ -295,14 +250,19 @@ ...@@ -295,14 +250,19 @@
\tabHead{Ablauf} & \tabHead{Ablauf} &
\tabBody{ \tabBody{
\begin{enumerate}[leftmargin=*] \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} aktualisiert Platoon-Statusdaten
\item \gls{LV} signalisiert \gls{PFV}, dass es nicht mehr Teil des Platoons ist \item \gls{LV} signalisiert \gls{PFV}, dass es nicht mehr Teil des Platoons ist
\item Der Kolonnenstatus wird im Log festgehalten. \item Der Kolonnenstatus wird im Log festgehalten.
\item \gls{PFV} schert aus \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} \end{enumerate}
} \\ \hline } \\ \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}} & \tabHead{für \gls{AS}} &
\tabBody{ \tabBody{
\begin{enumerate}[leftmargin=*] \begin{enumerate}[leftmargin=*]
...@@ -321,148 +281,6 @@ ...@@ -321,148 +281,6 @@
\caption{Details zum UC - Kolonne verlassen} \label{tab:UC:leavePlatoon} \caption{Details zum UC - Kolonne verlassen} \label{tab:UC:leavePlatoon}
\end{table} \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} \subsection*{UC - 90 Kolonnendaten ändern}\label{UC:changePlatoonData}
\addcontentsline{toc}{subsection}{\nameref{UC:changePlatoonData}} \addcontentsline{toc}{subsection}{\nameref{UC:changePlatoonData}}
Weitere Information sind in Tabelle~\ref{tab:UC:changePlatoonData} zu finden. Weitere Information sind in Tabelle~\ref{tab:UC:changePlatoonData} zu finden.
......
...@@ -19,21 +19,21 @@ ...@@ -19,21 +19,21 @@
\umlHVHinherit[arm2=16mm]{PFV}{GV} \umlHVHinherit[arm2=16mm]{PFV}{GV}
\umlassoc{Operator}{usecase-1} \umlassoc{Operator}{usecase-1}
\umlassoc{Operator}{usecase-3}
\umlassoc{Operator}{usecase-4} \umlassoc{Operator}{usecase-4}
\umlassoc{Operator}{usecase-5} \umlassoc{Operator}{usecase-5}
\umlassoc{Operator}{usecase-9} \umlassoc{Operator}{usecase-6}
\umlassoc{Operator}{usecase-10}
\umlassoc{LV}{usecase-2}
\umlassoc{LV}{usecase-3} \umlassoc{LV}{usecase-3}
\umlassoc{LV}{usecase-4} \umlassoc{LV}{usecase-4}
\umlassoc{LV}{usecase-5} \umlassoc{LV}{usecase-5}
\umlassoc{LV}{usecase-9}
\umlassoc{FV}{usecase-3} \umlassoc{FV}{usecase-2}
\umlassoc{FV}{usecase-5} \umlassoc{FV}{usecase-4}
\umlassoc{PFV}{usecase-4} \umlassoc{PFV}{usecase-3}
\umlassoc{PFV}{usecase-10} \umlassoc{PFV}{usecase-6}
\umlassoc{GV}{usecase-1} \umlassoc{GV}{usecase-1}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment