SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Les Contraintes UML
Par: Sari Meriem
1
UNIVERSITE MOHAMED CHERIF MESAADIA
SOUK-AHRAS
Exposé sur:
Définition
2
une condition ou une restriction sémantique exprimée sous forme
d’instruction dans un langage textuel.
 Une contrainte:
 Peut être attachée à n’importe quel élément de modèle ou liste
d’éléments de modèle.
 Désigne une restriction qui doit être appliquée par une
implémentation correcte du système.
Sari Meriem Contraintes UML 1ére Année Master GL
Les Contraintes
3
 Une contrainte peut être un corps écrit dans un langage de
contrainte qui peut être:
 Naturel.
 Dédié, comme OCL.
 Issu d’un langage de programmation.
Sari Meriem Contraintes UML 1ére Année Master GL
Les Contraintes
4
Nous avons déjà vu comment exprimer certaines formes de
contraintes avec UML :
 Contraintes structurelles : les attributs dans les classes, les
différents types de relations entre classes, la cardinalité, etc.
 Contraintes de type : typage des propriétés, etc.
 Contraintes diverses : les contraintes de visibilité, les méthodes et
classes abstraites, etc.
Sari Meriem Contraintes UML 1ére Année Master GL
Représentation d’une Contrainte
5
 Une contrainte est représenté sous la forme d’une chaîne de texte
placée entre accolades ({}).
 Une contrainte peut possédé un nom.
 Le nom est présenté sous forme d’une chaîne suivie d’un double
point (:).
 Le tout précédant le texte de la contrainte.
Sari Meriem Contraintes UML 1ére Année Master GL
Contraintes et contraintes prédéfinies
6
UML permet d’associer une contrainte à un, ou plusieurs, élément(s)
de modèle de différentes façons :
Sari Meriem Contraintes UML 1ére Année Master GL
Types de Contraintes
7
 Invariant de Classe: une contrainte qui doit être satisfaite par
toutes les instances de la classe.
 Pré-condition d’une opération: une contrainte qui doit toujours
être vrai avant l’exécution de l’opération.
 Post-condition d’une opération: une contrainte qui doit toujours
être vrai après l’exécution de l’opération.
Sari Meriem Contraintes UML 1ére Année Master GL
OCL
8
un langage formel textuel d’expression de contraintes bien adapté
aux diagrammes d’UML.
 Acronyme de: Object Constraint Language.
 Existe depuis la version 1.1 d’UML.
 Peut s’appliquer sur la plupart des diagrammes d’UML et en
particulier au diagramme de classes.
 Simple à utiliser et non ambigüe.
Sari Meriem Diagrammes de Classes 1ére Année Master GL
Intérêt du OCL
9
C’est un langage formel volontairement simple d’accès.
 Peut être interprété par des outils.
 Représente un juste milieu entre le langage naturel et un langage
très technique (langage mathématique, informatique, …).
 Il permet ainsi de limiter les ambiguïtés, tout en restant
accessible.
 Une expression OCL décrit une contrainte à respecter et ne décrit
absolument pas l’implémentation d’une méthode.
Sari Meriem Contraintes UML 1ére Année Master GL
Typologie des contraintes OCL
10
1. Contexte (context).
2. Invariants (inv).
3. Préconditions et postconditions (pre, post).
4. Résultat d’une méthode (body).
5. Définition d’attributs et de méthodes (def et let…in).
6. Initialisation (init) et évolution des attributs (derive).
Sari Meriem Contraintes UML 1ére Année Master GL
Contexte (context)
11
 Une contrainte est toujours associée à un élément de modèle.
 C’est cet élément qui constitue le contexte de la contrainte.
 Syntaxe: context <élément>
 <élément> peut être une classe:
 Exemple: context Compte
 <élément> peut être une opération:
 Exemple: context Compte::getSolde()
Sari Meriem Contraintes UML 1ére Année Master GL
Invariants (inv)
12
 Un invariant exprime une contrainte prédicative sur un objet qui
doit être respectée en permanence.
 Syntaxe: inv : <expression_logique>
 Exemple: Le solde d’un compte doit toujours être positif.
context Compte
inv : solde > 0
Sari Meriem Contraintes UML 1ére Année Master GL
Préconditions & postconditions (pre, post)
13
 Une précondition permet de spécifier une contrainte prédicative
