La simulation de modèle                        SysML avec Rhapsody                        Exemple 1pascal.roques@prfc.fr  ...
Présentations : Pascal Roques Consultant senior, plus de 20 ans d’expérience  • SADT, OMT, UML, SysML Certifié UML2 et S...
Objectifs SysML, la variante d’UML2 standardisée récemment par  l’OMG, est particulièrement adapté au domaine de  l’indus...
Etude de cas : réveille-matin Considérons un réveille-matin simplifié :   • On peut mettre l’alarme « on » ou « off »   •...
Initialisation du modèle Rhapsody Nous utilisons la version 7.6.1 de IBM Rational Rhapsody  Designer for System Engineers...
Cas d’utilisation Un premier diagramme très simple                                     6
Scénario nominal « boite noire » Un autre  diagramme  simple donnant  un exemple  représentatif  d’utilisation du  réveil...
Premier niveau d’architecture (bdd) Deux blocs :  • Horloge  • Alarme Deux Value  Types Des  événements  utilisateur U...
Premier niveau d’architecture (ibd) Dans l’ibd, on  montre le  connecteur  entre l’horloge  et l’alarme  • C’est l’horlog...
Diagramme d’états de l’horloge (1/2) L’horloge est responsable  de l’horodatage courant   • L’horloge met à jour son     ...
Diagramme d’états de l’horloge (2/2)                                       11
Diagramme d’états de l’alarme (1/2) L’alarme gère les événements de l’utilisateur :   • ev_armer(Heure hAlarme,Minute mnA...
Diagramme d’états de l’alarme (2/2)                                      13
Création d’un panel graphique (1/3)                                      14
Création d’un panel graphique (2/3) Chaque élément du panel est lié à une valeur ou un état  du modèle  • heureCourante, ...
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 d...
Préparation de l’animation Préparation de l’espace de test                                    17
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...
Initialisation de l’animation (1/2) Une fois que le modèle est terminé : Full Build   • L’animation peut démarrer D’abor...
Initialisation de l’animation (2/2)                                      20
Démarrage de l’animation Event Generator  • Pour injecter des événements utilisateur                                     ...
Etape 1 L’utilisateur met à l’heure : 23h30                                        22
Etape 1 : résultats Mise à l’heure :  23h30                       23
Etape 2 L’utilisateur arme l’alarme : 06h30                                        24
Etape 2 : résultats (1/2) Alarme  armée :  06h30                             25
Etape 2 : résultats (2/2)                            26
Etape 3 (1/2) Pas d’intervention utilisateur : le temps s’écoule…                                                        27
Etape 3 (2/2)                28
Etape 4 (1/2) Le temps atteint l’heure d’alarme !                                        29
Etape 4 (2/2)                30
Etape 5 L’utilisateur arrête la sonnerie                                     31
Etape 5 : résultats (1/2) Arrêt  sonnerie                             32
Etape 5 : résultats (2/2)                            33
Etape 6 L’utilisateur désarme l’alarme                                   34
Etape 6 : résultats (1/2) enAlarme  = false                             35
Etape 6 : résultats (2/2)                            36
Prochain SlideShare
Chargement dans…5
×

Prfc rhapsody simulation_1.0

1 501 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 501
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

×