IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

UML Discussion :

Machine à état et Time thickness


Sujet :

UML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Machine à état et Time thickness
    Bonjour à tous.

    je me pose une question sur les diagrammes de machine a état en UML.
    Quand une transition est activée. Elle est exécutée immédiatement. Mais s'il y a une opération associée (mettons l'ouverture d'une porte). Alors, la transition est-elle toujours exécutée automatique ? Si oui, imaginons qu'il y est une transition qui se déclenche alors que l'action n'est pas fini. peut-il y avoir alors deux actions en cours ? Même question avec une action à l'arrivé dans l'état (avec le mot-clef ENTRY).
    Pour éviter ce problème un diagramme de séquence ou d'activité peut-être utile. Mais comment la machine à état le prend en compte ?

    Voilà. Si vous avez des précisions, je suis preneur. Je n'ai pas réussie à trouver de réponse claire pour le moment.
    Thomas Au

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    une machine d'état doit être déterministe, si plusieurs actions se font en même temps (il y a au moins un 'fork' introduisant du parallélisme) elles ne doivent pas avoir d'influence les unes sur les autres

    cependant il y aurait des failles dans la norme : http://www.comp.nus.edu.sg/~lius87/u..._semantics.pdf
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Septembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur avant-vente
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Les machines d'états reposent sur le principe de Run To Completion. C'est à dire qu'une transition activée se terminera, mais également que lorsque la transition est en cours d'exécution, aucun état (origine ou destination) n'est réellement actif. Tant que la transition est en cours, aucune autre transition ne peut être déclenchée pour la même machine d'état (si les conditions sont remplies pour une autre transition, son exécution est différée jusqu'à ce que la transition en cours soit terminée).
    Donc pour une machine d'état, seul 1 état est actif et si une transition est en cours, alors la machine d'état continue jusqu'à la fin de l'exécution de la transition.En général, on définit dans une transition uniquement des actions courtes.
    S'il est nécessaire de gérer des choses en parallèles, on peut :
    -Définir plusieurs machines d'états distinctes et les allouer à des tâches différentes (dans le programme, on allouerai typiquement à des threads).
    -Lancer un programme externe

    Dans le cas où l'action que doit réaliser la transition est une action longue, le mieux est :
    1.Lancer un programme externe ou thread qui réalise l'action longue, ainsi la transition en elle même est courte,
    2.Ajouter une transition dont le trigger est la fin du programme externe (envoi d'un événement en fin d'exécution du sous-programme).

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/07/2008, 09h06
  2. [Etat] Design pattern pour présenter une machine à état
    Par solawe dans le forum Design Patterns
    Réponses: 7
    Dernier message: 15/07/2008, 15h58
  3. machine à état xml
    Par bassi44 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 19/02/2008, 08h58
  4. machine à état en java
    Par bassi44 dans le forum Général Java
    Réponses: 2
    Dernier message: 28/01/2008, 12h53
  5. Machine à états finis en C++
    Par mb3575 dans le forum C++
    Réponses: 10
    Dernier message: 24/04/2007, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo