Méthodologie UML et Langages Synchrones

31
Méthodologie UML et Méthodologie UML et Langages Synchrones Langages Synchrones C. André, M-A Peraldi-Frati , J-P Rigault

Transcript of Méthodologie UML et Langages Synchrones

Page 1: Méthodologie UML et Langages Synchrones

Méthodologie UML et Méthodologie UML et Langages SynchronesLangages Synchrones

C. André, M-A Peraldi-Frati, J-P Rigault

Page 2: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 2

Organisation de la présentationOrganisation de la présentation

l Présentation du contexte l La méthodologiel La solution :

– Un Simulateur développé pour évaluer la solution

– Use case modèle / scénarios

– Modèle de Classes / Capsules

– Modèle dynamique / SyncCharts - SIB

– Vérification du modèle et preuves

l Conclusion et Perspectives

Page 3: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 3

Organisation de la présentationOrganisation de la présentation

lPrésentation du contextelll La méthodologieLa méthodologieLa méthodologielll La solution :La solution :La solution :

––– UnUnUn SimulateurSimulateurSimulateur développé pour évaluer la solutiondéveloppé pour évaluer la solutiondéveloppé pour évaluer la solution––– Use case modèle, / scénariosUse case modèle, / scénariosUse case modèle, / scénarios––– Modèle de Classes / Modèle de Classes / Modèle de Classes / CapsulesCapsulesCapsules––– Modèle dynamique / Modèle dynamique / Modèle dynamique / SyncChartsSyncChartsSyncCharts --- SIBSIBSIB––– Vérification du modèle et preuvesVérification du modèle et preuvesVérification du modèle et preuves

lll Conclusion & PerspectivesConclusion & PerspectivesConclusion & Perspectives

Page 4: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 4

Présentation du contextePrésentation du contexte

l Un projet => SPORTS– Modélisation et mise en œuvre de systèmes temps réel– Prototypage rapide et évaluation de performances

l Des choix sur …– Les modèles synchrones : Esterel, SyncCharts – Une méthode existante UML– Modélisation par composants autonomes hiérarchiques et

composables.

OS T

P RSSPORTS

OS T

P RSSPORTS

Page 5: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 5

Modèles Synchrones Modèles Synchrones

l Type d’application– Systèmes réactifs

l Support logiciel

–Génération de code

–Simulation

–Validationl Fondements

–Sémantique mathématique

l Caractéristiques–Contrôle instantané et déterminisme

–Fort niveau d’abstraction

–Discrétisation du temps

–Diffusion instantanée des signaux

Page 6: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 6

Objectifs dans l’étude du Objectifs dans l’étude du siège automobile.siège automobile.

l Développer une méthodologie autour des langages synchrones (Intégration dans UML)

l Aspects formels permettant de faire de la vérification et des preuves intra-inter modèles

Page 7: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 7

Organisation de la présentationOrganisation de la présentation

lllPrésentation du contextePrésentation du contextePrésentation du contextel La méthodologielll La solution :La solution :La solution :

––– UnUnUn SimulateurSimulateurSimulateur développé pour évaluer la solutiondéveloppé pour évaluer la solutiondéveloppé pour évaluer la solution––– Use case modèle, / scénariosUse case modèle, / scénariosUse case modèle, / scénarios––– Modèle de Classes / Modèle de Classes / Modèle de Classes / CapsulesCapsulesCapsules––– Modèle dynamique / Modèle dynamique / Modèle dynamique / SyncChartsSyncChartsSyncCharts --- SIBSIBSIB––– Vérification du modèle et preuvesVérification du modèle et preuvesVérification du modèle et preuves

lll Conclusion & PerspectivesConclusion & PerspectivesConclusion & Perspectives

Page 8: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 8

Caractéristiques d’UML SynchroneCaractéristiques d’UML Synchrone

UMLModèles Synchrones

SyncCharts

Aspects Statiques Aspects Dynamiques

Sequence Diagrams Statecharts

UML SynchroneClasses / Capsules

Diagramme de Séquence / SIB (Synchronous Interface Behaviour)

Statecharts / SyncCharts

Page 9: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 9

EtapesEtapes de la méthodologie UML Synchronede la méthodologie UML SynchroneSpecification

Analysis

Use Case Analysis

Textual Scenarios

Use Case Realization

Class Diagrams

Capsules

StructureDiagrams

Simulationenvironmentdevelopment

TCL/TKSeat

