Guide d'utilisation de l'outil: Conception avec des objets actifs dans Rational Rose RealTime
Ce guide d'utilisation de l'outil décrit les composants des objets actifs et explique comment concevoir avec des objets actifs dans Rational Rose RealTime.
Outil: Rational Rose RealTime
Relations
Eléments connexes
Description principale

Présentation

Un objet actif est composé de capsules dotées de protocoles et de ports.

Les capsules sont des objets hautement encapsulés qui utilisent des communications basées sur des messages à d'autres capsules par leurs objets de ports. Les capsules peuvent regrouper d'autres capsules. Une structure de capsule peut contenir d'autres capsules, qui sont des rôles de capsule.

L'ensemble de messages échangés entre deux objets est conforme au pattern de communication appelé protocole. Il s'agit en fait d'un accord contractuel qui définit les types de messages valides qui peuvent être échangés entre les participants au protocole.

Un diagramme d'état est une façon de définir le comportement d'un objet. Il indique la séquence d'états par laquelle un objet ou une interaction passe au cours de sa vie en réponse aux messages reçus, ainsi que ses réponses et actions.

Etapes outil

Pour concevoir avec des objets actifs dans Rational Rose RealTime, suivez ces étapes :

  1. Créez un rôle de capsule
  2. Créez des ports et associez-les à des protocoles
  3. Définissez une machine d'état de capsule
  4. Définissez des états et des sous-états
  5. Définissez des transitions d'état
  6. Définissez des attributs de classes

1. Créez un rôle de capsule

Les capsules sont créées dans la vue logique du navigateur de modèles.

  1. Sélectionnez l'outil Rôle de capsule dans la boîte à outils.
  2. Placez le curseur là où le rôle de capsule doit être placé, et cliquez sur le bouton gauche de la souris.
  3. Sélectionnez la nouvelle capsule associée au rôle de capsule dans la liste déroulante.
  4. Donnez un nom approprié au rôle de capsule.
  5. Répétez les étapes ci-dessus pour chaque rôle de capsule à créer.

2. Créez des ports et associez-les à des protocoles

  1. Recherchez la capsule dans le navigateur de modèles ou dans un diagramme de classes.
  2. Développez les éléments sous la capsule dans le navigateur, ou cliquez avec le bouton droit sur la capsule dans un diagramme de classes pour ouvrir le diagramme de structure de la capsule.
  3. Utilisez l'outil Port de la boîte à outils pour placer un port dans le diagramme de structure de la capsule. Le port peut être déposé sur le bord de la capsule ou dans la grande zone rectangulaire.
  4. Définissez le nom du port.
  5. Sélectionnez un protocole dans la liste, ou créez-en un nouveau.
  6. Cliquez avec le bouton droit sur le port pour sélectionner la boîte de dialogue Spécification de port.
  7. Utilisez la boîte de dialogue Spécification de port pour modifier le protocole, pour définir si le port est câblé ou non, et pour établir si le port est conjugué.

3. Définissez une machine d'état de capsule

  1. Recherchez la capsule dans le navigateur de modèles ou dans un diagramme de classes.
  2. Développez les éléments sous la capsule dans le navigateur, ou cliquez avec le bouton droit sur la capsule dans un diagramme de classes pour ouvrir le diagramme de structure de la capsule.
  3. Utilisez la boîte à outils Diagramme d'états pour placer des états et des transitions dans le diagramme d'états.

4. Définissez des états et des sous-états

  1. Recherchez la capsule dont le comportement est mis à jour. Les capsules se trouvent dans le navigateur de modèles ou dans un diagramme de classes.
  2. Cliquez avec le bouton droit sur la capsule pour ouvrir le diagramme d'états. Ceci ouvrira le diagramme dans un éditeur de diagramme d'états.
  3. Utilisez l'outil Etat dans la boîte à outils pour déposer un nouvel état dans le diagramme. Effectuez ceci pour chaque état que vous voulez créer.
  4. Donnez un nom approprié à chaque état.
  5. Double-cliquez sur un état qui comprendra des sous-états. Ceci exposera un nouveau diagramme d'états dans lequel vous pouvez ajouter des sous-états.
  6. Utilisez l'onglet au bas de la fenêtre pour choisir le niveau d'état auquel retourner.

