Title: Les automates tats desmachines logiques Organisation
1Les automates à états des machines logiques
Organisation
La théorie sans la pratique est inutile la
pratique sans la théorie est aveugle. Immanuel
Kant
2Objectif de la séquence
- Compétence visée
- Pré-requis
- Pouvoir lire la notation complète du diagramme à
états dUML
Comprendre l'intérêt des automates de MLO et être
capable de les concevoir
Durée de la séquence 1/2 h
3Contenu de la séquence
- Lautomate du cas dutilisation
- La dérivation de lautomate
- Loptimisation du comportement
4Lautomate du cas dutilisation
1
- Lautomate pilote le cas dutilisation
- Il fixe la logique minimale qui contraint
le dialogue homme-machine - En exprimant les contraintes dordonnancement par
un automate, on échappe à une logique trop
linéaire - Cf. stage Modélisation amont
5Lautomate du cas dutilisation exemple
- Un diagramme détats résumé
- Pour le cas dutilisation Déclarer un sinistre
Début du cas
Étatrésumé
Lacteurdu casdutilisation
Fin du cas
6Lautomate du cas dutilisation exemple (suite)
- Le détail de lautomate pour une activité en
cours - Létat Déclaration Sinistre dans lautomate
du cas dutilisation Déclarer un sinistre
Activités élémentaires mentionnées comme
opérationsqui réalisent (par commodité)
7Les conditions
- Les conditions de garde contraignent le
déclenchement des transitions - Dans le modèle pragmatique, elles sont exprimées
en langage naturel - Exemples tirés de lautomate du cas dutilisation
Décrire un sinistre - Aucune opération financière autre
qu'évaluation - Sur la transition saisir plan de
coassurance - Famille sinistre sélectionnée
- Pour passer à létat Sinistre décrit
8La dérivation de lautomate
2
- Par rapport à lautomate à états utilisé
dans le modèle pragmatique, lautomate à états
dans le modèle logique est - Moins expressif
- Réduction du formalisme
- Plus formel
- Exigence dexpression non ambiguë
- Dans les termes du modèle logique
9Lautomate du modèle logique
- Il reprend lautomate du cas dutilisation
- Dans sa forme et dans son contenu
- Les états
- Les transitions
- Les conditions
- Il ajoute les éléments propres à la machine
logique - Les transitions de début et de fin
- démarrer
- arrêter
- Il formalise les expressions
- /
10Le formalisme de lautomate à états
- Dans le modèle logique
- Pas dévénement
- Ni déclencheur, ni émis
- La seule communication est lappel de service
- Pas dactivité au sein des états
- Pas de transition automatique
- Conditions exprimées formellement
- Conditions de garde
- Sur les transitions
- Conditions détat
- Expression formelle associée à la définition de
létat
11Lexpression formelle
Exprimer formellement signifie en
nutilisant que les termes du modèle logique
- Pour la documentation de lautomate
- Les conditions qui apparaissent sur les
diagrammes détats - Le contenu des notes Pseudo-code
- Lexpression des informations
- À partir de lattribut sd de la machine
- Par notation pointée
- Sans déclencher dautres services logiques
- Pas de propagation
12Exemple 1
- Dérivation du diagramme détats résumé
- Pour le cas dutilisation Déclarer un
sinistre - Atomate attaché à la MLO MoDeclarerSinistre
Démarragede la machine
Service logique
Renommagedes états
Arrêt dela ML
13À retenir
- Sur la transition
- Le service logique est à la fois déclencheur
et réalisateur de la transition - Le déclencheur est lappel du service
- Pas dévénement
- Sur létat
- Les libellés détats sont réécrits avec les
conventions - Camel
- Pas de caractères accentués, ni de séparateurs
- Les transitions génériques
- démarrer
- arreter
14Exemple 2
- Le détail de lautomate pour une activité en
cours - Létat DeclarationSinistre dans lautomate de
la MLO MoDeclarerSinistre
Toutes les actions permises sont indiquées
15À retenir
- Sur lautomate des MLO
- Quand un service apparaît sur le diagramme
détats,il nest activable que sur les
transitions où il figure - Le concepteur doit donc rechercher toutes les
situations dans lesquelles laction élémentaire
est permise - Cela conduit à ajouter des transitions qui ont pu
être oubliées sur lautomate du cas dutilisation - Quand un service nest pas pris en compte
dans lautomate, cest quil est autorisé quel
que soit létat de la machine
16La réécriture des conditions
- Les conditions sont reformulées dans les termes
du modèle logique - Exemples tirés de lautomate du cas dutilisation
Décrire un sinistre - Aucune opération financière autre
qu'évaluation - Sur la transition saisir plan de
coassurance - ? FamilleSinistreSelectionnee
non(InfoDecrireSinistre.sinistre.cdFamilleSinistre
.estVide()) - Famille sinistre sélectionnée
- Pour passer à létat Sinistre décrit
- ? NoSinistreAttribue non(InfoDecrireSinistre
.sinistre.noSinistre.estVide())
17Les conditions détats
- Tout état dun automate à états doit être
documenté - Il possède une définition
- Note Description
- Sur létat correspondant dans le modèle
pragmatique - Sa description comprend les conditions
- Même note, en langage naturel
- La condition détat est réécrite en termes
logiques - Dans lautomate du modèle logique
18Les conditions détats exemple
- Cas dutilisation Relier les sinistres
- État Connexion identifiée
- Contenu de la note Description
- Un groupe de connexité est identifié (N de
groupe de connexité). - Machine MoRelierSinistres
- État ConnexionIdentfiee
- Contenu de la note Pseudo-code
- conditionsEtat non(sd.connexite.estVide())
- Précision
- Il sagit dune condition sur le dialogue, pas
sur linformation métier - Dans lexemple cest différent de létat
Relié sur le sinistre
19Loptimisation du comportement
3
- Pour améliorer le fonctionnement des machines
logiques Organisation - Pour augmenter le confort dutilisation offert
par le système
20Rappels
- La MLO sert le dialogue homme-machine
- Elle est sollicitée par la strate
Présentation - Les IHM
- Elle fournit la matière pour exécuter un cas
dutilisation - Lautomate contrôle le dialogue
- Il assure le respect dune logique
dordonnancement minimale - Le cas dutilisation se confond avec la
transaction fonctionnelle - Un même cas dutilisation permet la réalisation
de plusieurs types d actes de gestion
21Les pistes damélioration
- On souhaite améliorer le fonctionnement des MLO
- La MLO se configure pour le traitement dun flux
- Flux reçu de la strate Présentation
- Service demarrer sur la transition initiale
- Le contenu de ce flux dépend de lavancement
dans le cas dutilisation - Il se sagit pas de rejouer toutes les actions
élémentaires pour se positionner sur le bon état - En interprétant le contenu du flux, la machine
doit se positionner elle-même dans létat
approprié - De plus, on peut envisager de doter la MLO
dune mémoire pour permettre à lutilisateur
de reprendre un travail interrompu
22Loptimisation
- La solution passe par un enrichissement de
lautomate de MLO - Les transitions déclenchées par les activités
élémentaires sont doublées de transitions
conditionnelles - Les conditions portent sur le contenu de
linformation disponible - Le flux reçu par la MLO
- La vérification de ces conditions déclenche la
transition - En UML When ( lt condition gt )
- Le plus souvent, ces conditions reprennent
la définition de létat darrivée
23Le problème sur un exemple
- Sur lautomate de MoDeclarerSinistre
- Condition détat pour CirconstancesSaisies
- La date de déclaration doit être saisie
- Ceci sobtient par la première activation du
service saisirCirconstancesSinistre
Transition réflexive pour permettre la saisie
dans létat
Transition normale
Condition détat
24La solution la transition doptimisation
- Quand la machine est sollicitée de nouveau
- Pour la continuation du dialogue
- Après échange avec le strate Présentation
- Au sein du même dialogue
- Après reprise du dialogue
- Après interruption
Mot réservé du pseudo-code Amos désigne la
condition de létat destinataire
Mot réservé en UML la vérification de la
condition déclenche la transition
Transition doptimisation
25Conclusion sur loptimisation
- Grâce aux conditions doptimisation, la MLO se
repositionne dans létat le plus avancé - Par interprétation du flux quelle reçoit
- Si la MLO dispose dun support de masse pour
stocker les flux - Le système senrichit dune possibilité de
reprise sur des dialogues interrompus
26Récapitulatif des acquis
- Rappel de la compétence visée
- Notions clefs de cette séquence
- Lautomate sur les cas dutilisation
- Lautomate sur les MLO
- Les restrictions de notation liées aux automates
du modèle logique - Les transitions doptimisation
Comprendre l'intérêt des automates de MLO et être
capable de les concevoir
Compétence Performance
27Gamme opératoire
- Tâches du concepteur
- Analyse de lautomate du modèle pragmatique
- Si lautomate à états du cas dutilisation
nexiste pas - Soit, le dialogue na pas de contrainte
dordonnancement - Soit, il faut construire lautomate à partir de
spécifications fonctionnelles informelles - Formalisation des états de lautomate
- Formalisation des conditions de transition
- Vérification des services de réalisation des
transitions - Toutes les transitions sont-elles pourvues dun
service qui les réalise ?
Compétence Performance