Vous êtes sur la page 1sur 15
UML (Mécanismes d’extension d’UML) Unified Modeling Language

UML (Mécanismes d’extension d’UML)

Unified Modeling Language

UML (Mécanismes d’extension d’UML) Unified Modeling Language

Sommaire

Sommaire • Introduction • Objectifs • Note • Stéréotype • Etiquette • Contrainte • Extensions

Introduction

Objectifs

Note

Stéréotype

Etiquette

Contrainte

Extensions standard

Invariant, pré-condition, post-condition

OCL

ENIM - Master SI

www.freewebs.com/fresma

2

Mécanismes d’extension d’UML

Mécanismes d’extension d’UML • Les mécanismes d’extension sont essentiels car ce sont eux qui garantissent

• Les mécanismes d’extension sont essentiels car ce sont eux qui garantissent l’ouverture du langage et son adaptabilité à de nouvelles problématiques

• Mécanismes à utiliser avec précaution et parcimonie à ne mettre entre les mains que des responsables méthodes

ENIM - Master SI

www.freewebs.com/fresma

3

Mécanismes d’extension d’UML

Mécanismes d’extension d’UML Objectifs • Augmenter la portée du langage dans des directions bien maîtrisées

Objectifs

Augmenter la portée du langage dans des directions bien maîtrisées Les concepts standard proposés par UML peuvent être insuffisants pour modéliser certains problèmes complexes

Adapter

de

développement particulières Certains corps de métier ou certaines entreprises possèdent une culture de développement qui leur est propre

le

langage

à

des

habitudes

et

méthodes

ENIM - Master SI

www.freewebs.com/fresma

4

Mécanismes d’extension d’UML

Mécanismes d’extension d’UML UML fournit 4 mécanismes d’extension du langage : • Les notes Apport d’un

UML fournit 4 mécanismes d’extension du langage :

• Les notes Apport d’un commentaire n’ayant aucune conséquence sur la sémantique du modèle

• Les stéréotypes Création de nouveaux concepts UML à partir des concepts standard

• Les étiquettes (tagged values) Extension des propriétés associées à un concept UML

• Les contraintes Extension de la sémantique d’un concept UML en ajoutant de nouvelles règles ou en modifiant les anciennes

ENIM - Master SI

www.freewebs.com/fresma

5

Mécanismes d’extension standard d’UML

Mécanismes d’extension standard d’UML • UML fournit des stéréotypes, des étiquettes et des contraintes standard

• UML fournit des stéréotypes, des étiquettes et des contraintes standard :

– stéréotype : extend, use, import, executable, process, thread, …

– étiquette : persistance, sémantique, …

– contrainte : sous-ensemble, ordonné, ou, disjoint, chevauchement, complète,…

• UML permet de définir ses propres stéréotypes, étiquettes et contraintes

ENIM - Master SI

www.freewebs.com/fresma

6

Note

(Définition)

Note (Définition) Une note est un commentaire textuel ou graphique que l’on attache à un élément

Une note est un commentaire textuel ou graphique que l’on attache à un élément ou à un ensemble d’éléments

• Une note ne modifie pas la sémantique du modèle

• Elle est représentée par un rectangle écorné lié par un ou plusieurs traits pointillés aux éléments qu’elle commente

Les attributs et les méthodes de ces classes seront définies en phase de Conception Cf.
Les attributs et les
méthodes de ces classes
seront définies en phase
de Conception
Cf. Guide méthode
Client
http://wwww.nagora .com/
projetY/conception.html
Compte
ENIM - Master SI
www.freewebs.com/fresma

7

Stéréotype

(Définition)

Stéréotype (Définition) Un stéréotype est une chaîne de caractères qui associée à un élément UML existant

Un stéréotype est une chaîne de caractères qui associée à un élément UML existant permet de désigner un nouveau type d’élément UML

• Un stéréotype apparaît entre « guillemets » près du nom de l ’élément stéréotypé

• On peut représenter un stéréotype au moyen d’une nouvelle icône

Une représentation textuelle et une représentation graphique d’une classe stéréotypée
Une représentation
textuelle et une
représentation graphique
d’une classe stéréotypée
<<Métier>> Client Client
<<Métier>>
Client
Client

<<Technique>> Connexion BD

<<Technique>> Connexion BD
<<Technique>> Connexion BD
<<Sous-système>> Gestion utilisateurs
<<Sous-système>> Gestion utilisateurs
<<Sous-système>> Gestion utilisateurs

<<Sous-système>> Gestion utilisateurs

8

Etiquette

(Définition)

Etiquette (Définition) Une étiquette est une chaîne de caractères qui associée à un élément UML permet