SimulatorSIB Scenarios

SyncCharts

InvariantObservers

Deliverables

Use CasesDiagrams

Scenariosfor usecases

ClassDiagrams

Capsules,StructureDiagrams

SynchartsSIB

E xpression of properties , Results of proofs

Collaborations

Page 10: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 10

Organisation de la présentationOrganisation de la présentation

lll Présentation du contexte Présentation du contexte Présentation du contexte lll La méthodologieLa méthodologieLa méthodologiel La solution :

– Un Simulateur développé pour évaluer la solution––– Use case modèle, / scénariosUse case modèle, / scénariosUse case modèle, / scénarios––– Modèle de Classes / Modèle de Classes / Modèle de Classes / CapsulesCapsulesCapsules––– Modèle dynamique / Modèle dynamique / Modèle dynamique / SyncChartsSyncChartsSyncCharts --- SIBSIBSIB––– Vérification du modèle et preuvesVérification du modèle et preuvesVérification du modèle et preuves

lll Conclusion & PerspectivesConclusion & PerspectivesConclusion & Perspectives

Page 11: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 11

Le simulateur de siègeLe simulateur de siège

Page 12: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 12

Environnement Esterel

Contrôleur

Environnement de simulationEnvironnement de simulation

InputHandler

Simulateur TCL/TK

OutputHandler

sockets

Page 13: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 13

Organisation de la présentationOrganisation de la présentation

lll Présentation du contexte Présentation du contexte Présentation du contexte lll La méthodologieLa méthodologieLa méthodologielll La solution :La solution :La solution :

––– UnUnUn SimulateurSimulateurSimulateur développé pour évaluer la solutiondéveloppé pour évaluer la solutiondéveloppé pour évaluer la solution– Use case modèle, / scénarios––– Modèle de Classes / Modèle de Classes / Modèle de Classes / CapsulesCapsulesCapsules––– Modèle dynamique / Modèle dynamique / Modèle dynamique / SyncChartsSyncChartsSyncCharts --- SIBSIBSIB––– Vérification du modèle et preuvesVérification du modèle et preuvesVérification du modèle et preuves

lll Conclusion & PerspectivesConclusion & PerspectivesConclusion & Perspectives

Page 14: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 14

Use Case Use Case niveau niveau 11

Adjust

Power supplyProtect

Control Panel

TachometerHeat

Key

Seat

Page 15: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 15

Use Case Use Case AdjustAdjust

ControlPanel

Key

Door

Adjust

Manual Automatic

Courtesy Calibration Memorization

Seat

Page 16: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 16

RRééalisationalisation: Manual Adjust: Manual Adjust

Manual Adjust <<boundary>>SeatEnvironment

<<capsule>>Encoder

<<capsule>>MotorDriver

<<boundary>> SeatPosition

<<capsule>>EncoderDashBoard

<<capsule>>MotorController

<<realize>>

Page 17: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 17

Organisation de la présentationOrganisation de la présentation

lll Présentation du contexte Présentation du contexte Présentation du contexte lll La méthodologieLa méthodologieLa méthodologielll La solution :La solution :La solution :

––– UnUnUn SimulateurSimulateurSimulateur développé pour évaluer la solutiondéveloppé pour évaluer la solutiondéveloppé pour évaluer la solution––– Use case modèle, / scénariosUse case modèle, / scénariosUse case modèle, / scénarios– Modèle de Classes / Capsules––– Modèle dynamique / Modèle dynamique / Modèle dynamique / SyncChartsSyncChartsSyncCharts --- SIBSIBSIB––– Vérification du modèle et preuvesVérification du modèle et preuvesVérification du modèle et preuves

lll Conclusion & PerspectivesConclusion & PerspectivesConclusion & Perspectives

Page 18: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 18

Diagramme de classes de Diagramme de classes de manual adjustmanual adjust

6 1

<<boundary>>SeatEnvironment

+acceptCommand(Com:byte)

<<capsule>>Encoder

<<port>>+/la Cmd:Cmd+/rh Cmd:Cmd+/sdCmd:Cmd+/b Cmd:Cmd

+/fh Cmd:Cmd+/hr Cmd:Cmd+/ acceptCommand:Byte ~

<<capsule>>MotorDriver

<<port>>+/ ack:Ack+/ cmdIn:Cmd

+/ enableIn:Enable+/ enableOut:Enable ~+/ cmdOut:Cmd ~

