1. La simulation de modèle
SysML avec Rhapsody
Exemple 1
pascal.roques@prfc.fr V1.0, 2012
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. 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. 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. Initialisation du modèle Rhapsody
Nous utilisons la version 7.6.1 de IBM Rational Rhapsody
Designer for System Engineers
5
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. Premier niveau d’architecture (bdd)
Deux blocs :
• Horloge
• Alarme
Deux Value
Types
Des
événements
utilisateur
Une
opération
interne
8
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. 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
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
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. 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