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