@startuml
:utilisateur: as usr
[UDP] <<lib>> as udp 
[Controleur global] as chef
package "Client COAP" <<Instance>> as coap{
    [parseur] as parseur
    [lexeur] as lexeur
    () "socket udp" as s_udp
    () "handle coap" as h_coap
    package "Gestion des retransmisions" as retransmition{
        [gestionaire] as gestionaire
        [timer] as timer
        database "Liste des\nmessages" as db_msg
    }
}

lexeur --> s_udp : message NCON
lexeur --> gestionaire : message CON
s_udp --> parseur : message reçu

gestionaire ..> timer : use
gestionaire ..> db_msg : use
gestionaire -> s_udp : émition et\nretransmition

parseur --> gestionaire : Tokken

s_udp ..> udp : use

usr --( h_coap
h_coap -> lexeur : requette
h_coap <- parseur : reponse
gestionaire --> chef : info local
chef --> gestionaire : info global

@enduml