Profil UML
Une introduction...
Julien DeAntoni
Sciences Informatique 5ème année
2010 - 2011
[Link]@[Link] 1
Objectifs
✔ Connaître la notion de profile
✔ Comprendre la raison d'un tel mécanisme
✔ Comprendre les restrictions associées
✔ Comprendre la mise en oeuvre d'un profil
[Link]@[Link] 2
Approche basée méta-modèles
● Distinguer des concepts
● Associés à un domaine particulier
● Directement significatifs pour des spécialistes
● Pouvant être raffinés par les mécanismes
objets (héritage and co)
● Distinguer des relations entre ces concepts
● Sémantique statique d'association entre les
concepts
● Restriction sur les arités d'associations
[Link]@[Link] 3
Approche basée méta-modèles
● Distinguer des concepts
● Associés à un domaine particulier
● Directement significatifs pour des spécialistes
● Pouvant
Permet deêtre raffinés
capturer par lesspécifique
un langage mécanismesà
objets dans
un domaine (héritage and co)orientée modèle :
une approche
Domain Specific Modeling Language
● Distinguer des relations entre ces concepts
● Sémantique statique d'association entre les
concepts
● Restriction sur les arités d'associations
[Link]@[Link] 4
Approche basée méta-modèles
● Pros
● Liberté énorme pour la définition des concepts
● Langage “proche” des utilisateurs
● Facilité de prise en main pour l'utilisateur
● Cons
● Outillage à refaire (éditeurs, simulateur,
compilateur, etc)
● Difficile à définir proprement / efficacement
[Link]@[Link] 5
Et UML ??
● Unified Modeling Language...
● General Purpose Modeling Language
● Défini par un métamodèle
● « standard » défini par l'OMG
● Utilisable pour tout...et n'importe quoi
● Compréhensible par une communauté
grandissante
● Possède une sémantique exprimée en
langage naturel
● Possède des points de variation sémantique
[Link]@[Link] 6
Et UML ??
● Pros
● Bien outillé (éditeurs, compilateurs, etc)
● “standardisé”
● Facilite la compréhension inter discipline
● Permet de tout faire
● Cons
● Permet de tout faire
● Gros et difficile à appréhender au début
● Loin du langage de spécialistes pour un
domaine prècis
[Link]@[Link] 7
Et UML ??
● Pros
● Bien outillé (éditeurs, compilateurs, etc)
● “standardisé”
● Facilite la compréhension inter discipline But d'un profil....
● Permet de tout faire
● Cons
● Permet de tout faire
● Gros et difficile à appréhender au début
● Loin du langage de spécialistes pour un
domaine prècis
[Link]@[Link] 8
Profil UML
● Mécanisme d'extension générique pour UML
● Ajouter des concepts relatifs à un domaine
particulier
● Changer la representation de ces concepts
● Ajouter des contraintes sur les associations
entre ces concepts
● Ajouter des contraintes sur l'utilisation ou non
de certains concepts selon le contexte
● Fixer les points de variation sémantique
[Link]@[Link] 9
Profil UML
● Mécanisme d'extension générique pour UML
● Ajouter des concepts relatifs à un domaine
particulier
● Changer la representation de ces concepts
● Ajouter des contraintes sur les associations
entre ces concepts
● Ajouter des contraintes sur l'utilisation ou non
de certains concepts selon le contexte
● Fixer les points de variation sémantique
[Link]@[Link] 10
Profil UML
● Mécanisme d'extension générique pour UML
● Ajouter des concepts relatifs à un domaine
particulier
● Changer la representation de ces concepts
Un profile permet de définir un
● Ajouter
Domaindes contraintes
Specific surLanguage
Modeling les associations
entre ces concepts
● Ajouter des contraintes sur l'utilisation ou non
de certains concepts selon le contexte
● Fixer les points de variation sémantique
[Link]@[Link] 11
Profil UML
● Mécanisme d'extension générique pour UML
● Ajouter des concepts relatifs à un domaine
particulier
● Changer la representation de ces concepts
Un profil permet de définir un
● Ajouter des
Domain contraintes
Specific sur
Modeling les associations
Language
sans contredire
entre ces conceptsla sémantique d'UML
● Ajouter des contraintes sur l'utilisation ou non
de certains concepts selon le contexte
● Fixer les points de variation sémantique
[Link]@[Link] 12
Profil UML
●
Ajouter des concepts relatifs à un domaine particulier
● Utilisation de stéréotypes et d'extensions
● Petit bout du meta-modèle UML:
[Link]@[Link] 13
Profil UML
●
Ajouter des concepts relatifs à un domaine particulier
● Utilisation de stéréotypes et d'extensions
● Petit bout du meta-modèle UML...
[Link]@[Link] 14
Profil UML
●
Ajouter des concepts relatifs à un domaine particulier
● Utilisation de stéréotypes et d'extensions
● Meta-modèle UML...
Tout sur les profils tient en 26 pages dans
les spécifications officielles de la “super structure” d'UML !!
([Link]
[Link]@[Link] 15
Profil UML
● Ajouter des concepts relatifs à un domaine particulier
● Utilisation de stéréotypes et d'extensions
● Exemple, la notion d'horloge et de type d'horloge
UML metaclass
extension
Définition
Définition
du
du
stereotype profil
profil
[Link]@[Link] 16
Profil UML
● Ajouter des concepts relatifs à un domaine
particulier
● Utilisation de stéréotypes et d'extensions
● Exemple, la notion d'horloge et de type d'horloge
Applied stereotype
UML class UML property
or
itsResolution = 1
instance specification
= TAI
= discrete
Stereotype properties Utilisation
Utilisation
du
du
profil
profil
[Link]@[Link] 17
Profil UML
● Ajouter des concepts relatifs à un domaine
particulier
● Utilisation de stéréotypes et d'extensions
● Exemple, la notion d'horloge et de type d'horloge
Applied stereotype
UML class UML property
or
itsResolution = 1
instance specification
= TAI
= discrete
Stereotype properties Utilisation
Utilisation
du
du
profil
profil
Peut etre représenté
Dans un commentaire...
[Link]@[Link] 18
Profil UML
● Ajouter des concepts relatifs à un domaine
particulier
● Utilisation de stéréotypes et d'extensions
● Exemple, la notion d'horloge et de type d'horloge
Applied stereotype
UML class UML property
or
itsResolution = 1
instance specification
= TAI
= discrete
Stereotype properties Utilisation
Utilisation
du
du
<<clockType>> profil
profil
nature = discrete
...
[Link]@[Link] 19
Profil UML
● Ajouter des concepts relatifs à un domaine
particulier
● Utilisation de stéréotypes et d'extensions
● Exemple, la notion d'horloge et de type d'horloge
Définition
Définition
du
du
Stereotype profil
attribute profil
Stereotype
Attribute of type
“Property”
[Link]@[Link] 20
Profil UML
● Ajouter des concepts relatifs à un domaine
particulier
● Utilisation de stéréotypes et d'extensions
● Exemple, la notion d'horloge et de type d'horloge
A property
UML property value
itsResolution = 1
= TAI
= discrete
Utilisation
Utilisation
du
du
profil
profil
Reference to
a Property
[Link]@[Link] 21
Profil UML
● Mécanisme d'extension générique pour UML
● Ajouter des concepts relatifs à un domaine
particulier
● Changer la representation de ces concepts
● Ajouter des contraintes sur les associations
entre ces concepts
● Ajouter des contraintes sur l'utilisation ou non
de certains concepts selon le contexte
● Fixer les points de variation sémantique
[Link]@[Link] 22
Profil UML
● Changer la representation de ces concepts
● Pour faire plus joli :)
● Pour utiliser la représentation “traditionnelle”
[Link]@[Link] 23
Profil UML
● Changer la representation de ces concepts
● Pour faire plus joli :)
● Pour utiliser la représentation “traditionnelle”
MySemaphore
myClock MyTask
[Link]@[Link] 24
Profil UML
● Changer la representation de ces concepts
● Pour faire plus joli :)
● Pour utiliser la représentation “traditionnelle”
[Link]@[Link] 25
Profil UML
● Mécanisme d'extension générique pour UML
● Ajouter des concepts relatifs à un domaine
particulier
● Changer la representation de ces concepts
● Ajouter des contraintes sur les associations
entre ces concepts
● Ajouter des contraintes sur l'utilisation ou non
de certains concepts selon le contexte
● Fixer les points de variation sémantique
[Link]@[Link] 26
Profil UML
● Ajouter des contraintes sur les associations entre ces
concepts
● Restreindre les associations existantes au niveau des
meta-classes UML
→ limiter le nombre d'attribut du concept à N
● Forcer des règles logiques d'associations
→ mon concept1 doit avoir le meme nombre d'attributs
que le concept2
→ l'ensemble des variables d'un appel de fonction
doit être un sous ensemble des variables du context
d'appel
[Link]@[Link] 27
Profil UML
● Ajouter des contraintes sur les associations entre ces
concepts
● Restreindre les associations existantes au niveau des
meta-classes UML
→ limiter le nombre d'attribut du concept à N
● Forcer des règles logiques d'associations
→ mon concept1 doit avoir le meme nombre d'attributs
que le concept2
Ajout de contraintes OCL
[Link]@[Link] 28
Profil UML
● Mécanisme d'extension générique pour UML
● Ajouter des concepts relatifs à un domaine
particulier
● Changer la representation de ces concepts
● Ajouter des contraintes sur les associations
entre ces concepts
● Ajouter des contraintes sur l'utilisation ou non
de certains concepts selon le contexte
● Fixer les points de variation sémantique
[Link]@[Link] 29
Profil UML
● Ajouter des contraintes sur l'utilisation ou non de
certains concepts selon le contexte
● Contraintes très spécifiques :
→ mon concept1 doit toujours avoir une association
avec le concept2 si il y a utilisation du concept3
Ajout de contraintes OCL
● Désire de ne pouvoir utiliser que les éléments définis dans
le profil
→ utilisation du mot clef “isStrict” lors de
l'application d'un profil
[Link]@[Link] 30
Profil UML
● Mécanisme d'extension générique pour UML
● Ajouter des concepts relatifs à un domaine
particulier
● Changer la representation de ces concepts
● Ajouter des contraintes sur les associations
entre ces concepts
● Ajouter des contraintes sur l'utilisation ou non
de certains concepts selon le contexte
● Fixer les points de variation sémantique
[Link]@[Link] 31
Profil UML
● Fixer les points de variation sémantique
● Faire un choix parmi les possibilités sémantiques
laissées ouvertes par UML
→ Signals may broadcased or mulitcasted
→ Statemachine have a queue that may be FIFO, LIFO,
Mailbox…
Pour l'instant ces choix sont fait en langage naturel
Et, éventuellements, reflétés par les outils
manipulant les modèles.
[Link]@[Link] 32
Profil UML
● Ça à l'air facile.... mais il faut savoir que :
● Il est nécessaire de connaître UML sur le bout des
doigts
– Ses concepts
– Sa sémantique
● Il est nécessaire de bien connaître les concepts du
domaine
● Les outils n'ont pas toujours tous les concepts UML
décrits dans le standard
● Les outils ne reflètent pas toujours la sémantique
décrite dans le standard
● Difficile de toujours respecter la sémantique
d'UML....
[Link]@[Link] 33
Mise en oeuvre
● Un minimum d'organisation
● Un projet pour la définition du profil
– [Link]
● Un projet pour les modèles de test qui
appliqueront ce profil
– [Link]
● Le pdf de la spécification d'UML ouvert :-)
– [Link]
[Link]@[Link] 34
Mise en oeuvre
● Comment commencer...
● Pas facile à dire...
● Identifier le type de modèle UML le plus adapté ?
– Structurel
– Comportemental
– …
● Faire un premier tour d'horizon des concepts UML
succeptible d'être étendu
● Retrousser ses manches, commencer à définir le profil en
le testant régulièrement
[Link]@[Link] 35
Mise en oeuvre
● Papyrus ([Link])
● Éditeur UML open source
● Développé par le CEA List
● Relativement complet et aligné sur les
spécifications officielles
● Permet le développement de profil perso
[Link]@[Link] 36
Mise en oeuvre
● Papyrus, les essentiels
● Creation d'un projet... choix model ou profil...
● Lors de la modification du profil, il faut le re-
appliquer sur le modèle
● L'onglet propriété est très important !! Il
contient lui-même plusieurs volet dont un
nommé “profile”
● Attention à la différence “delete from diagram”
et “delete from model”
● Faire des copies de sauvegarde régulièrement
[Link]@[Link] 37
À vous de jouer...
[Link]@[Link] 38