Archyno
UMLDiagrammes de comportement

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.
Un diagramme de temps UML. La ligne de vie Payment est En attente jusqu'à 200 millisecondes, Autorisé jusqu'à 500, puis Capturé. La ligne de vie Card gateway est Inactive jusqu'à 200, En traitement jusqu'à 450, puis de nouveau Inactive. Des marques sur l'axe indiquent la demande d'autorisation à 200 millisecondes et la capture à 500.
Un paiement et la passerelle de carte dont il dépend, sur 800 millisecondes. L'axe horizontal est du temps réel et à l'échelle - ce qui constitue toute la différence avec les autres diagrammes d'interaction.

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émentNotationCe que cela signifie
Ligne de vieune bande horizontaleUn participant. Son nom est à gauche ; ses états sont les rangées de la bande.
Chronogramme d'étatune ligne en escalierLa valeur tenue dans le temps. Les sauts verticaux sont des transitions ; les parties plates sont l'état maintenu.
Axe du tempsrègle le long du basDu 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 marquesCombien de temps un intervalle a le droit de durer. L'exigence, dessinée.
Contrainte de temps{t..t+50ms} en un pointQuand un événement doit survenir, relativement à un autre.
Messageflèche entre bandesUne 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

  1. 01Le seul diagramme UML dont l'axe est à l'échelle : la distance signifie la durée.
  2. 02Chaque ligne de vie est une bande ; ses états sont des rangées, et une ligne en escalier montre la valeur tenue.
  3. 03Les contraintes de durée et de temps transforment un enregistrement en spécification.
  4. 04Des bandes empilées rendent le chevauchement - donc les situations de concurrence - immédiatement visible.
  5. 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

À lire aussi

Tous les articles