-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
286 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<diagram program="umletino" version="15.1"><zoom_level>11</zoom_level><element><id>UMLSpecialState</id><coordinates><x>362</x><y>20</y><w>22</w><h>22</h></coordinates><panel_attributes>type=initial</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLNote</id><coordinates><x>120</x><y>9</y><w>154</w><h>77</h></coordinates><panel_attributes>Socket Handler | ||
v1.0 | ||
By: Tom | ||
bg=blue</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLState</id><coordinates><x>285</x><y>108</y><w>176</w><h>66</h></coordinates><panel_attributes>Wait for Incoming</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>362</x><y>31</y><w>33</w><h>99</h></coordinates><panel_attributes>lt=-></panel_attributes><additional_attributes>10;10;10;70</additional_attributes></element><element><id>Relation</id><coordinates><x>362</x><y>163</y><w>176</w><h>132</h></coordinates><panel_attributes>lt=-> | ||
INCOMING_MESSAGE \ | ||
read_to_end(&bytes) | ||
get_type(&bytes)</panel_attributes><additional_attributes>10;10;10;100</additional_attributes></element><element><id>UMLSpecialState</id><coordinates><x>351</x><y>273</y><w>44</w><h>44</h></coordinates><panel_attributes>type=decision</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLState</id><coordinates><x>560</x><y>262</y><w>198</w><h>66</h></coordinates><panel_attributes>Handle Connection Packet | ||
-- | ||
entry: addRoutingTable() | ||
sendConnectionPacket()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>384</x><y>273</y><w>198</w><h>44</h></coordinates><panel_attributes>lt=-> | ||
CONNECTION_PACKET</panel_attributes><additional_attributes>10;20;160;20</additional_attributes></element><element><id>Relation</id><coordinates><x>450</x><y>141</y><w>231</w><h>143</h></coordinates><panel_attributes>lt=-> | ||
SUCCESS</panel_attributes><additional_attributes>190;110;190;20;10;20</additional_attributes></element><element><id>UMLSpecialState</id><coordinates><x>351</x><y>658</y><w>22</w><h>22</h></coordinates><panel_attributes>type=final</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>461</x><y>317</y><w>275</w><h>231</h></coordinates><panel_attributes>lt=-> | ||
FAILURE</panel_attributes><additional_attributes>180;10;180;190;10;190</additional_attributes></element><element><id>UMLState</id><coordinates><x>274</x><y>504</y><w>198</w><h>77</h></coordinates><panel_attributes>Cleanup | ||
-- | ||
entry: removeRoutingEntry()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>351</x><y>570</y><w>209</w><h>110</h></coordinates><panel_attributes>lt=-> | ||
ROUTING_ENTRY_REMOVED</panel_attributes><additional_attributes>10;10;10;80</additional_attributes></element><element><id>UMLState</id><coordinates><x>274</x><y>372</y><w>198</w><h>77</h></coordinates><panel_attributes>Handle Message Packet | ||
-- | ||
entry: printMessage(bytes)</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>362</x><y>306</y><w>143</w><h>88</h></coordinates><panel_attributes>lt=-> | ||
MESSAGE_PACKET</panel_attributes><additional_attributes>10;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>351</x><y>438</y><w>88</w><h>88</h></coordinates><panel_attributes>lt=-> | ||
FAILURE</panel_attributes><additional_attributes>10;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>373</x><y>53</y><w>121</w><h>77</h></coordinates><panel_attributes>lt=-> | ||
PACKET_FAULTY</panel_attributes><additional_attributes>40;50;40;20;60;20;60;50</additional_attributes></element><element><id>Relation</id><coordinates><x>450</x><y>108</y><w>528</w><h>473</h></coordinates><panel_attributes>lt=-> | ||
CONNECTION | ||
_DROPPED</panel_attributes><additional_attributes>10;10;380;10;380;410;20;410</additional_attributes></element><element><id>UMLState</id><coordinates><x>32</x><y>251</y><w>187</w><h>77</h></coordinates><panel_attributes>Handle Routing Update | ||
-- | ||
entry: updateRoutingTable()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>208</x><y>273</y><w>165</w><h>44</h></coordinates><panel_attributes>lt=-> | ||
ROUTING_PACKET</panel_attributes><additional_attributes>130;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>450</x><y>130</y><w>407</w><h>308</h></coordinates><panel_attributes>lt=-> | ||
SUCCESSS | ||
cbase=ru</panel_attributes><additional_attributes>20;260;290;260;290;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>120</x><y>119</y><w>187</w><h>154</h></coordinates><panel_attributes>lt=-> | ||
SUCCESS</panel_attributes><additional_attributes>10;120;10;20;150;20</additional_attributes></element><element><id>Relation</id><coordinates><x>120</x><y>317</y><w>176</w><h>253</h></coordinates><panel_attributes>lt=-> | ||
FAILURE</panel_attributes><additional_attributes>10;10;10;210;140;210</additional_attributes></element></diagram> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<diagram program="umletino" version="15.1"><zoom_level>10</zoom_level><help_text>Space for diagram notes</help_text><element><id>UMLState</id><coordinates><x>300</x><y>350</y><w>160</w><h>80</h></coordinates><panel_attributes>Wait for Connection | ||
-- | ||
entry: listen(socket)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLSpecialState</id><coordinates><x>370</x><y>140</y><w>20</w><h>20</h></coordinates><panel_attributes>type=initial</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLSpecialState</id><coordinates><x>200</x><y>540</y><w>20</w><h>20</h></coordinates><panel_attributes>type=final</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>370</x><y>150</y><w>30</w><h>60</h></coordinates><panel_attributes>lt=-></panel_attributes><additional_attributes>10;10;10;40</additional_attributes></element><element><id>Relation</id><coordinates><x>70</x><y>380</y><w>250</w><h>180</h></coordinates><panel_attributes>lt=-> | ||
SHUTDOWN_RECEIVED | ||
cbase=l</panel_attributes><additional_attributes>230;10;140;10;140;160</additional_attributes></element><element><id>Relation</id><coordinates><x>370</x><y>370</y><w>270</w><h>220</h></coordinates><panel_attributes>lt=-> | ||
ACCEPT_CONNECTION / | ||
addToWorkerPool(connection)</panel_attributes><additional_attributes>10;60;10;190;180;190;180;10;90;10</additional_attributes></element><element><id>UMLNote</id><coordinates><x>140</x><y>270</y><w>140</w><h>70</h></coordinates><panel_attributes>Socket Listener | ||
v1.0 | ||
By: Tom | ||
bg=blue</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLState</id><coordinates><x>300</x><y>190</y><w>160</w><h>80</h></coordinates><panel_attributes>Create Socket | ||
-- | ||
entry: createSocket(Port)</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>370</x><y>260</y><w>130</w><h>110</h></coordinates><panel_attributes>lt=-> | ||
SOCKET_OPENED</panel_attributes><additional_attributes>10;10;10;90</additional_attributes></element></diagram> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<diagram program="umletino" version="15.1"><zoom_level>10</zoom_level><help_text>Space for diagram notes</help_text><element><id>UMLState</id><coordinates><x>370</x><y>210</y><w>140</w><h>60</h></coordinates><panel_attributes>Handle Input | ||
-- | ||
entry: getInput(stdio)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLSpecialState</id><coordinates><x>430</x><y>130</y><w>20</w><h>20</h></coordinates><panel_attributes>type=initial</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>430</x><y>260</y><w>90</w><h>150</h></coordinates><panel_attributes>lt=-> | ||
CMD_EXIT</panel_attributes><additional_attributes>10;10;10;130</additional_attributes></element><element><id>Relation</id><coordinates><x>430</x><y>140</y><w>30</w><h>90</h></coordinates><panel_attributes>lt=-> | ||
</panel_attributes><additional_attributes>10;10;10;70</additional_attributes></element><element><id>UMLSpecialState</id><coordinates><x>430</x><y>520</y><w>20</w><h>20</h></coordinates><panel_attributes>type=final</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLState</id><coordinates><x>800</x><y>310</y><w>160</w><h>70</h></coordinates><panel_attributes>Send Message | ||
-- | ||
entry: sendMessage(input)</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>460</x><y>110</y><w>490</w><h>220</h></coordinates><panel_attributes>lt=-> | ||
CMD_SEND</panel_attributes><additional_attributes>10;100;10;20;470;20;470;200</additional_attributes></element><element><id>UMLState</id><coordinates><x>580</x><y>310</y><w>160</w><h>70</h></coordinates><panel_attributes>Connect To | ||
-- | ||
entry: connectTo( | ||
input[1], input[2])</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>500</x><y>210</y><w>220</w><h>120</h></coordinates><panel_attributes>lt=-> | ||
CMD_CONNECT</panel_attributes><additional_attributes>10;20;200;20;200;100</additional_attributes></element><element><id>Relation</id><coordinates><x>490</x><y>140</y><w>370</w><h>190</h></coordinates><panel_attributes>lt=-> | ||
SUCCESS</panel_attributes><additional_attributes>350;170;350;20;10;20;10;70</additional_attributes></element><element><id>Relation</id><coordinates><x>500</x><y>230</y><w>150</w><h>100</h></coordinates><panel_attributes>lt=-> | ||
SUCCESS</panel_attributes><additional_attributes>130;80;130;20;10;20</additional_attributes></element><element><id>UMLState</id><coordinates><x>380</x><y>390</y><w>120</w><h>70</h></coordinates><panel_attributes>Handle Error | ||
-- | ||
entry: cleanup()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>430</x><y>450</y><w>100</w><h>90</h></coordinates><panel_attributes>lt=-> | ||
SHUTDOWN</panel_attributes><additional_attributes>10;10;10;70</additional_attributes></element><element><id>Relation</id><coordinates><x>210</x><y>130</y><w>220</w><h>100</h></coordinates><panel_attributes>lt=-> | ||
CMD_PRINT_ROUTINGTABLE \ | ||
println!("[#:?}", rounting_table) | ||
cbase=lu</panel_attributes><additional_attributes>200;80;200;30;170;30;170;80</additional_attributes></element><element><id>Relation</id><coordinates><x>490</x><y>370</y><w>190</w><h>60</h></coordinates><panel_attributes>lt=-> | ||
ERROR</panel_attributes><additional_attributes>170;10;170;40;10;40</additional_attributes></element><element><id>Relation</id><coordinates><x>490</x><y>370</y><w>410</w><h>90</h></coordinates><panel_attributes>lt=-> | ||
ERROR</panel_attributes><additional_attributes>390;10;390;70;10;70</additional_attributes></element><element><id>UMLNote</id><coordinates><x>200</x><y>390</y><w>140</w><h>70</h></coordinates><panel_attributes>TUI FSM | ||
v1.1 | ||
By: Tom | ||
bg=blue</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>200</x><y>200</y><w>190</w><h>60</h></coordinates><panel_attributes>lt=-> | ||
CMD_HELP \ | ||
print_help() | ||
cbase=lu</panel_attributes><additional_attributes>170;20;80;20;80;40;170;40</additional_attributes></element><element><id>Relation</id><coordinates><x>180</x><y>260</y><w>260</w><h>90</h></coordinates><panel_attributes>lt=-> | ||
CMD_INVALID \ | ||
println!("Invalid Command") | ||
cbase=lu</panel_attributes><additional_attributes>210;10;210;50;160;50;160;70;240;70;240;10</additional_attributes></element></diagram> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
% !TeX root = RDT.tex | ||
\documentclass[a4paper, 11pt]{article} | ||
|
||
\usepackage[ngerman]{babel} | ||
\usepackage[onehalfspacing]{setspace} | ||
\usepackage[top=2.5cm,bottom=2.5cm,left=2cm,right=2cm,marginparwidth=1.75cm]{geometry} | ||
|
||
% Load useful packages | ||
\usepackage{graphicx} | ||
\usepackage{amsmath} | ||
\usepackage{xcolor} | ||
\definecolor{custom-blue}{RGB}{0,99,166} | ||
\usepackage{hyperref} | ||
\hypersetup{colorlinks=true, allcolors=custom-blue} | ||
\usepackage[default]{sourcesanspro} | ||
\usepackage[T1]{fontenc} | ||
\usepackage{wrapfig} | ||
\usepackage{fancyhdr} | ||
\usepackage{longtable} | ||
\usepackage{lastpage} | ||
\usepackage{float} | ||
\usepackage{tabularx} | ||
\usepackage[normalem]{ulem} | ||
\useunder{\uline}{\ul}{} | ||
\usepackage{booktabs} | ||
\usepackage{graphicx} | ||
\usepackage{color} | ||
\usepackage{tabularray} | ||
\usepackage{enumitem} | ||
|
||
|
||
\pagestyle{myheadings} | ||
\pagestyle{fancy} | ||
|
||
\definecolor{Alto}{rgb}{0.878,0.878,0.878} | ||
\definecolor{Nobel}{rgb}{0.701,0.701,0.701} | ||
|
||
\setlength{\headheight}{30pt} | ||
\renewcommand{\headrulewidth}{0.5pt} | ||
\renewcommand{\footrulewidth}{0.5pt} | ||
|
||
\fancyhead[C]{} | ||
\fancyhead[R]{} | ||
\fancyfoot[L]{} | ||
\fancyfoot[C]{} | ||
\fancyfoot[R]{\thepage/\pageref{LastPage}} | ||
|
||
|
||
% Set title, author, date | ||
\title{ | ||
Requirements, Design and Test Documentation\\ | ||
Chat Client für RNP2 | ||
} | ||
\author{ | ||
Hert, Tom\\ | ||
\texttt{Tom.Hert@haw-hamburg.de} | ||
\and | ||
Zacharias, Laurin\\ | ||
\texttt{Laurin.Zacharias@haw-hamburg.de} | ||
} | ||
|
||
%%% Begin document %%% | ||
\begin{document} | ||
|
||
\maketitle | ||
\clearpage | ||
|
||
\tableofcontents | ||
\clearpage | ||
|
||
\input{chapters/020_anforderungen.tex} | ||
\clearpage | ||
|
||
\input{chapters/030_design.tex} | ||
\clearpage | ||
|
||
\input{chapters/040_test.tex} | ||
\clearpage | ||
|
||
\input{chapters/050_glossar.tex} | ||
\clearpage | ||
|
||
\end{document} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
\section{Anforderungen} | ||
|
||
\begin{tabular}{|c|p{13.5cm}|} | ||
\hline | ||
Requirement Nr. & Beschreibung | ||
\\ \hline | ||
|
||
REQ\_1 & Der Client erfüllt die Vorgaben des Chatprotokolls zur Kommunikation mit anderen Clients\\ | ||
\hline | ||
REQ\_2 & Der Client muss mindestens per Terminal als einfachstes Interface bedienbar sein \\ | ||
\hline | ||
REQ\_3 & Der Client muss ein\- und ausschaltbar sein\\ | ||
\hline | ||
REQ\_5 & Der Client muss Verbindungen zu anderen Clients, die das Chatprotokoll erfüllen, aufbauen können\\ | ||
\hline | ||
REQ\_6 & Die Verbindungen zu anderen Clients muss per IPv4 und über TCP Sockets geschehen\\ | ||
\hline | ||
REQ\_7 & Der Client muss Nachrichten an verfügbare Clients senden können\\ | ||
\hline | ||
REQ\_8 & Der Client muss Chatnachrichten von verfügbaren Clients empfangen und diese im Terminal zusammen mit dem Sender ausgeben\\ | ||
\hline | ||
REQ\_9 & Der Client muss alle verfügbaren Clients ausgeben können\\ | ||
\hline | ||
REQ\_10 & Der Client muss an andere Clients addressierte Nachrichten an verbundene Clients weiterleiten können\\ | ||
\hline | ||
REQ\_11 & Der Client muss eine Routingtabelle nach Vorgaben des Chatprotokolls pflegen um Kommunikation zu nicht direkt verbundenen Client zu ermöglichen\\ | ||
\hline | ||
REQ\_12 & Der Client muss alle ?? Sekunden Routingupdates(siehe Chatprotokoll) nach Vorgaben des Chatprotokolls an verbundene Clients senden\\ | ||
\hline | ||
REQ\_13 & Der Client muss die Integrität von Nachrichten mithilfe von CRC32 prüfen und bei Fehlern die Nachricht entsorgen und die Verbindung zum Sender der Nachricht beendet\\ | ||
\hline | ||
REQ\_14 & Wenn ein Kommunikationspartner auf eine Routingtabellenanfrage nicht reagiert, muss der Client diesen in der Routingtabelle als Unerreichbar (Siehe Poise Reverse) markieren\\ | ||
\hline | ||
REQ\_15 & Der Client muss bei fehlerfreien Routingpaketen seine Routingtabelle aktualisieren, indem neue Routen als Einträge hinzugefügt werden und ggf alte Einträge aktualisiert wenn der Hopcount der Route geringer oder gelöscht werden wenn der Hopcount der Route höher geworden ist.\\ | ||
\hline | ||
\end{tabular} | ||
Das Chatprotokoll ist hier zu finden: \url{/~https://github.com/HAW-Rn/protocol} | ||
|
||
\subsection{Use Cases} | ||
|
||
Ergänzend zu den Use Cases des Protokolls hier die Client-spezifischen Use Cases: | ||
|
||
\begin{itemize} | ||
\item \textbf{send message:} Bei Eingabe des Befehls 'msg <IP> <Port> <text>' verpackt der Client den in die Console eingegebenen Text in ein dem Catprotokoll ensprechenden Paket addressiert an den angegebenen Client und versendet es über die kürzeste im Routing Table vorhandene Route zum Ziel Client. | ||
\item \textbf{receive message:} Der Client empfängt die Nachricht, verifiziert dessen Inhalt mithilfe von crc32 und prüft die Destination IP+Port. Daraufhin leidet der Client das Paket weiter wenn es nicht an den Client addressiert ist oder stellt es in der Console dar. | ||
\item \textbf{display message:} Der Client stellt den Text zusammen mit dem Nicknamen als 'nickname: text' dar. | ||
\item \textbf{display available participants:} Bei Eingabe des Befehls 'contacts' in das Terminal gibt der Client eine Liste von direkt erreichbaren und über direktverbundene erreichbaren Clients in der Console aus. | ||
\end{itemize} |
Oops, something went wrong.