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

Modélisation Discussion :

Machine à états - Modélisation de process par l'exemple


Sujet :

Modélisation

  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Points : 646
    Points
    646
    Par défaut Machine à états - Modélisation de process par l'exemple
    Bonjour,
    Je souhaiterais discuter de la modélisation que je réalise, via cette étude de cas qui regroupe des contraintes que j'ai rencontrée dans divers projets.
    Voici le sujet : "Dé-Multiplexages de données )"
    Une entrée reçoit périodiquement un groupe de données sur un canal d'entrée à redistribuer sur deux canaux en sortie, à priori indépendant sur le traitement des données réceptionnées.
    L'application convertit chaque données et les distribue sur les canaux.

    Entrée : Un canal avec une bufferisation matériel limité
    Sortie : deux canaux.

    La fonction de conversion utilise une accélération matérielle qui bufferise ses entrées. Si un canal est hors service le caractère doit être aiguillé vers le canal de secours. On veut savoir à n'importe quel instant dans quelle état se trouve le caractère traité.

    Comportement du buffer de l'accélération matérielle de conversion :
    L'empilement est non bloquant, ie que si le buffer est plein et que l'on souhaite empiler l'opération va échouer. Il faut donc contrôler l'état du buffer (ou le retour de l'opération) pour empiler la donnée.Lorsque le buffer contient une place de disponible est signal est envoyé.

    Première solution : traitement_caractere_simple.
    Critique : ce modèle ne tient pas comte de l'accélération matérielle (la conversion est considérée comme une simple fonction bloquante qui retourne la donnée convertie).
    On risque de perdre des données sur le canal d'entrée car la durée de traitement peut-être lente.
    La limitation ici est je pense due au fait que l'on modélise l'état du caractère (recu, traité, écrit) et non son processus (reception, conversion, ecriture).


    Deuxième solution :
    Evolution : on découple la réception du groupe de données et son traitement, et on place un buffer pour la communication entre ces deux séquences.
    traitement_caractere_simple_canal.png

    Critique : toujours pas de prise en compte de l'accélération hard. on ne gère qu'une seule séquence d'écriture à la fois, alors que ces canaux sont indépendants.
    Evolution : Découpler l'envoi des données de la conversion matérielle de l'écriture.
    Paralléliser le traitement pour chaque canal. (je ne représente pas la synchronisation des E/S de l'accélération matérielle).

    Troisième solution : traitement_canal_acceleration_hard.png & traitement_caractere_multi-canal.png
    On crée un état composite de traitement ré-utilisable pour chaque canal.
    Je n'ai pas encore traité l'aiguillage des données sur le canal de secours.

    Ci-joint le projet bouml contenant les diagrammes.

    Merci pour tout commentaire.
    Images attachées Images attachées     
    Fichiers attachés Fichiers attachés
    Selso.
    Ingénieur/CdP développement systèmes embarqués &

  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
    Bonjour,

    le projet Bouml attaché est vide

    dans les diagrammes exportés il y a beaucoup de transitions sans trigger, les changements d'états doivent avoir une raison, sinon il ne s'agit pas de machine à états mais d'une séquence d'actions

    certains états sont soupçonneux comme par exemple l'état empile qui suit l'état attente caractère, je verrais plutôt le seul état attente caractère avec une transition réflexive dont la partie activité réalise l'empilement
    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
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Points : 646
    Points
    646
    Par défaut
    Bonjour,

    le projet Bouml attaché est vide
    J'ai raté la sauvegarde j'ai voulu aller trop vite
    Bon ben je n'ai plus qu'a recommencer.

    dans les diagrammes exportés il y a beaucoup de transitions sans trigger,
    Je les ai définis, qq chose s'est mal passé à l'export.

    les changements d'états doivent avoir une raison, sinon il ne s'agit pas de machine à états mais d'une séquence d'actions
    Je suis d'accord... je reste dans un état jusqu'à l'attente (ou la réception) d'un évènement.

    certains états sont soupçonneux comme par exemple l'état empile qui suit l'état attente caractère, je verrais plutôt le seul état attente caractère avec une transition réflexive dont la partie activité réalise l'empilement
    J'ai compris ta proposition, la mienne est-elle fausse d'un certain point de vue ?
    note : toute de suite là que je pense à l'implémentation de cette transition réflexive sous Qt avec la QStateMachine, et la réponse par de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QAbstractTransition::onTransition()
    Je vais reprendre cette modélisation avec tes conseils, merci.
    Selso.
    Ingénieur/CdP développement systèmes embarqués &

  4. #4
    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
    Bonjour,
    Citation Envoyé par bizulk Voir le message
    J'ai raté la sauvegarde j'ai voulu aller trop vite
    bouml vous demande confirmation si vous sortez sans sauver les dernières modifications, vous avez donc confirmé la sortie sans sauvegarde ?

    Je les ai définis, qq chose s'est mal passé à l'export.
    il y a des options de dessins, par défaut ce qui est affiché est le nom des transitions et non leur définition, pour voir les trigger/guard/expression il faut mettre show transition definition à vrai, vous pouvez le faire au niveau du diagramme ou au niveau du projet tout entier pour ne pas le faire à chaque diagramme si c'est ce que vous voulez par défaut.

    J'ai compris ta proposition, la mienne est-elle fausse d'un certain point de vue ?
    sans voir les définitions des transitions c'est difficile de répondre, mais elle au moins maladroite
    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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/02/2010, 06h46
  2. Réponses: 36
    Dernier message: 09/09/2006, 03h06
  3. Réponses: 15
    Dernier message: 06/12/2005, 17h41
  4. [CR9]Modifier des états créés en V9 par la V8.5
    Par Milou79 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 03/09/2004, 11h37

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