qui doit être vérifiée avant l’appel d’une opération.
 Une postcondition permet de spécifier une contrainte prédicative
qui doit être vérifiée après l’appel d’une opération.
 Syntaxe:
 Précondition : pre : <expression_logique>
 Postcondition : post : <expression_logique>
 Exemple:
context Compte::getSolde() : Real
pre : somme > 0
post : result = solde
Sari Meriem Contraintes UML 1ére Année Master GL
Résultat d’une méthode (body)
14
 Permet de définir directement le résultat d’une opération.
 Syntaxe: body : <requête>
 Exemple: le résultat de l’appel de l’opération getSolde doit être
égal à l’attribut solde.
context Compte::getSolde() : Real
body : solde
Sari Meriem Contraintes UML 1ére Année Master GL
Définition d’attributs et de méthodes (def et let…in)
15
 let permet de déclarer et de définir la valeur (i.e. initialiser) d’un
attribut qui pourra être utilisé dans l’expression qui suit le in.
 def permet également de déclarer et de définir la valeur
retournée par une opération interne à la contrainte.
 Syntaxe:
 let <déclaration> = <requête> in <expression>
 def : <déclaration> = <requête>
Sari Meriem Contraintes UML 1ére Année Master GL
Initialisation et évolution des attributs (init, derive)
16
 init permet de préciser la valeur initiale d’un attribut.
 derive précise comment la valeur de ce type d’élément évolue.
 Syntaxe:
 init : <requête>
 derive : <requête>
 Exemple:
context Personne::marié : Boolean
init : false
context Personne::age : Integer
derive : date_de_naissance - Date::current()
Sari Meriem Contraintes UML 1ére Année Master GL
Types et opérations utilisables dans OCL
17
I. Types et opérateurs prédéfinis
II. Types du modèle UML
III. Collections
1. Ensemble (Set)
2. Ensemble ordonné (OrderedSet)
3. Sac (Bag)
4. Séquence (Sequence) :
Sari Meriem Contraintes UML 1ére Année Master GL
Types et opérateurs prédéfinis
18Sari Meriem Contraintes UML 1ére Année Master GL
Types du modèle UML
19
 Une contrainte OCL peut référencer une valeur de type
énuméré.
 Syntaxe: <nom_type_enuméré>::valeur
 Exemple: la classe Personne possède un attribut genre de type
Genre. On peut donc écrire la contrainte :
context Personne
inv : genre = Genre::femme
Sari Meriem Contraintes UML 1ére Année Master GL
Collections
20
 Il existe plusieurs sous-types du type abstrait Collection :
 Ensemble (Set): collection non ordonnée d’éléments
uniques.
 Ensemble ordonné (OrderedSet): collection ordonnée
d’éléments uniques.
 Sac (Bag) :collection non ordonnée d’éléments
identifiables (pouvant comporter des doublons).
 Séquence (Sequence): collection ordonnée d’éléments
identifiables.
Sari Meriem Contraintes UML 1ére Année Master GL
Accès aux attributs et aux opérations (self)
21
 L’objet désigné par le contexte est également accessible par
l’expression self.
 Syntaxe: self.<propriété>
 Exemple: dans le contexte de la classe Compte, on peut utiliser les
expressions suivantes :
solde
self.solde
getSolde()
self.getSolde()
débiter(1000)
self.débiter(1000)
Sari Meriem Contraintes UML 1ére Année Master GL
Opération sur les classes
22
 Toutes les opérations que nous avons décrites jusqu’ici
s’appliquaient sur des instances de classe.
 OCL dispose d’une opération prédéfinie sur les classes, les
interfaces et les énumérations qui retourne l’ensemble de toutes les
instances.
 Exemple:
Personne.allInstances()
Sari Meriem Contraintes UML 1ére Année Master GL
Opérations sur les collections
23
 OCL a un grand nombre d'opérations prédéfinies sur les
collections.
 Syntaxe: collection->operation
 collection->collect(elem | expr)  Retourne la collection des
valeurs obtenues par application de expr aux éléments de collection.
 collection->select(elem | expression)  Retourne le sous
ensemble des éléments pour lesquels expression est vrai.
 collection->reject(elem | expression)  Retourne le sous