<<capsule>>CoupledMotorDriver

3

<<capsule>>

Group

<<port>>+/aAck:Ack+/1CmdIn:Cmd+/2CmdIn:Cmd+/3rCmdIn:Cmd+/enGrIn:Enable+/1CmdOut:Cmd ~+/2CmdOut:Cmd ~+/3CmdOut:Cmd ~

2

<<port>>+/enGr1:Enable+/laCmd:Cmd

+/rhCmd:Cmd+/sdCmd:Cmd+/enGr2:Enable+/bCmd:Cmd+/fhCmd:Cmd+/hrCmd:Cmd+/acceptCommand:Byte ~

<<capsule>>Drivers

<<port>>+/masterLogicalState :MotorState+/masterCurrentPosition : Position+/slaveCurentPosition: Position+/cmdFromCoupledMotorDriver:Goto ~

<<capsule>>

MotorController<<port>>+/goTo:Goto+/goToStop:Gotostop+/ms:BaseTime+/hallTick:TickMotor+/cmdFromEncoderDashBoard:Cmd+/logicalState:MotorState+/atStop:StopPosition ~+/motorFailure:MotorFailure ~+/distanceFailure:Boolean~+/currentPosition: Position ~+/logicalState : MotorState ~+/cmdFromPriority:Cmd ~

Page 19: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 19

Capsule Capsule MotorDriverMotorDriver

ack :Ack

enableIn :Enable enableOut: Enable

cmdIn :CmdcmdOut:Cmd

logicalState :MotorStateCmd = {P,M,Z} ,

Enable = {true, false}

Ack = {true, false}

MotorState ={P,M,Z}

Page 20: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 20

Diagramme de structureDiagramme de structure

:Enable :Enable

:EncoderacceptCommand(byte)

:AcceptCmd

:Ack

:Ack

enGr1 :Enable

enGr2 :Enable

laCmd :Cmd

rhCmd :Cmd

sdCmd:Cmd

bCmd :CmdfhCmd :Cmd

hrCmd :Cmd

:Drivers

La:MotorDriver

rh:MotorDriver

sd:MotorDriver

b:MotorDriver

fh :MotorDriver

hr:MotorDriver

:Enable :Enable

:Cmd

:Cmd

:Cmd

:Cmd

:Cmd

:Cmd

1 2 3

4 5 6

1

2

3

4

5

6

hrLogicalState::MotorState

fhLogicalState::MotorState

bLogicalState:

:MotorState

laLogicalState::MotorState

:MotorState

:MotorState

rhLogicalState:

sdLogicalState:

Page 21: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 21

Organisation de la présentationOrganisation de la présentation

lll Présentation du contexte Présentation du contexte Présentation du contexte lll La méthodologieLa méthodologieLa méthodologielll La solution :La solution :La solution :

––– UnUnUn SimulateurSimulateurSimulateur développé pour évaluer la solutiondéveloppé pour évaluer la solutiondéveloppé pour évaluer la solution––– Use case modèle, / scénariosUse case modèle, / scénariosUse case modèle, / scénarios––– Modèle de Classes / Modèle de Classes / Modèle de Classes / CapsulesCapsulesCapsules– Modèle dynamique / SyncCharts - SIB––– Vérification du modèle et preuvesVérification du modèle et preuvesVérification du modèle et preuves

lll Conclusion & PerspectivesConclusion & PerspectivesConclusion & Perspectives

Page 22: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 22

SyncChart SyncChart of of the MotorDriver the MotorDriver CapsuleCapsule

enableOut

# not enableIn

1

enableIn

# ack

cmdOutM

logicalStateM

enableIn

# cmdInM

cmdInZ / cmdOutZ

2

# cmdInP

3

cmdOutP

not enableIn/ cmdOutZ

enableIn

# ack

cmdInZ / cmdOutZlogicalStateP

not enableIn/ cmdOutZ

MotorDriver

logicalStateZ# logicalStateM or logicalStateP

Page 23: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 23

Diagrammes de SéquencesDiagrammes de Séquences

Diagrammes de séquences

SimplicitéLisibilité

Message SequenceCharts

Structuration Sémantique

Code Esterel

Synchronous InterfaceBehaviors

Page 24: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 24

SIB de la capsule Drivers SIB de la capsule Drivers :SeatPosition :Controller LA:Motor RH:Motor

RHdown acceptCmd(01000011)

idle

runningdown

idle

