Prfc rhapsody simulation_1.0

Preview:

DESCRIPTION

 

Citation preview

V1.0, 2012

La simulation de modèle SysML avec Rhapsody

pascal.roques@prfc.fr

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