ensemble des éléments sauf lesquels que pour eux l’expression est
vrai.
 collection->forAll(elem | expr)  Retourne vrai si expr est vrai
pour tous les éléments de collection.
Sari Meriem Contraintes UML 1ére Année Master GL
Opérations sur les collections
24
 collection->exists(elem | expr)  Retourne vrai si il existe au
moins un élément de collection pour lequel expr est vrai.
 Autre opérations:
 isEmpty: vrai si self est vide.
 notEmpty: vrai si self n’est pas vide.
 size(): retourne le nombre d’éléments (la cardinalité) de self.
 count(elem):retourne le nombre d’occurrences de objet dans self.
 includes(elem): vrai si elem dans collection
 excludes(elem): vrai si self ne contient pas l’objet objet.
 sum(): etourne la somme des éléments de self.
Sari Meriem Contraintes UML 1ére Année Master GL
Héritage de contraintes
25
 Partout où une instance d'une classe est attendue, une instance
d'une sous classe peut lui être substituée.
 C’est le concepte de Liskov’s Substitution Principle (LSP).
Sari Meriem Contraintes UML 1ére Année Master GL
Consequences de LSP
26
 Pour les invariants:
 Un invariant est toujours hérité par ses sous classes.
 Les sousclasses peuvent renforcer l'invariant.
 Les preconditions et postconditions:
 Une precondition peut être weakened (contravariance).
 Une postcondition peut être strengthened (covariance).
Sari Meriem Contraintes UML 1ére Année Master GL
Exemple
27Sari Meriem Contraintes UML 1ére Année Master GL
Exemple
28
 Dans une société, le directeur est un employé, n’est pas un
chômeur et doit avoir plus de 40 ans. De plus, une société possède
exactement un directeur et au moins un employé.
context Société inv : self.directeur->size()=1 and
not(self.directeur.chômeur) and self.directeur.age > 40 and
self.employé->includes(self.directeur)
 Une personne possède deux parents, l’un est une femme et l’autre
un homme.
context Personne inv : parent->size()=2 implies
( parent->exists(genre=Genre::homme) and
parent->exists(genre=Genre::femme) )
Sari Meriem Contraintes UML 1ére Année Master GL

Más contenido relacionado

La actualidad más candente

TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE HINDOUSSATI
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Ahmed Makni
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementNassim Bahri
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Les règles de passage
Les règles de passageLes règles de passage
Les règles de passagemarwa baich
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...MOHAMMED MOURADI
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classeIlhem Daoudi
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Mohamed Aziz Chetoui
 
Gestion des actifs applicatifs
Gestion des actifs applicatifsGestion des actifs applicatifs
Gestion des actifs applicatifsSafaAballagh
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile Raoua Bennasr
 
Gestion d’une agence de voyage routière (Blondel Seumo)
Gestion d’une  agence  de  voyage  routière (Blondel Seumo)Gestion d’une  agence  de  voyage  routière (Blondel Seumo)
Gestion d’une agence de voyage routière (Blondel Seumo)Gantner Technologies
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRHRiadh K.
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITLina Meddeb
 

La actualidad más candente (20)

TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE
 
Support cours angular
Support cours angularSupport cours angular
Support cours angular
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Les règles de passage
Les règles de passageLes règles de passage
Les règles de passage
 
Modele mvc
Modele mvcModele mvc
Modele mvc
 
Rapport pfev7
Rapport pfev7Rapport pfev7
Rapport pfev7
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classe
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...
 
Gestion des actifs applicatifs
Gestion des actifs applicatifsGestion des actifs applicatifs
Gestion des actifs applicatifs
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Cours Génie Logiciel - Introduction
Cours Génie Logiciel - IntroductionCours Génie Logiciel - Introduction
Cours Génie Logiciel - Introduction
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Gestion d’une agence de voyage routière (Blondel Seumo)
Gestion d’une  agence  de  voyage  routière (Blondel Seumo)Gestion d’une  agence  de  voyage  routière (Blondel Seumo)
Gestion d’une agence de voyage routière (Blondel Seumo)
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRH
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 

Destacado

Diagrammes de classes uml
Diagrammes de classes umlDiagrammes de classes uml
Diagrammes de classes umlmeriem sari
 
