Systèmes en temps réel Modélisation du comportement en temps réel avec UML
Comportement (partie 1) - 2 Synopsis Machines détat (Hiérarchique) état transitions initialisation points de décision idées de base pour modeler Diagrammes détats en RoseRT Exercice
Comportement (partie 1) - 3 Machines détats : état Une condition durant la vie dun objet dans laquelle il est prêt à traiter un événement Peut contenir un nombre dautre états Emboîtés de profondeur n a Un nom Des actions dentrée/sortie optionnels Action dentréeAction de sortieActions dentrée/sortie IdleActiveError
Comportement (partie 1) - 4 Machines détats : transitions Relation entre létat source et létat destination Spécifie les conditions sous lesquelles un objet dans létat source va changer à létat destination Contiens: Un déclencheur (trigger) Une condition de garde Actions
Comportement (partie 1) - 5 Machines détats : initialisation État initial (optionnel) – État de départ de la machine détat est définit explicitement. Elle a: Une transition initiale – ne peut pas être gardé État de départ – premier état actif Attente état initial transition initiale état de départ
Comportement (partie 1) - 6 Machines détats : points de décision Permet à une seule transition dêtre séparée en deux segments de transition sortants
Comportement (partie 1) - 7 Machines détats : idées de base Souvent les appareils ont des états en-service (actif) ou hors-service (attente ou passif) Toutes les capsules devraient avoir un état police (état derreur) à la couche supérieure Passif Erreur Actif initial en-service hors-service erreur
Comportement (partie 1) - 8 Machines détats : idées de base Lhéritage va nous permettre de réutiliser la machine détats de la couche supérieure La super-classe définit la couche supérieure des états communs à toutes les sous-classes Bien que les sous-classes fournissent les détails pour le reste de la machine détat Utilisez les diagrammes de séquences pour aider à lanalyse des transitions entre les états
Comportement (partie 1) - 9 Diagrammes détats en RoseRT Toutes les capsules ont un diagramme détats qui leurs est associé Les ports terminaux doivent être définis sur une capsule pour que les messages qui entrent puissent être utilisés comme événements déclencheurs Ceci inclus tous les ports de système La sélection du message qui est désigné avec * veut dire que tous les messages qui entre sur le port choisi va déclencher la transition. Le code daction ajouté dans les diagrammes détats en RoseRT est en C, C++, ou Java
Comportement (partie 1) - 10 Diagrammes détats en RoseRT Pas de code de transition code de transition Aucun déclencheur déclencheur Code daction dentrée Code daction dentrée/sortie Pas de code daction dentrée/sortie
Comportement (partie 1) - 11 Diagrammes détats en RoseRT Application de déclencheurs sélectionne port sélectionne signal Applique gardes Entrez le code de garde associé avec le déclencheur correspondant
Comportement (partie 1) - 12 Diagrammes détats en RoseRT Code daction Envoie des messages Appel des opérations Ports de service Classes passive Capsule
Comportement (partie 1) - 13 Rappel: exemple System Processor
Comportement (partie 1) - 14 Exercice en classe – comportement de ECM Implémentez ce qui suit: Initialisez un temps de brouillage continue de 250 msec Commencez le brouillage quand le message JamEmitterID est reçu Après lécoulement du temps de brouillage initialisez une séquence dobservation (look-through) Demandez des données de mise à jour de lémetteur (pendant la séquence dobservation) Retournez au brouillage quand vous recevez le signal Continue Retournez à létat passif (idle) quand le signal StopJam vous est envoyé Comment informeriez-vous le Controller de létat du brouillage?
Comportement (partie 1) - 15 Exercice – comportement de ECM
Comportement (partie 1) - 16 Solution 1
Comportement (partie 1) - 17 Solution 2