Sto sviluppando software per la comunicazione con dispositivi esterni tramite porta seriale. Per capire meglio la nuova funzionalità sto cercando di visualizzarlo nel diagramma di sequenza. Il flusso degli eventi è il seguente. Invio al comando del dispositivo per resettarlo. Questa operazione è asincrona, quindi vi è un certo ritardo tra richiesta e risposta (in genere 100 ms). Ci può essere un caso in cui la risposta non arriva mai (per esempio il dispositivo non è connesso alla porta specificata o è attualmente spento). A tale scopo creo un timer con il doppio del tempo di risposta massimo. Nel mio caso è 2 * 125 ms = 250 ms. Se la risposta arriva in un intervallo di tempo predefinito, distruggo già il timer in esecuzione. Se la risposta non arriva nell'intervallo predefinito, il timer avvia un'azione. Dopo questa azione possiamo distruggerlo. Come modellare efficacemente questa situazione nel diagramma di sequenza?
Addendum 1:
Sulla base dei consigli fatti da scarfridge ho disegnato il seguente diagramma UML. Anche il commento di Ozair è utile per semplificare ulteriormente il diagramma.