Meta-modelisation avec eclipse
Meta-modelisation avec eclipseMeta-modelisation avec eclipse
Meta-modelisation avec eclipsemeriem sari
 
What is an aspect in aspect oriented requirements engineering
What is an aspect in aspect oriented requirements engineeringWhat is an aspect in aspect oriented requirements engineering
What is an aspect in aspect oriented requirements engineeringmeriem sari
 
Structural features for face recognition
Structural features for face recognitionStructural features for face recognition
Structural features for face recognitionmeriem sari
 
Design patterns french
Design patterns frenchDesign patterns french
Design patterns frenchmeriem sari
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspectmeriem sari
 
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser Femtoseconde
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser FemtosecondeMerieme HAROUCHE : Le Relex Smile Correction de la myopie au laser Femtoseconde
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser FemtosecondeYassin Sabar
 
Re l ex smile, the future of refractive surgery - medifocus sept 2013
Re l ex smile, the future of refractive surgery - medifocus sept 2013Re l ex smile, the future of refractive surgery - medifocus sept 2013
Re l ex smile, the future of refractive surgery - medifocus sept 2013Medifocus
 
Relex Smile laser surgery
Relex Smile laser surgeryRelex Smile laser surgery
Relex Smile laser surgeryFrank Jr Goes
 
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser Femtosec...
Merieme HAROUCHE : Le Relex Smile Correction de la myopie  au laser Femtosec...Merieme HAROUCHE : Le Relex Smile Correction de la myopie  au laser Femtosec...
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser Femtosec...Yassin Sabar
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artTom Mens
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of OppositesEdward Willink
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباءErradi Mohamed
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughRealTime-at-Work (RTaW)
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 

Destacado (20)

Cvs
CvsCvs
Cvs
 
Diagrammes de classes uml
Diagrammes de classes umlDiagrammes de classes uml
Diagrammes de classes uml
 
Ws asp.net
Ws asp.netWs asp.net
Ws asp.net
 
Meta-modelisation avec eclipse
Meta-modelisation avec eclipseMeta-modelisation avec eclipse
Meta-modelisation avec eclipse
 
What is an aspect in aspect oriented requirements engineering
What is an aspect in aspect oriented requirements engineeringWhat is an aspect in aspect oriented requirements engineering
What is an aspect in aspect oriented requirements engineering
 
Structural features for face recognition
Structural features for face recognitionStructural features for face recognition
Structural features for face recognition
 
Rest ws
Rest wsRest ws
Rest ws
 
A star
A starA star
A star
 
Design patterns french
Design patterns frenchDesign patterns french
Design patterns french
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspect
 
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser Femtoseconde
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser FemtosecondeMerieme HAROUCHE : Le Relex Smile Correction de la myopie au laser Femtoseconde
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser Femtoseconde
 
Re l ex smile, the future of refractive surgery - medifocus sept 2013
Re l ex smile, the future of refractive surgery - medifocus sept 2013Re l ex smile, the future of refractive surgery - medifocus sept 2013
Re l ex smile, the future of refractive surgery - medifocus sept 2013
 
Relex Smile laser surgery
Relex Smile laser surgeryRelex Smile laser surgery
Relex Smile laser surgery
 
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser Femtosec...
Merieme HAROUCHE : Le Relex Smile Correction de la myopie  au laser Femtosec...Merieme HAROUCHE : Le Relex Smile Correction de la myopie  au laser Femtosec...
Merieme HAROUCHE : Le Relex Smile Correction de la myopie au laser Femtosec...
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the art
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of Opposites
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enough
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 

Similar a Contraintes uml

srep_cours_05.pdf
srep_cours_05.pdfsrep_cours_05.pdf
srep_cours_05.pdfSamirAwad14
 
Diagramme de Classe
Diagramme de ClasseDiagramme de Classe
Diagramme de ClasseabdoMarocco
 
dokumen.tips_diagramme-de-sequence-uml.pdf
dokumen.tips_diagramme-de-sequence-uml.pdfdokumen.tips_diagramme-de-sequence-uml.pdf
dokumen.tips_diagramme-de-sequence-uml.pdfviyipim509
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriMansouri Khalifa
 