Une étiquette est une chaîne de caractères qui associée à un élément UML permet de lui ajouter une propriété et sa valeur associée

• L’étiquette apparaît entre {accolades} et précise le nom de la propriété et sa valeur

• Utiles pour la génération de code ou la gestion de configuration

Utilisateur

nom { persist = Oui } prénom { persist = Oui } durée connexion { persist = Non }

Utilisateur nom { persist = Oui } prénom { persist = Oui } durée connexion {
Gestion utilisateurs { version = 2.1 }
Gestion utilisateurs { version = 2.1 }
Gestion utilisateurs

Gestion utilisateurs

{ version = 2.1 }

{ version = 2.1 }

Serveur { processeurs = 4 }
Serveur
{ processeurs = 4 }

9

Contrainte

(Définition)

Contrainte (Définition) Une contrainte est une chaîne de caractères qui associée à un élément UML permet

Une contrainte est une chaîne de caractères qui associée à un élément UML permet d’ajouter de nouvelles règles ou de modifier des règles existantes

• La contrainte apparaît entre {accolades} et définit la règle à appliquer

• On peut utiliser du texte informel ou recourir à l’utilisation d’un langage plus précis comme OCL (Object Constraint Language)

{ dont un compte chèque }

Client
Client

Employé

ancienneté

type

parrainé

* * parrain { sécurisé }
*
*
parrain
{ sécurisé }
Serveur
Serveur

{ self.parrain.ancienneté > 1an }

Utilisateur

*

Compte

Invariant, pré-condition, post- condition

Invariant, pré-condition, post- condition • Il existe 3 contraintes standard stéréotypées méritant d’être

• Il existe 3 contraintes standard stéréotypées méritant d’être citées ci :

– La contrainte stéréotypée « invariant » Il s’agit d’une contrainte attachée à un ensemble de classes ou de relations et dont la condition associée doit toujours être vérifiée dans le temps par les instances ou les liens des éléments attachés

– La contrainte stéréotypée « pré-condition » Il s’agit d’une contrainte attachée à une opération d’une classe et dont la condition doit être vérifiée pour que l’opération puisse être invoquée

– La contrainte stéréotypée « post-condition » Il s’agit d’une contrainte attachée à une opération d’une classe et dont la condition doit être vérifiée après l’invocation de l’opération

ENIM - Master SI

www.freewebs.com/fresma

11

Object Constraint Language

Object Constraint Language • OCL est un langage formel pour exprimer des contraintes • OCL est

• OCL est un langage formel pour exprimer des contraintes

• OCL est un langage facile à lire et à écrire

• OCL n’est pas un langage de programmation

– Pas de logique de programme

– Ne sert pas à décrire des flots de contrôle

• OCL est un langage d’évaluation d’expression

– Une expression retourne une valeur qui n’est pas nécessairement booléenne

• OCL est un langage typé

– Integer, Real, Boolean, String, Enumeration, Collection, Set, Bag

ENIM - Master SI

www.freewebs.com/fresma

12

Object Constraint Language

Object Constraint Language OCL est utilisé pour • Spécifier des contraintes générales sur les classes, les

OCL est utilisé pour

• Spécifier des contraintes générales sur les classes, les associations et les opérations

• Spécifier des invariants sur les classes et les associations

• Spécifier des pré / post conditions sur les opérations

• Décrire des gardes

Naviguer dans les diagrammes

ENIM - Master SI

www.freewebs.com/fresma

13

Object Constraint Language

Object Constraint Language Personne {self.âge > 18} { Context Personne inv : self.âge > 18 }
Personne

Personne

Personne
Personne
Personne
Personne
Personne
Personne
{self.âge > 18}
{self.âge > 18}
{ Context Personne inv : self.âge > 18 }
{ Context Personne inv :
self.âge > 18 }

14

• On associe à une expression OCL un contexte d’application, soit avec un lien de dépendance, soit en utilisant le mot-clé « Context »

• On peut préciser la nature de la contrainte : invariant, pré/post condition …

ENIM - Master SI

www.freewebs.com/fresma

Object Constraint Language

Exemples

Object Constraint Language Exemples • Context Personne inv : self.ancienneté > 0 • Context

• Context Personne inv : self.ancienneté > 0

• Context Personne::setPrimeAncienneté() post : self.ancienneté > 1 AND result = self.ancienneté * 1500

• Context Société inv : self.employeur.auChômage=False inv : self.employé->notEmpty (redondant avec multiplicité)

1 *

employé

Société

setPrimeAncienneté()

Personne

1 * employé Société setPrimeAncienneté() Personne employeur

employeur

ancienneté

{Ou - exclusif}

ancienneté {Ou - exclusif} auChômage

auChômage

15