Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parChristia Michaud Modifié depuis plus de 10 années
1
Systèmes en temps réel Classes passives & Passage de données
2
Classes passives - 2 Synopsis Classes Passives but Capsule – relations avec les classes Envoie de classes passives entre les capsules Par valeur Par référence Exercice de classes passives
3
Classes passives - 3 Classes Passives - But Structures de données définis par lutilisateur (ex, listes) attributs requis pour maintenir linformation qui a trait au comportement dune capsule attributs requis pour stocker linformation qui doit être envoyé ou reçu comme données dans un message dune autre capsule
4
Classes passives - 4 Ajouter les relations au diagramme de classes comme rôles Peut être association, agrégation ou dépendance ou, ajoute un attribut à vos Capsule(s) de type classe passive Seulement la visibilité privée ou protégée sont valides Classes Passives - Relations avec les capsules UneClasse unRôle uneCapsule unRôle: UneClasse
5
Classes passives - 5 Envoie des classes passives entre les Capsules Par valeur Une copie profonde de la classe passive est envoyée de lautre côté de la connexion Méthode la plus commune en RoseRT La bibliothèque de services doit créer des copies, initialiser et détruire les données qui sont envoyées Par référence Seulement une référence (pointeur) aux données est envoyé Plus efficace mais moins sécuritaire si vous traversez les frontières des threads (problème de concurrence)
6
Classes passives - 6 Envoie des classes passives entre les Capsules Par valeur code exemple envoyeur: UneClasse desDonnées; nomDePort.nomDeMsg(desDonnées).send( ); code exemple receveur: autresDonnées 1 = rtdata; autresDonnées.unAttribut //contenu desDonnées 1. Assume que autresDonnées est définit comme attribut de UneClasse sur la capsule qui reçoit
7
Classes passives - 7 Envoie des classes passives entre les Capsules Par Référence (plus efficace, moins sécuritaire) code exemple envoyeur: UneClasse * pdata = new UneClasse(Hello); nomDePort.nomDeMsg(pdata).send( ); code exemple receveur: UneClasse * données2 = (UneClasse *)getMsg()->getData(); données2->unAttribut // contenue desDonnées
8
Classes passives - 8 Indication de design - Utilisation des opérations de capsules Les patterns de code devraient être placés dans les opérations des capsules réutilisation Les opérations devraient être utilisés pour garder le code des transitions aussi claire que possible véracité & entretien Utilisation des opérations de classes passives: code qui est réutilisable au niveau de système code qui agit sur les données de la classe passive code qui traite les structures de données
9
Classes passives - 9 Exercice de classe passive: Rappel Workstation La machine détats ici décrit létat de plus haut niveau de Workstation et les sous états de producing respectivement
10
Classes passives - 10 Exercice de classe passive - partie 1 Considérez que létat producing de Workstation reçoit des données dimensionnels de ControlSoftware. En plus, les sous états frame etpaint ont besoin de mesures de volume. Le frame a besoin de volume interne (calculé avec en tenant compte de lépaisseur du frame) et paint a besoin dun volume externe. Quand (dans quel code) est que vous capturez les données de dimension? Où calculez vous ces volumes?
11
Classes passives - 11 Exercice de classe passive - partie 2 Ajoutez une classe passive à notre modèle de Widget Production Line pour passer le type de model de la capsule ControlSoftware à la capsule Workstation Le type de modèle est ou bien standard or deluxe Utilisez un point de décision dans la machine détat de Workstation pour déterminer lequel produire Ajoutez deux différents sous états à production ** exercice ajouté comme partie du labo 2
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.