LAfwd acceptCmd(01000000)

idleacceptCmd(10000011)

runningforward

LAstop acceptCmd(10000000)

idle

acceptCmd(01000011)

runningdown

RHstop acceptCmd(01000000)

idle

Page 25: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 25

SIB de la capsule «SIB de la capsule « DriversDrivers »»

:DecoderDashBoard LA:MotorDriver

RHdown

LAfwdacceptCmd(01000000)

acceptCmd(10000011)

LAstop acceptCmd(10000000)

acceptCmd(01000011)

RHstop acceptCmd(01000000)

RH:MotorDriver :Encoder

RH.cmdIn(P)

LA.cmdIn(P) RH.disableInRH.cmdOut(Z)

LA.cmdOut(P)

LA.cmdOut(P)

a1

LA.cmdIn(Z)

LA.cmdOut(Z)

RH.enableIn RH.cmdOut(P)

RH.cmdOut(P)

a1

acceptCmd(01000011)RH.cmdOut(P)

a1

RH.cmdIn(Z)RH.cmdOut(Z)

:Controller

Page 26: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 26

SIB de la capsule SIB de la capsule CalibrationCalibration,,

:CalibrationTrigger LA:StopDetection LA:Priority LA:MotorDriver :Encoder

acceptCmd(10000000)

acceptCmd(10000001)

:Controller

LAgoToStop LA.cmdFromStopDetection(M)

LA.cmdFromPriority(M)

LA.cmdOut (M)

a1LA.logicalState(M)

250..250ms

:DecodeTick

LATick*

acceptTicks (1xxxxx00) *

LA.atStop LA.cmdFromStopDetection(Z)

LA.cmdFromPriority(Z)

LA.cmdOut (Z)

LA.logicalState(Z)

Page 27: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 27

Organisation de la présentationOrganisation de la présentation

lll Présentation du contexte Présentation du contexte Présentation du contexte lll La méthodologieLa méthodologieLa méthodologielll La solution :La solution :La solution :

––– UnUnUn SimulateurSimulateurSimulateur développé pour évaluer la solutiondéveloppé pour évaluer la solutiondéveloppé pour évaluer la solution––– Use case modèle, / scénariosUse case modèle, / scénariosUse case modèle, / scénarios––– Modèle de Classes / Modèle de Classes / Modèle de Classes / CapsulesCapsulesCapsules––– Modèle dynamique / Modèle dynamique / Modèle dynamique / SyncChartsSyncChartsSyncCharts --- SIBSIBSIB– Vérification du modèle et preuves

lll Conclusion & PerspectivesConclusion & PerspectivesConclusion & Perspectives

Page 28: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 28

Vérifications et PreuvesVérifications et Preuves

l Invariants et observateurs du système sont exprimés par des SIB

l Composition synchrone avec le contrôleurl Utilisation de l’environnement de modèle checking

– Forme Existentielle : est ce qu’un SIB ‘match’ en terme d’entrée sortie une trace d’exécution du contrôleur?

– Forme Universelle : vérifier qu’aucune séquence dans le contrôleur ne correspond au sib qui exprime une violation de propriété.

Page 29: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 29

Mbp

M1bp

M1done

0..2Sec

(a) (b)

Mbp

M1bp

M1done

0..2Sec

LAFbp RHUbp

Observateur d’un scénarioObservateur d’un scénario

Observed = {Mbp,M1bp,M1done,LAFbp ….}. Timebase = {Sec}

Page 30: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 30

Propriété de Propriété de safetysafety

(a)

Mbp

M1done

LAFbp

Mbp

M1bp

M1done

(b)

Observed = {Mbp,M1bp,M1done}

“Whenever M1done is emitted,M1bp has occurred since the last occurrence of Mbp”

“Longitudinal Adjustment Forward”,occurs between the activation of thememory function and the selection

of memory 1.

Observed = {Mbp,M1bp,M1done,LAFbp}.

Page 31: Méthodologie UML et Langages Synchrones

M.A. Peraldi-Frati SEE-SIC Objets et temps réel 31

Conclusion & PerspectivesConclusion & Perspectives

l Etude de cas du contrôleur de siège pour « valider »UML synchrone – Systèmes essentiellement discret – Capitaliser des « réflexes » de modélisation pour développer une

méthodologie

l Prise en compte des aspects continus des systèmes

l Intégration des caractéristiques du synchrone dans le méta modèle d’UML