Prfc rhapsody simulation_1.0

1 442 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 442
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
34
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Prfc rhapsody simulation_1.0

  1. 1. La simulation de modèle SysML avec Rhapsody Exemple 1pascal.roques@prfc.fr V1.0, 2012
  2. 2. Présentations : Pascal Roques Consultant senior, plus de 20 ans d’expérience • SADT, OMT, UML, SysML Certifié UML2 et SysML par l’OMG Co-fondateur de l’association Auteur des ouvrages les plus lus en France sur UML … et du premier livre sur SysML
  3. 3. Objectifs SysML, la variante d’UML2 standardisée récemment par l’OMG, est particulièrement adapté au domaine de l’industrie et à la modélisation de systèmes complexes (aéronautique, spatial, automobile, énergie, armement, etc.) Cette présentation vise à montrer comment utiliser l’outil Rhapsody (IBM/Rational) pour animer un modèle SysML en s’appuyant sur les diagrammes d’états L’étude de cas simple, proposée dans cette première présentation est décrite en détail dans le livre « UML2 par la pratique », publié chez Eyrolles • Statecharts identiques en UML2 et SysML 3
  4. 4. Etude de cas : réveille-matin Considérons un réveille-matin simplifié : • On peut mettre l’alarme « on » ou « off » • Quand l’heure courante devient égale à l’heure d’alarme, le réveil sonne sans s’arrêter • On peut interrompre la sonnerie 4
  5. 5. Initialisation du modèle Rhapsody Nous utilisons la version 7.6.1 de IBM Rational Rhapsody Designer for System Engineers 5
  6. 6. Cas d’utilisation Un premier diagramme très simple 6
  7. 7. Scénario nominal « boite noire » Un autre diagramme simple donnant un exemple représentatif d’utilisation du réveille-matin • Ébauche d’identification d’états 7
  8. 8. Premier niveau d’architecture (bdd) Deux blocs : • Horloge • Alarme Deux Value Types Des événements utilisateur Une opération interne 8
  9. 9. Premier niveau d’architecture (ibd) Dans l’ibd, on montre le connecteur entre l’horloge et l’alarme • C’est l’horloge qui va prévenir l’alarme 9
  10. 10. Diagramme d’états de l’horloge (1/2) L’horloge est responsable de l’horodatage courant • L’horloge met à jour son horodatage, toutes les secondes, en gérant les retours à zéro • L’horloge prévient l’alarme qu’elle doit s’activer L’utilisateur peut modifier l’horodatage 10
  11. 11. Diagramme d’états de l’horloge (2/2) 11
  12. 12. Diagramme d’états de l’alarme (1/2) L’alarme gère les événements de l’utilisateur : • ev_armer(Heure hAlarme,Minute mnAlarme)  En positionnant le booléen enAlarme à true  Maj des valeurs heureAlarme et minuteAlarme • ev_desarmer  En positionnant le booléen enAlarme à false • ev_arreterSonnerie L’alarme réagit à l’événement généré par l’horloge : • ev_sonner  En positionnant le booléen sonne 12
  13. 13. Diagramme d’états de l’alarme (2/2) 13
  14. 14. Création d’un panel graphique (1/3) 14
  15. 15. Création d’un panel graphique (2/3) Chaque élément du panel est lié à une valeur ou un état du modèle • heureCourante, etc. 15
  16. 16. Création d’un panel graphique (3/3) Chaque élément du panel est lié à une valeur ou un état du modèle • Etat Sonnerie de l’alarme 16
  17. 17. Préparation de l’animation Préparation de l’espace de test 17
  18. 18. Création d’un template de Sequence diagram Ce diagramme vide servira de modèle aux diagrammes de séquence générés par la simulation 18
  19. 19. Initialisation de l’animation (1/2) Une fois que le modèle est terminé : Full Build • L’animation peut démarrer D’abord : Go Idle • Initialise le modèle avec les valeurs par défaut et les initial states  Le panel est initialisé  ainsi que le diagramme de séquence simulé  Et les statecharts 19
  20. 20. Initialisation de l’animation (2/2) 20
  21. 21. Démarrage de l’animation Event Generator • Pour injecter des événements utilisateur 21
  22. 22. Etape 1 L’utilisateur met à l’heure : 23h30 22
  23. 23. Etape 1 : résultats Mise à l’heure : 23h30 23
  24. 24. Etape 2 L’utilisateur arme l’alarme : 06h30 24
  25. 25. Etape 2 : résultats (1/2) Alarme armée : 06h30 25
  26. 26. Etape 2 : résultats (2/2) 26
  27. 27. Etape 3 (1/2) Pas d’intervention utilisateur : le temps s’écoule… 27
  28. 28. Etape 3 (2/2) 28
  29. 29. Etape 4 (1/2) Le temps atteint l’heure d’alarme ! 29
  30. 30. Etape 4 (2/2) 30
  31. 31. Etape 5 L’utilisateur arrête la sonnerie 31
  32. 32. Etape 5 : résultats (1/2) Arrêt sonnerie 32
  33. 33. Etape 5 : résultats (2/2) 33
  34. 34. Etape 6 L’utilisateur désarme l’alarme 34
  35. 35. Etape 6 : résultats (1/2) enAlarme = false 35
  36. 36. Etape 6 : résultats (2/2) 36

×