profil UML pour les systèmes embarqués de l`automobile

Transcription

profil UML pour les systèmes embarqués de l`automobile
Sébastien Gérard
[email protected]
00 33 (0)1 69 08 90 57
Directeur de Thèse : François Terrier
03/02/2000 ©CEA 1997
profil UML pour les systèmes
embarqués de l’automobile
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
1
Plan de la présentation
äContexte et besoins
¾ Contraintes imposées par le partenaire industriel
¾ Choix définissant le cadre de travail
ä Présentation de la notion de profil UML
03/02/2000 ©CEA 1997
ä Le profil ACCORD/UML
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
2
Contexte de travail avec PSA
Le système que nous
voulons construire doit ….
Spécification
Donneur d’ordre
Automobile : Électricité et électronique
1993 : 12% 2005 : 25%
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
Produit
Fournisseurs
3
Quelques fonctions pilotées
Sécurité
Confort
Traction
Passive
Commandes
Contrôle moteur
Transmission
Système d'airbags
Prétensionneurs
Equipements
Véhicule
Tenue de route
Active
Communication
Suspension
Contrôle de stabilité
Freinage
Anticollision
Instruments
Audio, Téléphone
Aide à la navigation
Direction
Intrusions
Environnement
Direction assistée
Condamnations
Climatisation
Bruit
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
Mobilité
4
Complexité des systèmes
Capteurs
ECM
BVA
-Partage d’informations
-Interactions
-Concurrence...
BSI
Passerelle
Capteurs
ABS/CDS
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
SUSP
5
Définition des besoins et objectifs
ä Exprimer des besoins non-ambigus
• Compréhension entre donneur d ’ordre et fournisseurs
ä Maîtriser toute la chaîne de développement
• Spécification du système
• Implémentation sur cibles embarquées
• Validation des modèles produits
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
Ð Diminuer les erreurs (ou oublis)
Ð Évaluer les coûts de réalisation
Ð Évaluer les coûts de modification
6
Plan de la présentation
ä Contexte et besoins
¾ Contraintes imposées par le partenaire industriel
¾ Choix définissant le cadre de travail
ä Présentation de la notion de profil UML
¾ Définition des extensions de UML
¾ Organisation de ces extensions
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
ä Le profil ACCORD/UML
7
Mécanismes d’extension de UML
ä Stéréotypes (Stereotype)
• Ajout indirect d’éléments au méta-modèle
• « thread » ou « process » sur Classifier
ä Valeurs marquées (Tagged value)
• Ajout de propriétés à une méta classe
• {documentation = “ … ” } sur Element
ä Contraintes (Constraint)
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
• Ajout ou modification de « Well-Formedness Rules »
• {destroyed}, {new} ou {transient} sur Instance
8
Mécanismes d’extension de UML
ä Stéréotypes (Stereotype)
•Ajout indirect d’éléments au méta-modèle
ä Valeurs marquées (Tagged value)
•« thread » ou « process » sur Classifier
•Ajout de propriétés à une méta classe
ä Contraintes (Constraint)
•{documentation = “ … ” } sur Element
•Ajout ou modification de « Well-Formedness Rules »
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
Besoin
de structuration
•{destroyed},
{new} ou {transient} sur Instance
χ notion de profil dans UML 1.3
9
Définition d’un profil UML
ä Objectif
Spécialiser un métaMéta
modèle
standard
(comme UML) servant de
classes
fondamentales
tagged
et
référence en un méta
modèleStéréotypes,
spécifique
dédié àvalues
un domaine
sur lesquelles
repose le profil
introduits
dans
le profil
d’application particulier. contraintes
« Semantics
Variation
Points
» et
ambiguïtés sémantiques de UML
e.g.:
ä Un profil peut contenir…
Système
Mr Dupont
Train
Circuit
• les éléments sélectionnés du méta «modèle
référence,
conducteur
»
e.g.:
?Mr Dupont
• des mécanismes d’extension (ajouts ou spécialisations),
Control
• des notations supplémentaires,
• des règles de transformation, de validation ou de présentation.
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
• des descriptions sémantiques du profil,
10
Un modèle à quatre couches
instanceDe
Méta Méta Modèle Méta
(M3) Méta Modèle (M3)
MOF
instanceDe
MOF
...
Entité
...
Méta Modèle (M2) Méta Modèle (M2)
UML
UML
Autres
standards
Autres standards
instanceDe
instanceDe
Classe
instanceDe
instanceDe
Modèle (M1)
Voiture
Modèle (M1)
Objets (M0)
Objets (M0)
une106
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
instanceDe
instanceDe
11
Organisation de UML
Méta Méta Modèle (M3)
MOF
...
Méta Modèle (M2)
UML
SPE
...
Real Time
ACCORD/UML
ActionLanguage
Profils standard (M2)
Profils spécifiques utilisateur (M2)
03/02/2000 ©CEA 1997
Modèle (M1)
Objets (M0)
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
12
Exemples issus du profil ACCORD/UML
ä Règles de présentation
• Choix des diagrammes utilisés dans le contexte du processus de
développement ACCORD/UML
ä Extensions introduites
• Le stéréotype « Real Time Object »
• La valeur marquée {RTC=(dl(x,ms), …)}
• Aspects sémantiques
• Notations spécifiques introduites
• Génération automatique d’un patron de conception
ä Génération automatique du code temps-réel
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
ä Le concept de Signal
13
Processus de développement de ACCORD/UML
Analyse préliminaire
Besoins
Cas d’utilisation
Dictionnaire
Système
Système
Système
Analyse détaillée
Train
Circuit
Control
Diagrammes de classe
Diagrammes de séquence
Statecharts
Prototype
Circuit
Control
Diagrammes de classe
Diagrammes de séquence
Statecharts
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
Train
14
La notion d’objet actif de UML
anActiveObject
?
???
Code
Méthode
?
methode_1
Messages
Attributs
Messages
• « mono thread »
• comportement Ð
?
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
ä Caractéristiques principales de l’objet actif de UML
15
« Real-Time objects »
aRealTimeObject
...
Code
Méthode
Attributs
methode_1
met hode_1
met hode_2
methode_2
Interface
externe
methode_1
Messages
Message processing &
attribute access control
Messages
• « multi threadé » et « temps-réel »
• comportement clairement et complètement défini
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
ä Différences majeures avec l’objet actif de UML
16
Le concept de message de UML
ä Définition
Un message définit une communication particulière entre deux
instances participant à la réalisation d’une tâche précise.
ä Un message = une action + un événement
• Appel d’opération (CallAction + CallEvent)
Ð Communication synchrone ou asynchrone de type point à point
Ð Communication asynchrone, …
?
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
• Un signal (SendAction + SignalEvent)
17
Les signaux dans ACCORD/UML
ä Communication de type diffusion
• diffusés à tous les objets déclarés sensibles
• envoi Ð destinataire inconnu
• réception Ð émetteur inconnu
ä La réaction à un signal = exécution d’une méthode
ä Peut posséder une contrainte de temps
Real Time Feature:
{RTF = (dl(xxx, ms), rd(xxx, ms), p(xxx, ms), nbPeriod(xxx), endOfPeriod, outOfTime)}
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
• à l’émission Ð TV {RTF} sur l’action générant le signal
• à la réception Ð TV {RTF} sur un événement
18
Ajout de « Well-Formedness Rules »
Signal
0..1 +owner
+signal
+raised
1
*
SignalEvent
?
* +feature
Attribute
0..1 +owner
* +parameter
Parameter
SignalEvent
[1] Un événement signal ne possède que des paramètres en entrée.
[2] Un événement de type signal possède autant de paramètre que le signal lui même
possède d’attributs.
self.parameter È size = self.signal.allAttributes È size
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
self.parameter È forAll ( p | p.kind = # in)
19
Spécialisation de la notation pour les signaux
OffCar
CarStarter
OffCar
:CarStarter
Regulator
OffCar
{RTC=(dl(100, ms)}
:Regulator
/sendOffCar() {RTC=(dl(100, ms)}
Etat2
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
OffCar
Etat1
20
Plan de la présentation
ä Contexte et besoins
ä Présentation de la notion de profil UML
ä Le profil ACCORD/UML
03/02/2000 ©CEA 1997
• Aspects liés à la modélisation
• Transformation automatique de modèle
• Génération automatique de code
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
21
Transformation de modèle, pattern des signaux
_OffCar
+ _Signal()
+ addToListOfTarget ()
+ removeFromListOfTarget ()
+ broadcast()
«use»
OffCar
Regulator
Target
{isAbstarct = true}
listOfTargets
CarStarter OffCar
<<signal>>
OffCar
+ handleSignals()
«use» 0..*
CarStarter
- sendSignal()
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
Regulator
+ Recepteur ()
+ ~Recepteur ()
+ handleSignals()
03/02/2000 ©CEA 1997
<<signal>>
OffCar
« derive »
22
Dynamique du pattern des signaux
create()
:Regulator
_OffCar
addToListOfTargets(this)
delete()
removeFromListOfTargets(this)
:Regulator
:Target
sendOffCar()
:_OffCar
handleSignals(sig)
delete()
i=1..listOfTargets.size
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
create()
23
Passage du modèle à sa mise en œuvre multitâche
Regulateur
calculer
acquérir
loiDeReg
Modèles
calculer
acquerir
Exécution
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
Vitesse
24
Un même modèle pour plusieurs implantations TR
Real-Time Objects
«RTO»
Regulateur
maintenir
«thread»
«RTO»
Compteur
acquerir
«thread»
Loop
Multitasking
Regulateur
Lock
Task
maintenir
tacheMaintenir
create
take
release
create
start
Main
Regulateur
maintenir
Compteur
Compteur
acquerir
tacheAcquerir
«RTO»
InterfaceBoutonMA
InterfaceBoutonMA
InterfaceBoutonMA
emettreAppuiBoutonMA
tacheEmettreAppuiBoutonMA
Signal
ACCORD Kernel
MailBox
gererAppuiBoutonMA
ReplyBox
ACCORD Virtual Machine
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
Specific Code
Generation
03/02/2000 ©CEA 1997
emettreAppuiBoutonMA
«thread»
acquerir
25
Description du modèle utilisateur
PanneauAffichage
«PublicWriter»
InitAffichage(<infoEI)
1-1 portPA
PortPA
OnOff / InitAffichage(dl=50ms)
horsLigne
Class PanneauAffichage
{ public :
PortPA *portPA;
void InitAffichage(EI infoEI)
{ //### code user for InitAffichage ###
majInfoInitVitesse(infoEI.vit) ;
majInfoInitSyst(infoEI.syst);
//############# end #############
}
};
enLigne
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
«RealTimeObjects»
26
«RealTimeObjects»
PanneauAffichage
«PublicWriter»
intiAffichage(<pos)
Class PanneauAffichage : public RTO
{ public :
void initAffichage(RTC c, EI infoEI)
{ Request r (iniTask_initAffichage, this, c);
r << pos;
allocateTask( r); }
void iniTask_initAffichage (Request *pr)
{ PanneauAffichage *this = pr->This;
control(pr);
int arg; (*pr) >> arg;
codeTask_InitAffichage(arg);}
void codeTask_initAffichage(EI infoEI)
{ majInfoInitTrain(infoEI.train) ;
majInfoInitSyst(infoEI.syst);}
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
Génération automatique du code temps-réel 1/2
27
Génération automatique du code temps-réel 2/2
horsLigne
void handleSignal (OnOff &ev)
{ if (state == horsLigne)
{ RTC c (50);
InitAffichage( c, ev.infoEI);}
}
OnOff / InitAffichage(dl=50ms)
};
03/02/2000 ©CEA 1997
enLigne
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
28
Intérêt de cette démarche par profil UML
ä Guider
Contrôler
le développement des modèles
Automatiser
ä Gain en qualité, sûreté et en fiabilité des produits issus
d’un tel développement
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
ä Amélioration de la maîtrise de développement d’un
produit
29
Travaux en cours…
ä Rédaction d’un profil UML pour le développement de
systèmes temps-réel embarqués dans le domaine automobile
• Thèse
• Projet européen WOODDES
– CEA, PSA, IntraCom, MECEL, I-Logix, Verilog, UPSALA et OFFIS
ä Travaux sur la validation des modèles issus de ce profil
03/02/2000 ©CEA 1997
• Génération automatique de tests
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
30
Train
Circuit
Control
reformulation
t
n
e L
m
e
M
n
U
n
/
o
D
r
i
R
v
n
O
E
C
C
A
Θ
Agatha
J1 = (Vit=120, dist=150)
J2 = (Reg=true, Vit=55)
…
¬ (Vit < 100 ) ∧ ( dist < 200)
(Reg = true) ∧ (Vit ≥ 50)
…
Tests
DEIN/SLA/GLSP et DSIN/EIEV/ISIE : Sébastien Gérard
03/02/2000 ©CEA 1997
Produit
31