diff --git a/index.html b/index.html
index acb1200..e4a1940 100644
--- a/index.html
+++ b/index.html
@@ -112,6 +112,7 @@
"vegalite",
"wavedrom",
"wireviz",
+ "umlet",
],
},
plantuml: {
diff --git a/infotro/SDi/medias/protocole_exercice_class.uxf b/infotro/SDi/medias/protocole_exercice_class.uxf
new file mode 100644
index 0000000..bf17c31
--- /dev/null
+++ b/infotro/SDi/medias/protocole_exercice_class.uxf
@@ -0,0 +1,340 @@
+
+
+ 11
+
+ UMLClass
+
+ 759
+ 99
+ 242
+ 198
+
+ AppE
+fg=gray
+--
++dataIndication
++advIndication
++connIndication
++connConfirmation
++discIndication
++discConfirmation
+
++setNWE(NWE*)
+
+
+
+ UMLClass
+
+ 374
+ 396
+ 242
+ 154
+
+ iNWE
+fg=gray
+--
++dataIndication(Data*)
++advIndication(Advertise*)
++connIndication(Connection*)
++connConfirmation(Connection*)
++discIndication(Connection*)
++discConfirmation(Connection*)
+
+
+
+ UMLClass
+
+ 759
+ 693
+ 242
+ 99
+
+ RTX
+fg=gray
+--
++send(Frame*)
+
++subscribe(iRTX*)
+
+
+
+ UMLClass
+
+ 759
+ 396
+ 242
+ 198
+
+ NWE
+fg=gray
+--
++dataRequest(Data*)
++advRequest(Advertise*)
++connRequest(Connection*)
++discRequest(Connection*)
++discConfirmation(Connection*)
++receive
+
++subscribe(iNWE*)
+setRTX(RTX*)
+
+
+
+ UMLClass
+
+ 374
+ 693
+ 242
+ 99
+
+ iRTX
+fg=gray
+--
++receive(Frame*)
+
+
+
+ UMLClass
+
+ 1144
+ 165
+ 143
+ 88
+
+ Node
+fg=gray
+
+
+
+ UMLClass
+
+ 1144
+ 297
+ 143
+ 88
+
+ Advertise
+fg=gray
+--
+n: Node
+channel: int
+
+
+
+ UMLClass
+
+ 1144
+ 418
+ 143
+ 88
+
+ Connection
+fg=gray
+--
+n1: Node
+n2: Node
+channel: int
+
+
+
+ UMLClass
+
+ 1144
+ 539
+ 143
+ 88
+
+ Data
+fg=gray
+--
+Byte: data[]
+
+
+
+ UMLClass
+
+ 1144
+ 704
+ 143
+ 88
+
+ Frame
+fg=gray
+--
+conn: Connection
+data: Data
+
+
+
+ Relation
+
+ 869
+ 286
+ 99
+ 132
+
+ lt=<<<<->
+fg=gray
+m1=-theNWE
+ 10.0;10.0;10.0;100.0
+
+
+ Relation
+
+ 869
+ 583
+ 88
+ 132
+
+ lt=<<<<->
+fg=gray
+m1=-theRTX
+ 10.0;10.0;10.0;100.0
+
+
+ Relation
+
+ 484
+ 176
+ 297
+ 242
+
+ lt=<<.
+fg=gray
+ 10.0;200.0;10.0;10.0;250.0;10.0
+
+
+ Relation
+
+ 484
+ 561
+ 297
+ 154
+
+ lt=<<.
+fg=gray
+ 10.0;120.0;10.0;10.0;250.0;10.0
+
+
+ Relation
+
+ 605
+ 429
+ 176
+ 44
+
+ lt=<.
+fg=gray
+<<include>>
+ 10.0;20.0;140.0;20.0
+
+
+ Relation
+
+ 605
+ 704
+ 176
+ 44
+
+ lt=<.
+fg=gray
+<<include>>
+ 10.0;20.0;140.0;20.0
+
+
+ Relation
+
+ 990
+ 132
+ 176
+ 88
+
+ lt=<.
+fg=gray
+ 140.0;60.0;10.0;10.0
+
+
+ Relation
+
+ 990
+ 209
+ 176
+ 242
+
+ lt=<.
+fg=gray
+ 140.0;10.0;10.0;200.0
+
+
+ Relation
+
+ 990
+ 165
+ 176
+ 187
+
+ lt=<.
+fg=gray
+ 140.0;150.0;10.0;10.0
+
+
+ Relation
+
+ 990
+ 341
+ 176
+ 132
+
+ lt=<.
+fg=gray
+ 140.0;10.0;10.0;100.0
+
+
+ Relation
+
+ 990
+ 462
+ 176
+ 33
+
+ lt=<.
+fg=gray
+ 140.0;10.0;10.0;10.0
+
+
+ Relation
+
+ 990
+ 484
+ 176
+ 110
+
+ lt=<.
+fg=gray
+ 140.0;80.0;10.0;10.0
+
+
+ Relation
+
+ 990
+ 583
+ 176
+ 176
+
+ lt=<.
+fg=gray
+ 140.0;10.0;10.0;140.0
+
+
+ Relation
+
+ 990
+ 748
+ 176
+ 33
+
+ lt=<.
+fg=gray
+ 140.0;10.0;10.0;10.0
+
+
diff --git a/infotro/SDi/protocol_development.md b/infotro/SDi/protocol_development.md
index c0f8cbe..676e83b 100644
--- a/infotro/SDi/protocol_development.md
+++ b/infotro/SDi/protocol_development.md
@@ -24,13 +24,13 @@ et effectue des opérations pour assurer une communication efficace et fiable.
-## 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
-## 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
+
+Question
+Dessinez un premier diagramme de classe qui montre les différentes couches de votre système et leurs classes respectives. Esquissez les dépendances.
+
+
+Réponse
+
+```plantuml
+@startuml
+Application.AppE .-down-> Network.NWE
+Network.NWE .up-> Application.AppE
+
+Network.NWE .-down-> RTX.RTXE
+RTX.RTXE .up-> Network.NWE
+
+@enduml
+```
+
+
+
+
+
+###### Exercice 2
+Dans une prochaine étape, il s’agit d’ajouter aux classes les méthodes nécessaires.
+
+Question
+Présentez dans un tableau les services offerts, respectivement utilisés par chaque couche.
+
+Réponse
+
+| Services | Application | Network | RTX |
+|-----------------|-------------|-----------|----------|
+| *Data* | required | provided | |
+| *Advertise* | | provided | |
+| *Connection* | required | provided | |
+| *Disconnection* | required | provided | |
+| *Transfer* | | required | provided |
+
+
+
+
+###### Exercice 3
+Question
+Appliquez maintenant la méthode de découplage présentée ci-dessus pour réaliser les services dans les différentes couches.
+
+Réponse
+
+
+
+