Diagrammes de temps UML
L'état tracé sur un axe de temps réel. Le diagramme d'interaction vers lequel se tourner quand l'échéance, la durée ou le recouvrement sont tout le sujet.
6 min de lectureUML 2.5.128 sur 35
La réponse courte
- L'axe vertical d'un diagramme de séquence est la séquence, pas le temps. Celui d'un diagramme de temps est réel et gradué : un seul des deux peut dire en moins de 200 millisecondes.
- Tournez-vous vers lui quand l'échéance, la durée ou le recouvrement entre participants est le vrai sujet : embarqué, protocoles, tout ce qui a un délai d'attente.
- Une contrainte de durée borne un intervalle ; une contrainte de temps borne un instant. Les deux s'écrivent entre accolades sur le diagramme.
- La ligne de vie en courbe se lit mieux avec deux ou trois états ; la forme compacte à ligne d'état passe mieux à l'échelle.
01Ce qu'il montre#
Un diagramme de temps trace l'état d'un ou plusieurs participants en fonction du temps. Le temps va de gauche à droite et, contrairement à tout autre diagramme UML, il est à l'échelle. Deux fois la distance signifie deux fois la durée.
Cette seule propriété est la raison d'être du diagramme. Un diagramme de séquence vous dit qu'un message arrive après un autre et ne dit rien de la durée de quoi que ce soit. Si votre question est « est-ce que cela tient dans le budget de 300 ms ? » ou « la passerelle est-elle encore occupée quand le réessai part ? », aucune quantité de diagramme de séquence n'y répondra.
Chaque ligne de vie reçoit une bande. Ses états possibles sont listés à gauche de cette bande, et une ligne passe de l'un à l'autre en sautant verticalement à chaque changement et en restant plate entre-temps. Le lire est la même compétence que lire un relevé d'analyseur logique ou un graphique d'état de serveur.
02La notation#
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Ligne de vie | une bande horizontale | Un participant. Son nom est à gauche ; ses états sont les rangées de la bande. |
| Chronogramme d'état | une ligne en escalier | La valeur tenue dans le temps. Les sauts verticaux sont des transitions ; les parties plates sont l'état maintenu. |
| Axe du temps | règle le long du bas | Du temps réel et proportionnel, avec des unités. C'est ce qui en fait un diagramme de temps. |
| Contrainte de durée | {0..300ms} entre deux marques | Combien de temps un intervalle a le droit de durer. L'exigence, dessinée. |
| Contrainte de temps | {t..t+50ms} en un point | Quand un événement doit survenir, relativement à un autre. |
| Message | flèche entre bandes | Une communication d'une ligne de vie à une autre, dessinée à l'instant où elle a lieu. |
03Les contraintes sont la charge utile#
Un diagramme de temps sans contraintes est l'image de ce qui est arrivé une fois. Un diagramme de temps avec contraintes est une spécification, et c'est la version qui vaut la peine d'être dessinée.
Une contrainte de durée couvre deux points et énonce la taille permise de l'écart : {0..300ms} de la requête à la réponse. Une contrainte de temps fixe un événement à un instant relatif à un autre : {t..t+50ms}. À elles deux, elles expriment presque toutes les exigences temps réel que vous risquez d'avoir, et sous une forme contre laquelle un test peut s'écrire directement.
L'autre chose à dessiner est le chevauchement. Deux bandes empilées verticalement rendent immédiatement évident si un participant est encore occupé alors qu'un autre le croit libre - la classe de bug quasi invisible sur un diagramme de séquence et évidente ici.
04Quand en dessiner un#
À utiliser quand
- Il y a un budget de latence, un délai d'expiration ou une échéance que la conception doit tenir
- Embarqué, protocoles ou travail proche du matériel, où le timing est la spécification
- Diagnostiquer une situation de concurrence : deux bandes rendent le chevauchement visible
- Expliquer pourquoi un réessai, un anti-rebond ou un backoff se comporte comme il le fait
Préférer autre chose quand
- L'ordre compte mais pas la durée - prenez un diagramme de séquence
- Vous décrivez des états et les événements entre eux, pas leur timing - prenez une machine à états
- Il n'y a aucun timing mesuré ni spécifié à dessiner ; un diagramme aux chiffres inventés est pire que rien
- Plus de quatre lignes de vie environ, dans la forme tracée
Les diagrammes de temps sont les plus rares des quatorze dans le logiciel de gestion ordinaire, et indispensables dans les domaines qui en ont besoin. Si vous travaillez sur de l'embarqué, des protocoles réseau ou quoi que ce soit à contrainte temps réel dure, c'est le diagramme dans lequel vos exigences s'écrivent le plus naturellement. Sinon, vous pouvez faire toute une carrière sans en dessiner un, et c'est très bien.
En une ligne chacun
- 01Le seul diagramme UML dont l'axe est à l'échelle : la distance signifie la durée.
- 02Chaque ligne de vie est une bande ; ses états sont des rangées, et une ligne en escalier montre la valeur tenue.
- 03Les contraintes de durée et de temps transforment un enregistrement en spécification.
- 04Des bandes empilées rendent le chevauchement - donc les situations de concurrence - immédiatement visible.
- 05Employez-le quand il y a un vrai budget ou une échéance ; sinon le bon outil est un diagramme de séquence.
05Questions fréquentes#
À quoi sert un diagramme de temps UML ?
À montrer comment l'état d'un participant change sur un axe de temps réel. C'est le diagramme d'interaction vers lequel se tourner quand une échéance, une durée ou un recouvrement entre participants est le vrai sujet : systèmes embarqués, protocoles, et tout ce qui comporte un délai d'attente.
Quelle différence entre diagramme de temps et de séquence ?
Un diagramme de séquence ordonne les messages mais ne dit rien de la durée, car son axe vertical est la séquence et non le temps. Un diagramme de temps a un axe temporel réel et gradué : il peut exprimer en moins de 200 millisecondes et montrer les états de deux participants se recouvrir.
Qu'est-ce qu'une contrainte de durée ?
Un intervalle marqué sur le diagramme avec une contrainte sur sa longueur, écrite entre accolades. Une contrainte de temps est la même idée appliquée à un instant plutôt qu'à un intervalle, comme cet événement doit survenir avant cinq secondes.
Quelles sont les deux formes de ligne de vie ?
La forme à ligne de valeurs trace les états comme une courbe passant d'une bande horizontale à l'autre. La forme compacte à ligne d'état écrit les noms d'état dans une seule bande, avec les transitions entre eux. La courbe se lit mieux avec deux ou trois états ; la forme compacte passe mieux à l'échelle.
Dans cette série
- 01Qu'est-ce que UML ?
- 02Symboles UML
- 03Choisir un diagramme
- 04Diagrammes de classes
- 05Exemples de diagrammes de classes
- 06Dessiner un diagramme de classes
- 07Symboles du diagramme de classes
- 08Diagrammes de séquence
- 09Exemples de diagrammes de séquence
- 10Dessiner un diagramme de séquence
- 11Diagrammes de cas d'utilisation
- 12Exemples de cas d'utilisation
- 13Diagrammes d'activité
- 14Exemples d'activité
- 15Diagrammes états-transitions
- 16Exemples d'états-transitions
- 17Diagrammes de composants
- 18Exemples de composants
- 19Dessiner un diagramme de composants
- 20Symboles de composants
- 21Diagrammes de déploiement
- 22Exemples de déploiement
- 23Diagrammes d'objets
- 24Diagrammes de paquetages
- 25Diagrammes de structure composite
- 26Diagrammes de communication
- 27Séquence vs communication
- 28Diagrammes de temps
- 29Diagrammes globaux d'interaction
- 30Diagrammes de profil
- 31UML avec l'IA
- 32Exemple e-commerce
- 33Exemple bancaire
- 34Exemple microservices
- 35Exemple AWS
À lire aussi
Diagrammes de comportement
Diagrammes de comportement
Fondamentaux
Diagrammes de comportement
Diagrammes de comportement
Diagrammes de comportement