Upload
pascal-roques
View
784
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
V1.0, 2012
La simulation de modèle SysML avec Rhapsody
Exemple 1
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
Présentations : Pascal Roques
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
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
Initialisation du modèle Rhapsody
Nous utilisons la version 7.6.1 de IBM Rational Rhapsody
Designer for System Engineers
5
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éveille-matin
• Ébauche
d’identification
d’états
7
Premier niveau d’architecture (bdd)
Deux blocs :
• Horloge
• Alarme
Deux Value
Types
Des
événements
utilisateur
Une
opération
interne
8
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
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
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 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
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, etc.
15
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
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 simulation
18
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
Initialisation de l’animation (2/2)
20
Démarrage de l’animation
Event Generator
• Pour injecter des événements utilisateur
21
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