Beruflich Dokumente
Kultur Dokumente
UML 2.0
Ils peuvent mme tre employs (sans utiliser tous les concepts
La solution
lOMG a standardis le concept de profil UML.
Un profil est un ensemble de techniques et de mcanismes
strotype.
Un strotype est une sorte dtiquette nomme que lon peut
coller sur nimporte quel lment dun modle UML.
Lorsquun strotype est coll sur un lment dun modle,
le nom du strotype dfinit la nouvelle signification de
llment.
Par exemple
coller un strotype nomm "Scuris" sur une classe UML
10
11
MDA.
12
13
14
15
16
mtaclasse Package.
Cela signifie que les dfinitions de nouveaux profils sont
maintenant considres comme tant des packages.
La mtaclasse Stereotype hrite de son ct de la mtaclasse
Class. Cela signifie que les dfinitions de strotypes sont
considres comme tant des classes UML.
Le nom de la classe correspond au nom du strotype.
17
18
" sont lis non des classes normales mais des mtaclasses
(Class et Operation).
19
20
21
22
Prennit des
Savoir-Faire
Les
Les standards UML
modles
OCL,AS
2.0
en XML
23
Modle et
niveaux mta
MOF
24
Sur les deux diagrammes du haut, la contrainte porte sur un attribut qui doit tre positif.
En bas gauche, la contrainte {frozen} prcise que le nombre de roues dun vhicule ne
peut pas varier.
Au milieu, la contrainte {subset} prcise que le prsident est galement un membre du
comit.
Enfin, en bas droite, la contrainte {xor} (ou exclusif) prcise que les employs de lhtel
nont pas le droit de prendre une chambre dans ce mme htel.
25
Exemple
context Compte
context Compte
inv : banque.clients -> includes (propritaire)
27
28
contexte.
Une contrainte est toujours associe un lment de modle.
Cest cet lment qui constitue le contexte de la contrainte. Il
existe deux manires pour spcifier le contexte dune contrainte
OCL :
En crivant la contrainte entre accolades ({}) dans une note
Syntaxe :
context <lment>
<lment>: peut tre une classe, une opration, etc.
Exemple :
context Compte
context Compte::getSolde()
30
31
32
Syntaxe
Prcondition : pre : <expression_logique>
Postcondition : post : <expression_logique>
<expression_logique> est une expression logique qui doit toujours
tre vraie.
Exemle:
33
34
dune opration.
Syntaxe
body : <requte>
<requte> est une expression qui
retourne un rsultat dont le type doit tre compatible avec le
type du rsultat de lopration dsigne par le contexte.
Exemple
le rsultat de lappel de lopration getSolde doit tre gal
lattribut solde.
context Compte::getSolde() : Real
body : solde
lments de modle.
il est possible de lutiliser pour dfinir le corps doprations qui
ne font que slectionner des lments de modle. Nous utilisons
pour cela le mot-cl body:
Exemple : il est possible de spcifier en OCL le corps de lopration
context Personne::getComptePositif():Set
pre: self.cpts.notEmpty()
body: self.cpts->select(c | c.solde>0)
35
Collections
OCL dfinit galement la notion densemble sous le terme gnrique
36
exemple :
context Personne
self.cpts->select(c | c.solde>0)
37
self.cpts->exist(c | c.solde>0)
38
Le mtamodle OCL2.0
Lobjectif de la version 2.0 est principalement de spcifier OCL
39
OCL et UML
Les expressions OCL portent toutes sur des lments de modles
40
MtaMdle
UML 2.0
MtaMdle
OCL 2.0
41
42
En rsum
OCL permet de prciser les modles UML tout en faisant en sorte quils
43
Le standards AS
Action
Semantics
44
45
46
47