From 032f38ecc015f9a44fc1b5495f089c27eab8375f Mon Sep 17 00:00:00 2001
From: Steven Lange <langestx@informatik.hu-berlin.de>
Date: Sat, 30 Dec 2017 12:04:18 +0100
Subject: [PATCH] Added OOA. Copy of whiteboard

The whiteboard drawings from software architecture were digitalized into
a .tex file.
---
 doc/architecture/ObjectOrientedAnalysis.tex | 198 ++++++++++++++++++++
 1 file changed, 198 insertions(+)
 create mode 100644 doc/architecture/ObjectOrientedAnalysis.tex

diff --git a/doc/architecture/ObjectOrientedAnalysis.tex b/doc/architecture/ObjectOrientedAnalysis.tex
new file mode 100644
index 00000000..b4cb8359
--- /dev/null
+++ b/doc/architecture/ObjectOrientedAnalysis.tex
@@ -0,0 +1,198 @@
+\documentclass[a4paper,12pt]{article}
+
+\usepackage{geometry}
+\geometry{scale = 0.5}
+
+\usepackage[T1]{fontenc}
+\usepackage[utf8x]{inputenc}
+\usepackage[french]{babel}
+\usepackage{fullpage}
+\usepackage{ifthen, tikz, xstring, calc, pgfopts} % required for tikz-uml
+\usepackage{../tikz-uml}
+
+\sloppy
+\hyphenpenalty 10000000
+
+\begin{document}
+\begin{tikzpicture}
+	\begin{umlpackage}{Car}
+		%\begin{umlpackage}{STM}
+		%	\umlclass{MAV-Link}
+		%		{}
+		%		{}
+		%\end{umlpackage}
+		\begin{umlpackage}{Odroid}
+			% classes
+			\umlclass[scale = 0.5]
+				{MAV-Link}
+				{
+					- $v_{new}$ : Integer\\
+					- $\alpha_{new}$ : Integer\\
+					- $v_O$ : Interger\\
+					- $\alpha_O$ : Integer\\
+					- RC-State : Integer
+				}
+				{
+					+ set($v_{new}$, $\alpha_{new}$)\\
+					+ RequestNewState(RC-State)\\
+					+ updateOwn() : (Integer, Integer)
+				} (MAVLink)
+			\umlclass[scale = 0.5, xshift = -8cm]
+				{Lane-Keeping}
+				{
+					- Image/Path : ?\\
+					- $\alpha_{new}$ : Integer
+				}
+				{
+					+ Lanekeeping() : ?
+				} (LaneKeeping)
+			\umlclass[scale = 0.5, xshift = 8cm, yshift = -4cm]
+				{Cruise-Control}
+				{
+					- $d_O$ : Integer\\
+					- $v_P$ : Integer\\
+					- $IPD$ : Integer\\
+					- $PS$ : Integer\\
+					- PlatoonState : Integer\\
+					- $v_s$ : Integer\\
+					- $d_s$ : Integer\\
+					+ $v_{new}$ Integer
+				}
+				{
+					- CACC($d_O, v_P, IPD, PS$) : Integer\\
+					- ACC($d_O, v_P, v_s, d_s$) : Integer\\
+					- calcNewOptimalDistance($v_s$) : Integer\\
+					+ pushNewSpeed($v_{new}$)
+				} (CruiseConrol)
+			\umlclass[scale = 0.5, xshift = -5cm, yshift = -9cm]
+				{Egomotion}
+				{
+					- $d_O$ : Integer\\
+					- $v_O$ : Integer\\
+					- $v_R$ : Integer\\
+					- $v_P$ : Integer\\
+					- $\alpha_O$ : Integer\\
+					- Path : ?
+					- $\alpha_{new}$ : Integer\\
+					+ $v_{new}$ : Integer\\
+					+ WantsPlatton : Boolean\\
+					+ UpdateReady : Boolean
+				}
+				{
+					- calc\_$v_P$($v_R$) : Integer\\
+					- getEnvoirment() : (Integer, Integer)\\
+					- getMavLink() : (Integer, Integer)\\
+					- getCurseControl : Integer
+				} (EgoMotion)
+			\umlclass[scale = 0.5, xshift = 6.7cm, yshift = -14cm]
+				{PlatoonController}
+				{
+					- $IPD$ : Integer
+					- $PS$ : Integer\\
+					- PlatoonState : Integer\\
+					- $v_s$ : Integer\\
+					- $CarID$ : Integer\\
+					- PlatoonMemberList : ?\\
+					- PlatoonPos : Integer\\
+					- PlatoonPrevID : ?\\
+					+ isUpdated : Boolean
+				}
+				{
+					- PlatoonStateAuswerten(PlatoonState : Integer) : ?\\
+					- LV\_CACC\_IPD/PS\_festlegen() : (Integer, Integer)\\
+					- handle\_PBM() : ?\\
+					- handle\_PCM() : ?\\
+					- handle\_PHM() : ?\\
+					- send\_PBM() : ?\\
+					- send\_PCM() : ?\\
+					- send\_PHM() : ?\\
+					+ isIdle() : Boolean
+				}
+			\umlclass[scale = 0.5, xshift = -9cm, yshift = -20cm]
+				{Envoirment}
+				{
+					- USS-Data : Integer\\
+					+ $d_O$ : Interger\\
+					+ $v_R$ : Integer\\
+					+ PlatoonPrevID : ?
+				}
+				{
+					- calc\_$v_R$
+				}
+			\umlclass[scale = 0.5, xshift = -4cm, yshift = -23cm]
+				{Logging}
+				{
+					+ $d_O$ : Integer\\
+					+ $v_O$ : Integer\\
+					+ $v_R$ : Integer\\
+					+ $v_P$ : Integer\\
+					+ $\alpha_O$ : Integer\\
+					+ Path : ?\\
+					+ $\alpha_{new}$ : Integer\\
+					+ $v_{new}$ : Integer\\
+					+ WantsPlatton : Boolean\\
+					+ UpdateReady : Boolean\\
+					+ $IPD$ : Integer\\
+					+ $PS$ : Integer\\
+					+ PlatoonState : Integer\\
+					+ $v_s$ : Integer\\
+					+ $CarID$ : Integer\\
+					+ PlatoonMemberList : ?\\
+					+ PlatoonPos : Integer\\
+					+ PlatoonPrevID : Integer\\
+					+ isUpdated : Boolean
+				}
+				{
+					- cacheDate() : ?\\
+					+ sendToPC(ALL)
+				}
+			\umlclass[scale = 0.5, xshift = -11.5cm, yshift = -25cm]
+				{Camera}
+				{}
+				{}
+			\umlclass[scale = 0.5, xshift = -11.2cm, yshift = -28cm]
+				{Ultrasonic}
+				{}
+				{}
+			\umlclass[scale = 0.5, xshift = 9.5cm, yshift = -25cm]
+				{Network}
+				{
+					+ $IPD$ : Integer\\
+					+ $PS$ : Integer
+				}
+				{
+					+ send\_PBM()\\
+					+ send\_PCM()\\
+					+ send\_PHM()\\
+					+ send\_PLM()\\
+					+ handle\_PBM()\\
+					+ handle\_PCM()\\
+					+ handle\_PHM()\\
+					+ handle\_PLM()\\
+					+ Car2PC-MSGs.
+				}
+			
+			%arrows
+			\umlinherit	[geometry=-| ,anchors=   0 and 250]	{Camera}{Envoirment}
+			\umlinherit	[geometry=|- ,anchors=  90 and 180]	{Camera}{Lane-Keeping}
+			\umlinherit	[geometry=|- ,anchors=  90 and  25]	{Cruise-Control}{MAV-Link}
+			\umlinherit	[geometry=-| ,anchors= 115 and 280]	{Egomotion}{Lane-Keeping}
+			\umlinherit	[geometry=-|-,anchors=  35 and 215]	{Egomotion}{Cruise-Control}
+			\umlinherit	[geometry=|-,anchors= -35 and 152]	{Egomotion}{PlatoonController}
+			\umlinherit	[geometry=-|]						{Egomotion}{Logging}
+			\umlinherit	[geometry=|-|,anchors=90 and 245]	{Envoirment}{Egomotion}
+			\umlinherit	[geometry=--]						{Lane-Keeping}{MAV-Link}
+			\umlinherit	[geometry=-| ,anchors= 280 and 115]	{Lane-Keeping}{Egomotion}
+			\umlinherit	[geometry=|- ,anchors= -55 and 222]	{Logging}{Network}
+			\umlinherit	[geometry=|-|,anchors= 235 and  70]	{MAV-Link}{Egomotion}
+			\umlimport	[geometry=-| ,anchors= 180 and 270]	{Network}{MAV-Link}
+			\umlinherit	[geometry=-|]						{PlatoonController}{Cruise-Control}
+			\umlinherit	[geometry=|- ,anchors= 240 and  25]	{PlatoonController}{Logging}
+			\umlinherit	[geometry=-|, anchors= 295 and  75]	{PlatoonController}{Network}
+			\umlinherit	[geometry=-|, anchors=  75 and 295]	{Network}{PlatoonController}
+			\umlinherit	[geometry=-| ,anchors= 0 and 290]	{Ultrasonic}{Envoirment}
+		\end{umlpackage}
+	\end{umlpackage}
+\end{tikzpicture}
+
+\end{document}
\ No newline at end of file
-- 
GitLab