Présentation UML.ppt
Présentation UML.pptPrésentation UML.ppt
Présentation UML.pptNajiHita1
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfYasushiTsubakik
 
Le modèle de données - A. Les concepts
Le modèle de données - A. Les conceptsLe modèle de données - A. Les concepts
Le modèle de données - A. Les conceptsADBS
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classeAmir Souissi
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 
Cours de C++, en français, 2002 - Cours 1.4
Cours de C++, en français, 2002 - Cours 1.4Cours de C++, en français, 2002 - Cours 1.4
Cours de C++, en français, 2002 - Cours 1.4Laurent BUNIET
 

Similar a Contraintes uml (20)

UML Diagrammes Statiques
UML Diagrammes StatiquesUML Diagrammes Statiques
UML Diagrammes Statiques
 
srep_cours_05.pdf
srep_cours_05.pdfsrep_cours_05.pdf
srep_cours_05.pdf
 
Diagramme de Classe
Diagramme de ClasseDiagramme de Classe
Diagramme de Classe
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
UML3
UML3UML3
UML3
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
 
dokumen.tips_diagramme-de-sequence-uml.pdf
dokumen.tips_diagramme-de-sequence-uml.pdfdokumen.tips_diagramme-de-sequence-uml.pdf
dokumen.tips_diagramme-de-sequence-uml.pdf
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Uml
UmlUml
Uml
 
Présentation UML.ppt
Présentation UML.pptPrésentation UML.ppt
Présentation UML.ppt
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
 
SOLID _Principles.pptx
SOLID _Principles.pptxSOLID _Principles.pptx
SOLID _Principles.pptx
 
Le modèle de données - A. Les concepts
Le modèle de données - A. Les conceptsLe modèle de données - A. Les concepts
Le modèle de données - A. Les concepts
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
Cours de C++, en français, 2002 - Cours 1.4
Cours de C++, en français, 2002 - Cours 1.4Cours de C++, en français, 2002 - Cours 1.4
Cours de C++, en français, 2002 - Cours 1.4
 
Igl cours 3 - introduction à uml
Igl   cours 3 - introduction à umlIgl   cours 3 - introduction à uml
Igl cours 3 - introduction à uml
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 

