add umlet diagram

This commit is contained in:
Klagarge committed 2024-02-01 15:03:44 +01:00
1 parent a4058a2882
commit 1bb25ec1c1
3 files changed
+403 -8

No files matched your search

+1
View File
@@ -112,6 +112,7 @@
"vegalite",
"wavedrom",
"wireviz",
"umlet",
],
},
plantuml: {
@@ -0,0 +1,340 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="15.1">
<zoom_level>11</zoom_level>
<element>
<id>UMLClass</id>
<coordinates>
<x>759</x>
<y>99</y>
<w>242</w>
<h>198</h>
</coordinates>
<panel_attributes>AppE
fg=gray
--
+dataIndication
+advIndication
+connIndication
+connConfirmation
+discIndication
+discConfirmation
+setNWE(NWE*)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>374</x>
<y>396</y>
<w>242</w>
<h>154</h>
</coordinates>
<panel_attributes>iNWE
fg=gray
--
+dataIndication(Data*)
+advIndication(Advertise*)
+connIndication(Connection*)
+connConfirmation(Connection*)
+discIndication(Connection*)
+discConfirmation(Connection*)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>759</x>
<y>693</y>
<w>242</w>
<h>99</h>
</coordinates>
<panel_attributes>RTX
fg=gray
--
+send(Frame*)
+subscribe(iRTX*)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>759</x>
<y>396</y>
<w>242</w>
<h>198</h>
</coordinates>
<panel_attributes>NWE
fg=gray
--
+dataRequest(Data*)
+advRequest(Advertise*)
+connRequest(Connection*)
+discRequest(Connection*)
+discConfirmation(Connection*)
+receive
+subscribe(iNWE*)
setRTX(RTX*)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>374</x>
<y>693</y>
<w>242</w>
<h>99</h>
</coordinates>
<panel_attributes>iRTX
fg=gray
--
+receive(Frame*)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1144</x>
<y>165</y>
<w>143</w>
<h>88</h>
</coordinates>
<panel_attributes>Node
fg=gray</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1144</x>
<y>297</y>
<w>143</w>
<h>88</h>
</coordinates>
<panel_attributes>Advertise
fg=gray
--
n: Node
channel: int</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1144</x>
<y>418</y>
<w>143</w>
<h>88</h>
</coordinates>
<panel_attributes>Connection
fg=gray
--
n1: Node
n2: Node
channel: int</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1144</x>
<y>539</y>
<w>143</w>
<h>88</h>
</coordinates>
<panel_attributes>Data
fg=gray
--
Byte: data[]</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1144</x>
<y>704</y>
<w>143</w>
<h>88</h>
</coordinates>
<panel_attributes>Frame
fg=gray
--
conn: Connection
data: Data</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>869</x>
<y>286</y>
<w>99</w>
<h>132</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;-&gt;
fg=gray
m1=-theNWE</panel_attributes>
<additional_attributes>10.0;10.0;10.0;100.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>869</x>
<y>583</y>
<w>88</w>
<h>132</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;-&gt;
fg=gray
m1=-theRTX</panel_attributes>
<additional_attributes>10.0;10.0;10.0;100.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>484</x>
<y>176</y>
<w>297</w>
<h>242</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;.
fg=gray</panel_attributes>
<additional_attributes>10.0;200.0;10.0;10.0;250.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>484</x>
<y>561</y>
<w>297</w>
<h>154</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;.
fg=gray</panel_attributes>
<additional_attributes>10.0;120.0;10.0;10.0;250.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>605</x>
<y>429</y>
<w>176</w>
<h>44</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray
&lt;&lt;include&gt;&gt;</panel_attributes>
<additional_attributes>10.0;20.0;140.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>605</x>
<y>704</y>
<w>176</w>
<h>44</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray
&lt;&lt;include&gt;&gt;</panel_attributes>
<additional_attributes>10.0;20.0;140.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>990</x>
<y>132</y>
<w>176</w>
<h>88</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray</panel_attributes>
<additional_attributes>140.0;60.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>990</x>
<y>209</y>
<w>176</w>
<h>242</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray</panel_attributes>
<additional_attributes>140.0;10.0;10.0;200.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>990</x>
<y>165</y>
<w>176</w>
<h>187</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray</panel_attributes>
<additional_attributes>140.0;150.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>990</x>
<y>341</y>
<w>176</w>
<h>132</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray</panel_attributes>
<additional_attributes>140.0;10.0;10.0;100.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>990</x>
<y>462</y>
<w>176</w>
<h>33</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray</panel_attributes>
<additional_attributes>140.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>990</x>
<y>484</y>
<w>176</w>
<h>110</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray</panel_attributes>
<additional_attributes>140.0;80.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>990</x>
<y>583</y>
<w>176</w>
<h>176</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray</panel_attributes>
<additional_attributes>140.0;10.0;10.0;140.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>990</x>
<y>748</y>
<w>176</w>
<h>33</h>
</coordinates>
<panel_attributes>lt=&lt;.
fg=gray</panel_attributes>
<additional_attributes>140.0;10.0;10.0;10.0</additional_attributes>
</element>
</diagram>
+62 -8
View File
@@ -24,13 +24,13 @@ et effectue des opérations pour assurer une communication efficace et fiable.
</details>
## Element de protocol
# Element de protocol
Un protocole est un ensemble de règles qui définit le format et la séquence des messages échangés entre les entités
d'un système de communication. Les entités communiquent entre elles en échangeant des messages. Chaque message est
composé d'un en-tête et d'un corps. L'en-tête contient des informations de contrôle et le corps contient les données
à transférer. Les entités peuvent être des processus, des machines, des systèmes, etc.
### Notions en rapport avec les protocoles
## Notions en rapport avec les protocoles
Les notions suivantes sont essentielles en rapport avec la spécification des protocoles :
- **(N)-service :**
@@ -77,11 +77,11 @@ Paquet virtuel de donnée qui est transporté à l'autre entité paire au moyen
</details>
## Stratégie de conception de protocoles
# Stratégie de conception de protocoles
Un modèle OSI à 7 couches est souvent trop complexe pour les systèmes embarqués. Il est donc nécessaire de définir
une stratégie de conception de protocoles adaptée aux contraintes de ces systèmes.
### Stratégie 3 Couches
## Stratégie 3 Couches
La stratégie 3 couches définit trois couches de communication. Elle facilite le codage avec moins d'interfaces.
1. **Couche Application :**
@@ -101,7 +101,7 @@ La stratégie 3 couches définit trois couches de communication. Elle facilite l
Cette stratégie divise les responsabilités de communication en trois niveaux distincts, facilitant la modularité,
la maintenance et l'interchangeabilité des composants du système.
### Stratégie RX-TX
## Stratégie RX-TX
La stratégie RX-TX définit deux processus par couche :
1. **Processus RX :**
@@ -120,7 +120,7 @@ Chaque processus peut avoir un ou plusieurs SAP pour l'accès aux différents pr
Cette stratégie permet de séparer les processus de réception et d'émission des données, facilitant la maintenance
et l'interchangeabilité des composants du système.
### Stratégie SAP
## Stratégie SAP
La stratégie SAP définit la manière dont les services sont accessibles à l'extérieur. Il existe deux approches possibles :
1. **Single SAP :**
@@ -140,7 +140,7 @@ La stratégie SAP définit la manière dont les services sont accessibles à l'e
Cette stratégie permet de définir l'accès aux services de communication, facilitant la modularité et l'interchangeabilité
des composants du système.
### Stratégie de mémoire
## Stratégie de mémoire
La stratégie de mémoire définit la manière dont les données sont transférées entre les couches. Il existe deux approches
possibles :
@@ -159,7 +159,7 @@ possibles :
Cette stratégie permet de gérer efficacement la mémoire, facilitant la maintenance et l'interchangeabilité des composants
du système.
### Stratégie de découplage
## Stratégie de découplage
La stratégie de découplage définit la manière dont les données sont traitées entre les couches.
Il existe deux approches possibles :
@@ -178,5 +178,59 @@ Il existe deux approches possibles :
Cette stratégie permet de traiter les données de manière efficace, facilitant la maintenance et l'interchangeabilité
des composants du système.
# Implémentation de protocoles par un example
Soient les classes AppE, NWE et RTXE. La lettre E signifié Entity.
###### Exercice 1
<b><i><u>Question</u></i></b><br>
Dessinez un premier diagramme de classe qui montre les différentes couches de votre système et leurs classes respectives. Esquissez les dépendances.
<details>
<summary><b><i><u>Réponse</u></i></b></summary>
```plantuml
@startuml
Application.AppE .-down-> Network.NWE
Network.NWE .up-> Application.AppE
Network.NWE .-down-> RTX.RTXE
RTX.RTXE .up-> Network.NWE
@enduml
```
</details>
###### Exercice 2
Dans une prochaine étape, il s’agit d’ajouter aux classes les méthodes nécessaires.
<b><i><u>Question</u></i></b><br>
Présentez dans un tableau les services offerts, respectivement utilisés par chaque couche.
<details>
<summary><b><i><u>Réponse</u></i></b></summary>
| Services | Application | Network | RTX |
|-----------------|-------------|-----------|----------|
| *Data* | required | provided | |
| *Advertise* | | provided | |
| *Connection* | required | provided | |
| *Disconnection* | required | provided | |
| *Transfer* | | required | provided |
</details>
###### Exercice 3
<b><i><u>Question</u></i></b><br>
Appliquez maintenant la méthode de découplage présentée ci-dessus pour réaliser les services dans les différentes couches.
<details>
<summary><b><i><u>Réponse</u></i></b></summary>
![kroki-umlet](medias%2Fprotocole_exercice_class.uxf)
</details>