Remarque: vous pouvez aussi ajouter des états grâce à la zone Navigateur de l'éditeur de diagramme d'états.

5. Définissez des transitions d'état

Ajoutez une transition initiale

  1. Cliquez sur le point initial dans le diagramme et faites glisser la transition au-dessus de l'état cible. Le point initial est le cercle noir qui s'affiche dans le coin gauche supérieur du diagramme.
  2. Donnez un nom approprié à la transition, ou une valeur par défaut. La transition initiale a un nom par défaut : Initiale. Vous pouvez modifier le nom en sélectionnant le libellé et en le saisissant. La transition initiale sera automatiquement appelée à l'exécution lors de la création d'une instance de capsule. Tout code d'action associé à la transition initiale sera exécuté dès la création de l'instance de capsule.

Ajoutez des transitions

  1. Sélectionnez l'outil de transition à partir de la boîte à outils et dessinez une transition de l'état source à l'état cible.
  2. Donnez un nom approprié à la transition, ou acceptez la valeur par défaut.

Ajout de code de détail aux machines d'état

Du code C, C++ ou Java peut être ajouté comme des actions sur les transitions, des points de choix et une entrée ou une sortie d'état sur des diagrammes d'état de capsule à exécuter à l'exécution. Seul le code ajouté aux diagrammes d'état de capsule est inclus dans le code généré pour le modèle. Des actions détaillées sur des diagrammes d'état de classes de protocoles ou de données ne sont pas incluses dans le code généré pour ces classes.

Ajoutez des déclencheurs

Pour qu'un déclencheur puisse être réglé pour une transition, le port sur lequel le déclencheur sera reçu doit être défini.

  1. Double-cliquez sur la transition pour ouvrir la boîte de dialogue Spécification de transition. 
  2. Sélectionnez l'onglet Déclencheur.
  3. A l'aide du curseur dans la zone de liste de ports, cliquez avec le bouton droit et sélectionnez Insérer dans le menu.
  4. Dans la zone Port, sélectionnez le port sur lequel le déclencheur sera reçu.
  5. Dans la zone Signal, sélectionnez le signal de port qui entraînera l'événement déclencheur.
  6. Cliquez sur les boutons OK pour fermer les boîtes de dialogue ouvertes.

Ajoutez un code à la transition

Maintenant que vous avez tous les éléments nécessaires en place (état initial, transition initiale et ports), vous devez ajouter un code de détail à la transition initiale, ainsi que des transitions d'état à état. Le code de détail sera exécuté lorsque la transition initiale sera lancée au moment de l'exécution du modèle, ou lorsqu'un déclencheur sera reçu sur la transition d'état à état.

  1. Double-cliquez sur la transition pour ouvrir la boîte de dialogue Spécification de transition.
  2. Sélectionnez l'onglet Actions pour afficher la fenêtre de code.
  3. Ajoutez le code qui sera exécuté sur la transition.
  4. Sélectionnez le bouton OK pour fermer la boîte de dialogue ouverte.

Remarque: il n'est pas nécessaire d'inclure des accolades d'ouverture et de fermeture '{`, `}'. Celles-ci sont ajoutées automatiquement par le générateur de code.

6. Définissez des attributs de classes

  1. Ouvrez la boîte de dialogue Spécification de capsule en double-cliquant sur la capsule dans le navigateur, ou en sélectionnant la capsule dans un diagramme et en sélectionnant Ouvrir spécification dans le menu contextuel.
  2. Sélectionnez l'onglet Attributs dans la spécification de capsule.
  3. A l'aide du curseur dans la zone ouverte de l'onglet, cliquez avec le bouton droit et sélectionnez Insérer.
  4. Modifiez le nom NewAttribute1 au profit d'un nom ayant plus de sens, puis appuyez sur ENTREE.
  5. Double-cliquez sur le nouvel attribut pour afficher la boîte de dialogue Spécification d'attribut.
  6. Utilisez la boîte de dialogue Spécification d'attribut pour définir le type d'attribut et la valeur initiale.