Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 1 livre papier acheté 
= la version en ligne automatiquement offerte. Cliquez ici

Description dynamique (l'information se transforme)

L’état des lieux

Ce chapitre aborde la description du cycle de vie des objets du métier.

La description des processus vue jusqu’à maintenant est une opération lourde, qui consomme beaucoup d’énergie.

C’est pourquoi il est conseillé de procéder à cette description de manière itérative et incrémentale :

  • Incrémentale : on procède processus par processus.

  • Itérative : on passe plusieurs fois sur le processus, en affinant à chaque passe le niveau de détail.

Il serait bien de définir, au sein d’une équipe projet, une typologie des niveaux de détail de la description des processus. En s’inspirant de la section Quelques processus de LOCA’ROYANS du chapitre Description dynamique (les acteurs agissent), on pourrait adopter : identification des processus, puis vue macroscopique externe, puis description des étapes, puis identification des responsabilités, puis identification des flux (d’objets, de contrôle).

Cette description permet de dégager beaucoup d’indications très importantes sur le métier. Ci-après sont repris les renseignements fournis par la modélisation des processus :

  • Chaque processus est un ensemble d’actions, articulées entre elles par une séquence, une itérative, ou une conditionnelle....

La notion de machine à états

Ceux qui se reporteront au référentiel UML de l’OMG pourront s’initier aux deux familles de machines à états proposées par le langage.

Ce chapitre, sauf mention contraire, fait référence au concept de behavioral state machine (machine à états comportementaux).

1. Définition

C’est un concept UML destiné à mémoriser :

  • les différents états de l’objet du métier ;

  • comment il passe d’un état à un autre (les transitions d’états).

L’ensemble des états d’un objet du métier s’appelle cycle de vie. La machine à états (state machine) énumère l’ensemble de ces états, et les transitions autorisées entre ces états. Elle est attachée à la classe, ce qui signifie que tous les objets instances de cette classe ont le même cycle de vie.

Pour un analyste du métier, tous les états ne sont pas significatifs. En particulier, un objet peut passer par des états temporaires qui n’apportent pas de réelle valeur ajoutée au métier : la machine à états représente un cycle de vie perçu par un acteur précis.

De ce fait, un objet du métier peut avoir plusieurs machines à états, perçus par plusieurs acteurs.

Enfin, certains états intéressent des acteurs et pas d’autres : vus par l’accueil, les états d’un véhicule au garage ne sont pas intéressants, si ce n’est que le véhicule est indisponible. En revanche, les différents états du véhicule en cours d’entretien intéressent le garagiste.

Par exemple, le certificat de restitution fourni au client M. XYZ est une instance de la classe Document, tout comme le contrat de location souscrit par le client Mme ABC. Le cycle de vie de ces deux instances (certificat de restitution XYZ, contrat de location ABC) est décrit par une machine à états attachée à la classe Document.

Certains emploient le terme « automate » pour désigner la machine à états. Ces deux termes sont synonymes.

2. Le diagramme de la machine à états...

Les propriétés de l’état

C’est la notion de transition entre états qui a été examinée jusqu’à maintenant. La machine à états formalise ces transitions : celles-ci montrent l’histoire d’un objet du métier, son activité, ses possibilités (capabilities).

1. La transition et le comportement

a. L’autotransition

Lorsqu’un objet est dans un état donné, que peut-il lui arriver ? Ainsi, lorsque la facture est émise, peut-elle recevoir et traiter des événements, tout en restant dans l’état émise ?

Un comportement est commandé par un événement ; lorsque l’objet est dans un certain état, un certain événement va provoquer une transition et une action associée va être lancée ; tandis qu’un autre événement ne va pas provoquer de transition, mais va déclencher néanmoins une action.

Ainsi, l’objet est capable d’une dynamique tout en restant dans le même état.

Soit une facture émise, à laquelle est imputé un versement partiel ; le total des versements partiels déjà imputés est inférieur au montant total dû. La facture restera dans l’état émise, elle ne pourra pas rejoindre l’état soldée, mais une action sera quand même lancée : la décrémentation du montant dû (décrémentation du solde).

C’est lorsque le montant total versé annulera le montant total dû que la facture passera dans l’état soldée.

Un événement capté par un objet provoque :

  • une action si l’objet est dans l’état qui lui permet de traiter l’événement ;

  • éventuellement une transition vers un autre état si les conditions le lui permettent. 

Cette situation peut se représenter de la manière suivante :

images/Chap3Fig7.png

Figure 7 : Une autotransition

Une autotransition est une transition dont la cible est la source.

Ainsi, le même événement réception paiement provoquera toujours le même comportement (décrémentation du solde de la facture), mais ne provoquera pas toujours...

La description de la sémantique du système

L’objet capte un événement et le traite à condition qu’il soit en état de le traiter :

  • Un appel à la cabine d’ascenseur ne provoque son mouvement que s’il y a un appel à un étage différent de celui où elle se trouve.

  • La clôture de l’exercice comptable n’a aucun effet sur une facture non soldée.

  • Un délai dépassé ne provoque pas la baisse de l’éclairage si la voiture est en mouvement.

Le traitement de l’événement par l’objet consistera en :

  • le déclenchement d’une action (toujours) ;

  • le déclenchement d’une transition (éventuellement).

Il est donc possible de préciser le comportement d’un objet du métier au sein de son environnement en fonction des événements reçus : décrire la sémantique d’un objet ou d’un système, c’est décrire l’ensemble de ses états possibles, et l’ensemble des événements provoquant les transitions.

La machine à états protocole (protocol state machine) est dédiée à cette représentation. Il y a deux sortes de machines à états protocole : la machine à états protocole d’utilisation, la machine...

Pour aller plus loin

1. Les comportements déterministes et non déterministes

Les machines à états étudiées dans ce chapitre impliquent que les instances passent par un nombre fini d’états ; ce comportement est obligatoirement déterministe.

Il serait intéressant d’évoquer les objets à comportement continu, ayant un nombre d’états non finis, et dont le comportement ne serait donc pas déterministe.

Cela ne veut pas dire que le comportement de tels objets est imprévisible. Cela signifie que leur comportement ne peut pas être formalisé avec les outils déployés jusqu’à présent ; en tout cas, UML n’est pas outillé pour formaliser cette situation.

2. À quels objets UML attacher une machine à états ?

La documentation UML de l’OMG précise que les classifiers (classeurs) peuvent posséder une machine à états.

Qu’est-ce qu’un classifier (classeur) ? C’est tout ce qui peut être instanciable (« A classifier is a set of instances ; it describes a set of instances that have features in common : UML infrastructure. »). Concrètement, cela signifie qu’une instance de classe, d’acteur, de cas d’utilisation, de composant, d’interface, etc. peut posséder une machine...

À retenir

La vue cycle de vie des objets du métier raconte l’histoire des objets au fur et à mesure qu’un processus se déroule. La vue processus est une vue orientée action, la vue cycle de vie est une vue orientée objet du métier. Il ne s’agit pas de décrire ce que les acteurs font, mais ce que les objets deviennent sous la série d’événements qu’ils reçoivent.

Les vues…

Sont orientées…

Décrivent…

Illustrent…

Processus

Action des acteurs

Ce qu’ils font

Organisation de l’entreprise

Cycle de vie

Objets du métier

Ce qu’ils deviennent

Métier de l’entreprise 

Tableau 2 : Processus et cycles de vie, deux descriptions complémentaires

À cette fin, les concepts majeurs qu’il faut retenir sont :

  • l’état de l’objet à un instant donné ;

  • la transition d’un état à un autre ;

  • l’événement provoquant une transition ;

  • l’action déclenchée par l’événement lors de la transition.

Un objet est donc capable de répondre à des événements. Un événement que l’objet est capable de traiter provoque une action, éventuellement une transition.

Les actions provoquées sont implémentées...

Les prochaines étapes

La description fonctionnelle est la suite logique de la description dynamique ; après avoir décrit ce que font les acteurs et ce que deviennent les objets du métier, on aborde la dimension services rendus par le système à l’utilisateur. Cette troisième description du système est sa description fonctionnelle.

La description fonctionnelle répond à la question : quels sont les services rendus par le système ? À quoi le système sert-il ? Elle complète la réponse à la question : comment le système fonctionne-t-il ?

Il est bien entendu que l’ordre des descriptions n’est pas impératif, comme cela a été exposé au début de l’ouvrage. Toute liberté est laissée à l’analyste du métier de les aborder dans l’ordre qui lui semble bon.