Le diagramme “d'états”
Un diagramme d'état[1] est associé à une seule classe d'objets. Il est chargé de représenter tous les états possibles de ce type d'objets, et les transitions[2] entre ces états.
Il porte donc le nom de la classe décrite. Deux nouvelles définitions sont nécessaires pour le constituer :
État d'un objet.
Un état[1] d'un objet d'une classe est défini par une stabilité de son comportement et de sa description pendant une durée déterminée. Cet espace de temps se délimite par deux évènements[3].
Reprenons l'exemple du diagramme scénario[4] de construction du poteau, et isolons justement l'objet poteau.
Avant d'entrer dans le diagramme, le poteau était seulement en projet, repéré par la position A14 sur la trame d'un étage. Et encore avant, sa description dépendait de l'état d'avancement des études.
Le poteau passe donc successivement par les états[1] suivants :
Avant-projet (dimensions et position approximatives)
Projet (dimensions, matériaux et position exactes)
Projet-exécution (repéré dans une trame de localisation, il a fait l'objet d'un calcul de stabilité, et un plan d'armatures lui est associé)
Tracé
Armatures en place
Coffrage en place
Coulé et vibré
En prise
Décoffré
Ragréé (le ragréage est l'opération de surfaçage d'un béton brut de décoffrage).
Peint
Livré
En service
Et en prévision de la maintenance du bâtiment, on pourrait décomposer en service par :
En bon état ( ! )
Abîmé
Repeint
Cela ne fait pas moins de 14 états recensés pour un vulgaire poteau. Selon le niveau de granulométrie requis lors de l'analyse, on pourra regrouper des états, ou les décomposer.
Par exemple, à un niveau plus général, on pourra se contenter de 3 états :
Poteau à l'état d'étude
Poteau en construction
Poteau en service
On note un état[1] par un rectangle arrondi, portant le nom de l'état :
Transition entre deux états.
Une transition[2] est un changement d'état[1] provoqué par un évènement[3].
Il est donc naturel de le représenter par deux états, la flèche figurant l'événement défini plus haut, le nom de cet événement. Bien sûr, on pourra compléter ce nom par des paramètres qualifiant la transition : les attributs[5] et les gardiens[6]. De plus, une transition[2] provoque également des opérations[7].
Un attribut[5], représenté entre parenthèse après le nom de l'évènement, affine la description de la transition[2] (ce peut être une liste).
Les gardiens[6], représentés entre crochets, sont les conditions (booléennes) qui doivent être vérifiées pour que la transition[2] s'accomplisse (par exemple l'état d'autres objets de l'environnement, une variable calculée qui atteint la valeur limite).
Une (ou plusieurs) opération[7] peut être déclenchée par l'objet qui change d'état.
Dans le diagramme statique, les opérations, ou méthodes, sont notées après les attributs de la classe.
Dans le diagramme d'état, on distingue deux sous-types d'opérations qui seront inscrites à des endroits différents :
les activités[8] : c'est une opération répétitive, qui peut durer un certain temps. Une opération est donc par définition associée à un état et peut durer autant que lui. On l'inscrit dans le rectangle de l'état, précédé de la notation « do ».
les actions[9] : c'est une opération ponctuelle, qui peut être réalisée à différents moments, associée à l'objet, ou à la transition :
exécutée à l'entrée du changement d'état : on note le préfixe « entry »
exécutée à la fin du changement d'état : préfixe « exit »
exécutée à la demande d'un événement qui intervient n'importe quand : préfixe « nom événement »
exécutée pendant la transition elle-même et par la transition : on note alors cette action dans les paramètres de l'événement, précédé du signe « / »
Dans l'exemple du poteau en construction, heureusement peu de paramètres sont à associer à chaque état. Sauf si l'objectif est d'imaginer le modèle d'un véritable logiciel d'assistance à la conduite du chantier.
Par exemple pour l'état en prise, on peut noter ainsi les conditions et opérations associées qui sont surtout importantes au moment de la fin de période de prise :
Le dernier message n°3 va provoquer une foule d'autres messages en cascade dans les objets d'autres classes de la base de données. Les poutres, dalles, qui étaient étayées vont changer de statut, ceux qui étaient encore à l'état de projet (le poteau d'au dessus par exemple) vont pouvoir être tracés ...
A ce niveau de granulométrie[10], on s'aperçoit par exemple qu'il faudra créer un état intermédiaire entre EN PRISE et DECOFFRE. En général, il n'y a pas beaucoup de place sur un chantier. Donc le coffrage n°8 pourra rester sur le poteau A14 jusqu'à réemploi, au delà des 21 jours. On évite d'encombrer l'aire de stockage, et une manipulation par la grue.
D'ou l'état supplémentaire : EN ATTENTE DE DÉCOFFRAGE.