Contraintes uml

  • 1. Les Contraintes UML Par: Sari Meriem 1 UNIVERSITE MOHAMED CHERIF MESAADIA SOUK-AHRAS Exposé sur:
  • 2. Définition 2 une condition ou une restriction sémantique exprimée sous forme d’instruction dans un langage textuel.  Une contrainte:  Peut être attachée à n’importe quel élément de modèle ou liste d’éléments de modèle.  Désigne une restriction qui doit être appliquée par une implémentation correcte du système. Sari Meriem Contraintes UML 1ére Année Master GL
  • 3. Les Contraintes 3  Une contrainte peut être un corps écrit dans un langage de contrainte qui peut être:  Naturel.  Dédié, comme OCL.  Issu d’un langage de programmation. Sari Meriem Contraintes UML 1ére Année Master GL
  • 4. Les Contraintes 4 Nous avons déjà vu comment exprimer certaines formes de contraintes avec UML :  Contraintes structurelles : les attributs dans les classes, les différents types de relations entre classes, la cardinalité, etc.  Contraintes de type : typage des propriétés, etc.  Contraintes diverses : les contraintes de visibilité, les méthodes et classes abstraites, etc. Sari Meriem Contraintes UML 1ére Année Master GL
  • 5. Représentation d’une Contrainte 5  Une contrainte est représenté sous la forme d’une chaîne de texte placée entre accolades ({}).  Une contrainte peut possédé un nom.  Le nom est présenté sous forme d’une chaîne suivie d’un double point (:).  Le tout précédant le texte de la contrainte. Sari Meriem Contraintes UML 1ére Année Master GL
  • 6. Contraintes et contraintes prédéfinies 6 UML permet d’associer une contrainte à un, ou plusieurs, élément(s) de modèle de différentes façons : Sari Meriem Contraintes UML 1ére Année Master GL
  • 7. Types de Contraintes 7  Invariant de Classe: une contrainte qui doit être satisfaite par toutes les instances de la classe.  Pré-condition d’une opération: une contrainte qui doit toujours être vrai avant l’exécution de l’opération.  Post-condition d’une opération: une contrainte qui doit toujours être vrai après l’exécution de l’opération. Sari Meriem Contraintes UML 1ére Année Master GL
  • 8. OCL 8 un langage formel textuel d’expression de contraintes bien adapté aux diagrammes d’UML.  Acronyme de: Object Constraint Language.  Existe depuis la version 1.1 d’UML.  Peut s’appliquer sur la plupart des diagrammes d’UML et en particulier au diagramme de classes.  Simple à utiliser et non ambigüe. Sari Meriem Diagrammes de Classes 1ére Année Master GL
  • 9. Intérêt du OCL 9 C’est un langage formel volontairement simple d’accès.  Peut être interprété par des outils.  Représente un juste milieu entre le langage naturel et un langage très technique (langage mathématique, informatique, …).  Il permet ainsi de limiter les ambiguïtés, tout en restant accessible.  Une expression OCL décrit une contrainte à respecter et ne décrit absolument pas l’implémentation d’une méthode. Sari Meriem Contraintes UML 1ére Année Master GL
  • 10. Typologie des contraintes OCL 10 1. Contexte (context). 2. Invariants (inv). 3. Préconditions et postconditions (pre, post). 4. Résultat d’une méthode (body). 5. Définition d’attributs et de méthodes (def et let…in). 6. Initialisation (init) et évolution des attributs (derive). Sari Meriem Contraintes UML 1ére Année Master GL
  • 11. Contexte (context) 11  Une contrainte est toujours associée à un élément de modèle.  C’est cet élément qui constitue le contexte de la contrainte.  Syntaxe: context <élément>  <élément> peut être une classe:  Exemple: context Compte  <élément> peut être une opération:  Exemple: context Compte::getSolde() Sari Meriem Contraintes UML 1ére Année Master GL
  • 12. Invariants (inv) 12  Un invariant exprime une contrainte prédicative sur un objet qui doit être respectée en permanence.  Syntaxe: inv : <expression_logique>  Exemple: Le solde d’un compte doit toujours être positif. context Compte inv : solde > 0 Sari Meriem Contraintes UML 1ére Année Master GL
  • 13. Préconditions & postconditions (pre, post) 13  Une précondition permet de spécifier une contrainte prédicative qui doit être vérifiée avant l’appel d’une opération.  Une postcondition permet de spécifier une contrainte prédicative qui doit être vérifiée après l’appel d’une opération.  Syntaxe:  Précondition : pre : <expression_logique>  Postcondition : post : <expression_logique>  Exemple: context Compte::getSolde() : Real pre : somme > 0 post : result = solde Sari Meriem Contraintes UML 1ére Année Master GL
  • 14. Résultat d’une méthode (body) 14  Permet de définir directement le résultat d’une opération.  Syntaxe: body : <requête>  Exemple: le résultat de l’appel de l’opération getSolde doit être égal à l’attribut solde. context Compte::getSolde() : Real body : solde Sari Meriem Contraintes UML 1ére Année Master GL
  • 15. Définition d’attributs et de méthodes (def et let…in) 15  let permet de déclarer et de définir la valeur (i.e. initialiser) d’un attribut qui pourra être utilisé dans l’expression qui suit le in.  def permet également de déclarer et de définir la valeur retournée par une opération interne à la contrainte.  Syntaxe:  let <déclaration> = <requête> in <expression>  def : <déclaration> = <requête> Sari Meriem Contraintes UML 1ére Année Master GL
  • 16. Initialisation et évolution des attributs (init, derive) 16  init permet de préciser la valeur initiale d’un attribut.  derive précise comment la valeur de ce type d’élément évolue.  Syntaxe:  init : <requête>  derive : <requête>  Exemple: context Personne::marié : Boolean init : false context Personne::age : Integer derive : date_de_naissance - Date::current() Sari Meriem Contraintes UML 1ére Année Master GL
  • 17. Types et opérations utilisables dans OCL 17 I. Types et opérateurs prédéfinis II. Types du modèle UML III. Collections 1. Ensemble (Set) 2. Ensemble ordonné (OrderedSet) 3. Sac (Bag) 4. Séquence (Sequence) : Sari Meriem Contraintes UML 1ére Année Master GL
  • 18. Types et opérateurs prédéfinis 18Sari Meriem Contraintes UML 1ére Année Master GL
  • 19. Types du modèle UML 19  Une contrainte OCL peut référencer une valeur de type énuméré.  Syntaxe: <nom_type_enuméré>::valeur  Exemple: la classe Personne possède un attribut genre de type Genre. On peut donc écrire la contrainte : context Personne inv : genre = Genre::femme Sari Meriem Contraintes UML 1ére Année Master GL
  • 20. Collections 20  Il existe plusieurs sous-types du type abstrait Collection :  Ensemble (Set): collection non ordonnée d’éléments uniques.  Ensemble ordonné (OrderedSet): collection ordonnée d’éléments uniques.  Sac (Bag) :collection non ordonnée d’éléments identifiables (pouvant comporter des doublons).  Séquence (Sequence): collection ordonnée d’éléments identifiables. Sari Meriem Contraintes UML 1ére Année Master GL
  • 21. Accès aux attributs et aux opérations (self) 21  L’objet désigné par le contexte est également accessible par l’expression self.  Syntaxe: self.<propriété>  Exemple: dans le contexte de la classe Compte, on peut utiliser les expressions suivantes : solde self.solde getSolde() self.getSolde() débiter(1000) self.débiter(1000) Sari Meriem Contraintes UML 1ére Année Master GL
  • 22. Opération sur les classes 22  Toutes les opérations que nous avons décrites jusqu’ici s’appliquaient sur des instances de classe.  OCL dispose d’une opération prédéfinie sur les classes, les interfaces et les énumérations qui retourne l’ensemble de toutes les instances.  Exemple: Personne.allInstances() Sari Meriem Contraintes UML 1ére Année Master GL
  • 23. Opérations sur les collections 23  OCL a un grand nombre d'opérations prédéfinies sur les collections.  Syntaxe: collection->operation  collection->collect(elem | expr)  Retourne la collection des valeurs obtenues par application de expr aux éléments de collection.  collection->select(elem | expression)  Retourne le sous ensemble des éléments pour lesquels expression est vrai.  collection->reject(elem | expression)  Retourne le sous ensemble des éléments sauf lesquels que pour eux l’expression est vrai.  collection->forAll(elem | expr)  Retourne vrai si expr est vrai pour tous les éléments de collection. Sari Meriem Contraintes UML 1ére Année Master GL
  • 24. Opérations sur les collections 24  collection->exists(elem | expr)  Retourne vrai si il existe au moins un élément de collection pour lequel expr est vrai.  Autre opérations:  isEmpty: vrai si self est vide.  notEmpty: vrai si self n’est pas vide.  size(): retourne le nombre d’éléments (la cardinalité) de self.  count(elem):retourne le nombre d’occurrences de objet dans self.  includes(elem): vrai si elem dans collection  excludes(elem): vrai si self ne contient pas l’objet objet.  sum(): etourne la somme des éléments de self. Sari Meriem Contraintes UML 1ére Année Master GL
  • 25. Héritage de contraintes 25  Partout où une instance d'une classe est attendue, une instance d'une sous classe peut lui être substituée.  C’est le concepte de Liskov’s Substitution Principle (LSP). Sari Meriem Contraintes UML 1ére Année Master GL
  • 26. Consequences de LSP 26  Pour les invariants:  Un invariant est toujours hérité par ses sous classes.  Les sousclasses peuvent renforcer l'invariant.  Les preconditions et postconditions:  Une precondition peut être weakened (contravariance).  Une postcondition peut être strengthened (covariance). Sari Meriem Contraintes UML 1ére Année Master GL
  • 27. Exemple 27Sari Meriem Contraintes UML 1ére Année Master GL
  • 28. Exemple 28  Dans une société, le directeur est un employé, n’est pas un chômeur et doit avoir plus de 40 ans. De plus, une société possède exactement un directeur et au moins un employé. context Société inv : self.directeur->size()=1 and not(self.directeur.chômeur) and self.directeur.age > 40 and self.employé->includes(self.directeur)  Une personne possède deux parents, l’un est une femme et l’autre un homme. context Personne inv : parent->size()=2 implies ( parent->exists(genre=Genre::homme) and parent->exists(genre=Genre::femme) ) Sari Meriem Contraintes UML 1ére Année Master GL