II. Diagrammes de classes et Diagrammes d`objets

Transcription

II. Diagrammes de classes et Diagrammes d`objets
08/10/2010
Introduction
Conception Orientée Objet
Diagramme de classes
II. Diagrammes de classes
et Diagrammes d’objets
 Diagramme ………………….. du modèle du SI.
 Montre les classes et leurs relations statiques.
 Le plus ……………. en notations.
Rafik BOUAZIZ
--
Faïez GARGOURI
FSEG – Sfax
 L’équivalent du modèle
 Les erreurs dans ce diagramme ont souvent
un impact sur les autres diagrammes.
ISIM – Sfax
35
R. BOUAZIZ -- F. GARGOURI
Concept de classe

R. BOUAZIZ -- F. GARGOURI

 est représentée par un rectangle avec :
…………………..

………………………….
Pour une classe :
 On peut :
et

 ne
pas représenter ses attributs et/ou ses opérations
sur un diagramme,
NOM DE CLASSE

Attributs
opérations
Exceptions
pas spécifier les niveaux de protection des
membres d'une classe,

37
R. BOUAZIZ -- F. GARGOURI
un filtre visuel pour donner un certain niveau
d'……………………… à son modèle ;
on peut se limiter aux noms des classes ;
 ne
Classe = Attributs + Opérations +
Mécanisme d’instanciation (Constructeur)
Concept de classe
ne veut pas dire que l'on ne représente que les
membres publics.
R. BOUAZIZ -- F. GARGOURI
38
Concept de classe

 Remarque : Par abus de langage
Pour une classe :
 Le ……….. de la classe, selon la norme UML est en
= propriété = donnée-membre, …
 Opération
36
Concept de classe
Avec UML, une classe :
 Attribut
…………….
gras, mais on peut se limiter à l’écrire en
majuscule.
= méthode = fonction-membre, …
 Un attribut d’une classe constitue un élément de
l'………… de ses objets,

participe à la caractérisation des objets.
 Une opération représente un …………….. spécifique
offert par les objets de la classe.
R. BOUAZIZ -- F. GARGOURI
39
R. BOUAZIZ -- F. GARGOURI
40
1
08/10/2010
Concept de classe

Concept de classe

Les attributs et les opérations :
Exemple :
Nom
 sont décrits dans le deuxième et troisième
compartiments.
Attributs
NOM DE CLASSE
NomAttribut [: type [= valeur initiale] ]
Opérations
Opération ()
41
R. BOUAZIZ -- F. GARGOURI
Concept de classe
 ………………………
COMMANDE
DateDeRéception
EstPrépayée
Lignes
Prix
Expédier ()
Fermer()
42
R. BOUAZIZ -- F. GARGOURI
Diagramme d’objets
ou note :

Commentaire
Les diagrammes d’objets ou d’instances :
 présentent l’état d’un système à un instant donné,
 montrent :
 des
…………….…. (instances de classes) dans un
état particulier et
COMMANDE
DateDeRéception
EstPrépayée
Lignes
Prix
Commentaire
---- commentaire
Expédier()
Fermer()
 des
……………. (relations sémantiques : instances
d’associations) entre ces objets,
 facilitent la compréhension des structures de
données complexes,
 servent durant la phase exploratoire de l’analyse.
43
R. BOUAZIZ -- F. GARGOURI
Diagramme d’objets

Diagramme d’objets
Représentation des objets :

Mohamed
Nom Objet : CLASSE
Mohamed : PERSONNE
Valeurs des attributs des objets :
 Le rectangle représentant un objet peut comporter
Objet ……….….
Nom Objet
une partie contenant les ……………. de ses attributs :
:CLASSE
Ahmed : ADHERENT
Nom = Mohamed
Prénom = Ahmed
Adresse = Sfax
:PERSONNE
 L’ …………… d’un objet :
 Un ……………. d’objets :
: VOITURE
Couleur = rouge
Puissance = 4
Marque = Peugeot
:CHAMBRE [Occupée]
 est
déterminé par les valeurs prises par ses attributs,
un instant donné, un objet est dans un état particulier,
conséquence des opérations de modifications
appliquées.
:PERSONNE
R. BOUAZIZ -- F. GARGOURI
44
R. BOUAZIZ -- F. GARGOURI
à
45
R. BOUAZIZ -- F. GARGOURI
46
2
08/10/2010
Syntaxe de classe

Syntaxe de classe
 Multiplicité : intervalle ou nombre
La …………… de description des ……………… est :
Multiplicité := (Intervalle|nombre)
[Visibilité] NomAttribut [Multiplicité]
[ : Type [=Valeur Initiale] [{Propriété}]*]
 Le type des attributs peut être :
 Visibilité = type d'accessibilité :
 Un type …………… (supporté par les LP) : Entier, chaîne, …
+ : ……………, visible et modifiable par tout objet du
même paquetage.
- : ………………., seulement visible et modifiable par les
opérations de l'objet auquel il appartient.
# : …………………, seulement accessible et modifiable
par les opérations des classes descendantes.
 Une …………… (type utilisateur) : BOUTON, RECTANGLE, …
 Expression : chaîne de caractères dont la syntaxe est en
dehors de la portée d’UML.
47
R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
48
R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe

Propriété :
Un attribut peut être
……………..
(/Attribut) :
 Il peut être déduit par application d’une formule
…………………….. (gelé, variable, ajout Uniquement, …)
sur d’autres attributs.
 Il peut conduire en implémentation à une
 Gelé : attribut non modifiable (const de C++).
opération.
 Variable : attribut modifiable (propriété par défaut).
RECTANGLE
RECTANGLE
 Ajout Uniquement : seul l’ajout est possible
Note
Longueur
Largeur
/Surface
(multiplicité > 1).
Contrainte :
Surface =
longueur * largeur
Opérations
Exemple : - num_sec_soc : string[10] = " " {unique}
Niveau Analyse
49
R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
Longueur
Largeur
Surface ()
Niveau Conception
50
R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe

Exemple :
TELEVISION
PRODUIT
OnOff : BOUTON
Couleur : énum {gris,noir}
Marque : Chaîne
Télétexte : Booléen = Vrai
Chaînes [2..*] : CANAL
Prix : Réel
HautParleurs [2..6] : HAUT-PARLEUR
Type : TypeTV {gelé} …
- PrixHT
- TVA
-/PrixTTC {PrixTTC =PrixHT * (1+TVA) }
CANAL
HAUTPARLEUR
BOUTON
<<énumération>>
TypeTV
}
16/9
3/4
Classes
R. BOUAZIZ -- F. GARGOURI
51
R. BOUAZIZ -- F. GARGOURI
52
3
08/10/2010
Syntaxe de classe
Syntaxe de classe
 Classes utilitaires
 Structuration des
variables (et des constantes)
globales.
 Représentées par des classes stéréotypées.
 Les données membres sont statiques.
Les stéréotypes : mécanismes d’ ……………………. des
constructions UML.
Appliqués aux classes, ils permettent d’avoir des
classes particulières répondant à un besoin donné.
Exemples : énumération, interface, utilitaire, …
R. BOUAZIZ -- F. GARGOURI
53
Syntaxe de classe

«utility»
VariablesGlobales
- var1
- var2
R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
 Visibilité : +, -, #
de description des ……………………… :
[Visibilité] NomOpération [[Arguments] :
TypeRetourné [{Propriété}*]]
………………
 Arguments : [Direction] NomArgument
[: TypeArgument] [= ValeurDefaut]
Exemple : + fact(n:int) : int {récursive}
Direction (idem PL/SQL) : in, out, inout
Remarque :

 Une opération : un service qu’une instance de la
classe peut réaliser.

 Une méthode est l’implémentation d’une opération.
 Abus
de langage : opération = méthode
R. BOUAZIZ -- F. GARGOURI
54

55
Syntaxe de classe
in est la valeur par défaut
: argument est un paramètre en entrée seule ;
non modifié par l’exécution de cette opération.
………. : argument est un paramètre en sortie seule ;
l’appelant peut récupérer sa valeur.
………… : argument est un paramètre en entrée-sortie ;
passé à l’opération, modifiable et récupérable.
……
R. BOUAZIZ -- F. GARGOURI
56
Syntaxe de classe
 Propriété :
 Représentation détaillée (conception)
requête : l’opération ne modifie pas les attributs ;
 abstrait : l’opération n’est pas implémentée dans la
classe ;
 estFeuille : l’opération ne peut pas être redéfinie ;
 estRacine : l’opération est définie pour la première
fois dans la hiérarchie ;
 récursive : l’opération est récursive ;
 …

R. BOUAZIZ -- F. GARGOURI
COMMANDE
- DateDeRéception [0..1 ] : Date
# EstPrépayée [1 ] : Boolean = False
- Lignes [1 ..*] : LigneCommande
- Prix : Real
+ Expédier () : Boolean
+ Fermer()
57
R. BOUAZIZ -- F. GARGOURI
58
4
08/10/2010
Syntaxe de classe

Syntaxe de classe
Visibilité et portée des attributs et
des opérations ………………… :

RESERVATION
PRODUIT
CLASSE
+ AttributPublic
# AttributProtégé
- AttributPrivé
AttributDeClasse
NumProduit
IntituléProduit
PrixProduit
NbreDeProduits
Attribut de classe
Souligné
Visibilité globale :
l’attribut est considéré
comme un objet partagé
par les instances d’une
classe
Idem pour les
opérations
- Identifiant : Integer
- Date : Date
-Compteur : Integer
+ getProchainIdentifiant() : Integer
Créer()
Supprimer()
59
R. BOUAZIZ -- F. GARGOURI
Concept de relation

Correspondent aux membres static en C++ ou Java
60
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations

Les …………………… entre classes :
Les associations :
 Une association exprime une ……………………
 Association.
sémantique bidirectionnelle entre n classes (n>=1).
 Agrégation.
 Composition.
ADHERENT
 Héritage.
Nom
Prénom
Adresse
Remarque : par rapport au modèle E/A de base,
les Représentations Conceptuelles UML sont :
EXEMPLAIRE
Créer()
 Une association est …………………………. dans un
+ riches sémantiquement et
diagramme d'objets sous forme de liens, ou dans un
diagramme de collaboration sous forme de messages,
entre objets issus des classes associées.
+ proches de la réalité.
61
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Diagramme de
classes
Emprunter
62
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
 Une association représente donc une relation
Association
C1
C2
conceptuelle durable entre n classes (n>=1).
Classes
 Les instances d’une association sont des tuples des
instances des classes reliées par cette association.
ADHERENT
:C1
:C2
Lien
Diagramme d’objets
R. BOUAZIZ -- F. GARGOURI
Objets
Nom
Prénom
Adresse
:C1
Message
:C2
Emprunter
EXEMPLAIRE
Créer()
Diagramme de collaboration
63
 Des instances de l’association Emprunter :
{ (A1, E1), (A1, E2), …. (A2, E4), (A2, E7), ….}
R. BOUAZIZ -- F. GARGOURI
64
5
08/10/2010
Concept de relation --- Les associations

Concept de relation --- Les associations
Les multiplicités ou cardinalités :

 Par rapport au modèle Entité/Association :
P11
P12
…
Card1
A1
Card2
[ Nom Association ]
Classe1
Entité 2
Entité 1
Diagramme
Entité /
Association
Nommage des associations
 Une association peut être nommée : c’est optionnel.
P21
P22
…
Classe2
 Les noms peuvent être en forme ……………… active ou
passive
 Le …………. de lecture d’une association peut être
précisé lorsqu’il est ambigu :
Diagramme
de classes
Classe 1 Card2
P11 P12 …
Card1
A1
Classe 2
P21 P22 …
HÔTEL
65
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations

est employée par>
héberge>
PERSONNE
66
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Arités des associations :

 Une association peut être binaire ou n-aire (à éviter).
Association à navigabilité restreinte :
 Par défaut, une association est navigable dans les
……… sens.
 Exemple : on désire représenter le fait suivant : Un
 On peut la limiter à un ………. sens dans un modèle
professeur enseigne dans une salle des étudiants
d’une classe.
 indique que les instances d'une classe
« ne voient pas » les instances de l’autre.
PROFESSEUR
ELECTEUR
SALLE
SOCIÉTÉ
Voter
CANDIDAT
CLASSE
Enseigner
ETUDIANT
Connaître
ENSEIGNANT
Comment interpréter les multiplicités ?
R. BOUAZIZ -- F. GARGOURI
67
Concept de relation --- Les associations
68
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations

La notion de ………… :
 L’extrémité d’une association peut avoir un nom,
appelé rôle, qui décrit comment une classe source
voit une classe destination au travers de l’association.
CLASSE1
[ Nom Association ]
[Rôle1]
CLASSE2
[Rôle2]
 Rôle 1 : le rôle joué par Classe 1 dans l’association
 Rôle 2 : le rôle joué par Classe 2 dans l’association
SOCIÉTÉ
Employeur
R. BOUAZIZ -- F. GARGOURI
69
R. BOUAZIZ -- F. GARGOURI
Emploi
PERSONNE
Employées
70
6
08/10/2010
Concept de relation --- Les associations
Concept de relation --- Les associations
 L’indication des rôles est nécessaire pour les
Attention : La présence d’un grand nombre
d’associations entre deux classes peut
être le signe d’une mauvaise modélisation.
associations ambiguës.
Clients
HÔTEL
PERSONNE
Conduire
Directeur
PERSONNE
Laver
VOITURE
Arrêter
Parents
PERSONNE
Conduire
Parenté
Enfants
PERSONNE
71
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations

R. BOUAZIZ -- F. GARGOURI
: Il s’agit de règles sémantiques
définies sur des associations. Elles permettent :
classe qui peuvent être liés à un objet de l’autre.
1
Valeurs de
0 .. 1
cardinalité
conventionnelles N
M .. N (3..7)
1..* PERSONNE
Employées
De 0 à plusieurs
0 .. *
De 0 à plusieurs
1 .. *
De 1 à plusieurs
73
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
1..*
Langage Naturel (L’âge d’un étudiant est supérieur à 16)
ou

graphiquement avec un {texte} ({longueur > largeur}) ou

En ………… (Object Constraint Language)
R. BOUAZIZ -- F. GARGOURI
74
context Chambre inv: self.étage <= 12
// Pas plus de résidents que de lits sauf s’il y a un
enfant de moins de 4 ans
context Chambre inv:
lesRésidents->size <= nbLits or
(lesRésidents->size = nbLits + 1 and
lesRésidents->exists(p : Personne | p.âge < 4))
* - lesClients
PERSONNE
- Nom : String
- Prénom : String
- Age : Integer

- Numéro : Integer
- NbLits : Integer
- laChambre 0..1
1
- Directeur
de restreindre le nombre d'instances visées.
// Etage maximum : 12
CHAMBRE
-lesChambres - Étage : Integer
: String
d’étendre ou de préciser la sémantique,

Concept de relation --- Les associations
 Exemples : soit le diagramme de classes suivant :
0..1 - Adresse

 Elles peuvent s'exprimer en :
Un et un seul
Zéro ou un
N (entier naturel)
De M à N (entiers naturels)
*
HÔTEL
72
 ……………………..
 précisent les nombres min et max d’objets d’une
SOCIÉTÉ
VOITURE
Concept de relation --- Les associations
Les …………………………… (cardinalités)
Employeur
1
Laver
- lesRésidents
*
R. BOUAZIZ -- F. GARGOURI
75
R. BOUAZIZ -- F. GARGOURI
76
7
08/10/2010
Concept de relation --- Les associations
Concept de relation --- Les associations
………………….. :
 Les …………… de contraintes exprimables sur les
associations :





PERSONNE
1
0..*
Ordonné ;
COMPTE
{ordonné}
Sous-ensemble ;
Ou ;

La collection des comptes d’une personne est triée
Partition (Ou-exclusif) ;
…
 Elles sont placées entre accolades.
77
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
78
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Application des opérateurs
de couverture et de disjonction :
On désire représenter les règles de gestion suivantes :
1. Un employé est affecté à un seul service.
1
0..*
PERSONNE
COMPTE
2. Plusieurs
employés sont affectés à un service.
Non Disjonction
Disjonction
{ordonné}
3. Un service est dirigé par un seul
employé.
4. Le directeur d’un service est obligatoirement l’un des
employés affectés à ce service.
SERVICE
Numéro_S
Nom_S
...
1
Affecter
1..*
{sous-ensemble}
0..1
Diriger
1
Couverture
x x
xx
xx x
xx x
xx
x
xx
xx
EMPLOYE
Numéro
Nom
....
Non
Couverture
xx
x x
x
x x
x x
xx
x
xx
x xx x
xx
x
X
x
Toute instance de Diriger est aussi instance de Affecter
79
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Concept de relation --- Les associations
 Exemples :
…………………………………..………
- Affectation
UNIVERSITÉ
0..1
ENSEIGNANT
E tudie
PERSONNE
Enseign-Univ
0..1
ETAB-UNIVER
{Partition}
0..1
Technologue
{ou }
*
- lesEnseignants
: Indique que pour un objet donné,
un seul lien est valide.
Enseigne
0..1
R. BOUAZIZ -- F. GARGOURI
80
R. BOUAZIZ -- F. GARGOURI
ISET
*
- lesEtudiants
81
R. BOUAZIZ -- F. GARGOURI
82
8
08/10/2010
Concept de relation --- Les associations

Concept de relation --- Les associations
Une …………………………………………………………...….. :
Et si CONTRAT devient une classe tout court ?
 Permet de représenter une association par une
Que devient la solution ?
classe pour définir des attributs et/ou des
opérations dans l’association.
Est-elle équivalente à la précédente ?
 Possède les caractéristiques d’une classe et d’une
association.
ENTREPRISE

0..*
Embauche
1..*
Un ……………………………….. :
EXPERT
Passe >
*
ETUDIANT
CONTRAT
Salaire, Emploi
Concept de relation --- Les associations
84
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Considérons les règles de gestion suivantes :
 Un client passe une ou plusieurs commandes.
 Une commande est passée par un seul client et
CLIENT 1
* COMMANDE *
1
concerne un ou plusieurs produits.
*
 Chaque commande est envoyée à un ou plusieurs
QteCdée est un simple attribut
d’une commande génère une facture correspondant à
cette partie.
Facture est une classe à part entière :
elle a ses propres attributs, opérations et liens
 Toute facture générée sera envoyée au client
correspondant.
85
Concept de relation --- Les associations
 D’un point de vue implantation :
Classe Commande
PROPRIETES
NumCde,
DateCde,
Prods : SET(PRODUIT, QteCdée),
Depots : SET(DEPOT),
METHODES
…
METHODES
CréerFac(),
SolderFac(),
…
R. BOUAZIZ -- F. GARGOURI
86
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Une classe d'association :
NumFac,
DateFac,
NumClient,
NumCde,
NumDep,
…,
Attribut de lien :
(Cde, produit, QteCdée)
Classe d’association :
(Cde, Dépôt, Facture)
dépôts pour être satisfaite.
 Chaque dépôt ayant satisfait la partie qui le concerne
Classe Facture
PROPRIETES
PRODUIT
QtéCdée
*
DEPOT
commandes.

1..n
* FACTURE
 Un produit peut être commandé par plusieurs
R. BOUAZIZ -- F. GARGOURI
EXAMEN
note
83
R. BOUAZIZ -- F. GARGOURI
*

La ………………………. permet de sélectionner un
sous-ensemble
d'objets,
parmi
ceux
participant à une association.

Elle est définie par un …………………... ou une clé
(au sens relationnel du terme), qui est utilisé
avec un objet de la classe source et permet
de sélectionner les objets de la classe cible.
PERSONNE
0..1
* Num_compte BANQUE
Titulaire
87
R. BOUAZIZ -- F. GARGOURI
88
9
08/10/2010
Concept de relation --- Les associations
Diagramme d’objets et associations

Représentation des liens entre objets :
N
 Les liens entre objets :
 Assimilable
à une table associative.
 Le
qualificateur (Nproduit) permet d’identifier 0 ou une
ligne de la commande.
manipuler (ajouter, consulter, etc.) une ligne d’une
commande, il faut obligatoirement un produit.
89
Diagramme d’objets et associations
1
1

permettent une représentation plus concrète que
celle produite par les diagrammes de classes.
90
R. BOUAZIZ -- F. GARGOURI
Diagramme d’objets et associations
Exemple :
 Exemple :
VOITURE
sont des instances d’………….……………. entre
les classes des objets participants ;
Voyons des exemples !
 Pour
R. BOUAZIZ -- F. GARGOURI

MOTEUR
V1:VOITURE
:MOTEUR
1
4
- enfants *
- père Personne - mère
0..1
0..1
- nom
* - prénom 0..1
- épouse
- enfants
Olfa : Personne
nom = KALLEL épouse
prénom = Olfa
mère
0..1
ROUE
R1:ROUE R2:ROUE
Diagramme de
Classes
R3:ROUE
R4:ROUE
- époux
Diagramme
d’objets
Sana : Personne
Moncef : Personne
Nom = MALLEK
Prénom = Sana
Nom = MALLEK
Prénom = Moncef
père
Maher : Personne
nom = MALLEK
prénom = Maher
91
R. BOUAZIZ -- F. GARGOURI
Diagramme d’objets et associations

époux
R. BOUAZIZ -- F. GARGOURI
92
Diagramme d’objets et associations
Représentation des liens entre objets :
 Remarque :
 Les liens entre objets peuvent être n-aires.
 Exemple :
Ces diagrammes ne sont utiles que durant la
phase exploratoire d’un domaine.
RB: PROFESSEUR
A1: SALLE
Le nombre d’instances doit être …………….….
I3: CLASSE
Autrement, ils deviennent vite compliqués et
illisibles.
 On peut indiquer les noms des objets et des liens :
Ahmed : ADHERENT
Nom = Mohamed
Prénom = Ahmed
Adresse = Sfax
R. BOUAZIZ -- F. GARGOURI
Emprunter
Soukaria : EXEMPLAIRE
93
R. BOUAZIZ -- F. GARGOURI
94
10
08/10/2010
Concept de relation --- L’agrégation

Concept de relation --- L’agrégation
L’ ………………. est une relation non symétrique, elle :
Une instance d'élément agrégé peut :
 exprime un couplage ………… et une relation de
 être liée à ……………… instances d'autres classes :
subordination.
 l'élément
 représente une relation de type "ensemble/élément".
 peut notamment (mais pas nécessairement)
 les
cycles de vie de l'agrégat et de ses éléments
agrégés peuvent être …………………………… :
 La création (ou la suppression) de l’un
n’implique pas celle de l’autre.
exprimer :
 qu'une
classe (un "………………") fait partie d'une autre
("l'……………………."),
 qu'un changement d'état d'une classe entraîne un
changement d'état d'une autre,
 qu'une action sur une classe, entraîne une action sur
une autre.
Exemple :
ADRESSE
Elément agrégé
Concept de relation --- La composition
agrégat
96
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- La composition
 Une classe composant peut faire l’objet de plusieurs
La ……………………………. est une agrégation …………
qui exprime « une partie de ».
compositions.
 Un objet de la classe composant ne peut appartenir
Les cycles de vies (CV) des composants et du composé
ne sont ………………………………… :
 Si le composé est détruit (ou copié), ses
composants le sont aussi.
 Une instance de composant ne peut être créée
qu’avec ou après la création du composé.
Elle ne peut être liée qu'à un seul composé.
 Les "objets composites" sont des instances de
classes composées.
qu’à un ………… objet d’un composé.
 Cycles interdits !
 Durée de vie du composant incluse dans celle du
composé.
 La « navigabilité » peut être bidirectionnelle ou non.
1..*
Chapitre
Livre
3..10
CHAPITRE
LIVRE
PERSONNE
Agrégation
95
R. BOUAZIZ -- F. GARGOURI

agrégé peut être partagé ;
 exister ………… agrégat (et inversement) :
Thème-Principal
Thème
Composition
97
R. BOUAZIZ -- F. GARGOURI
Concept de relation --- La composition
98
R. BOUAZIZ -- F. GARGOURI
Diagramme d’objets et compositions
 Relations entre les CV des objets :

CV du composé
Exemple de représentation des objets
composites :
 Un objet composite est composé d’autres objets
CV composant 1
(sous-objets).
CV composant 2
 Le nombre d’instances du composant peut être
CV composant 3
spécifié.
 Exemple :
CV composant 4
Un Composite
Temps
Créer()
Supprimer()
:Partie1 N1
Remarque : toutes les conventions relatives aux cardinalités
:Partie2 N2
Eau : MOLÉCULE
Hydrogène : ATOME 2
Oxygène : ATOME 1
restent valables pour les agrégations et les compositions.
R. BOUAZIZ -- F. GARGOURI
99
R. BOUAZIZ -- F. GARGOURI
100
11
08/10/2010
Concept de relation --Association, agrégation et composition

Concept de relation --Association, agrégation et composition
Exemple récapitulatif :
 Une personne peut posséder des immeubles.
 Dans un immeuble, on peut trouver des ascenseurs.
 Un immeuble est composé d’étages.
 Une personne peut posséder des comptes et une
adresse.
Explications :
 Une personne peut posséder des immeubles :
 Dans un immeuble, on peut trouver des ascenseurs :
 Un
lien : ensemble/élément, les CV des objets ne sont
pas forcément dépendants.
 la suppression d’un immeuble n’entraîne pas
obligatoirement celle d’un ascenseur.
 Un ascenseur ne peut être utilisé (au même temps) par
plus qu’un immeuble. Mais, dans le temps, le même
ascenseur peut être utilisé par différents immeubles.
 Un
lien conceptuel : les objets ont des CV
indépendants.
 Ce lien exprime une relation temporaire.
Agrégation
Association
101
R. BOUAZIZ -- F. GARGOURI
Concept de relation --Association, agrégation et composition
102
R. BOUAZIZ -- F. GARGOURI
Concept de relation --Association, agrégation et composition
 Un immeuble est composé d’étages :
Diagramme de Classes :
 Un
lien : composé/composants : les CV des objets
coïncident.
 La création de l’immeuble  la création de ses
étages.
 La suppression de l’immeuble  la suppression de
ses étages.
 Un étage ne peut pas être partagé par différents
immeubles.
IMMEUBLE
1..*
*
Posséder
*
ASCENSEUR
ADRESSE
PERSONNE
COMPTE
*
ETAGE
Composition
R. BOUAZIZ -- F. GARGOURI
103
La généralisation / spécialisation

La généralisation / spécialisation
L’ ……………, avec UML, est désigné par Généralisation
Attention : à ne pas confondre héritage et instanciation
 La ……………………………… peut être :

104
R. BOUAZIZ -- F. GARGOURI
Voiture
Simple
- modèle
- cylindrée
- couleur
C_GÉNÉRALISEE
Est Une
NON !
Vx
C_SPÉCIALISEE
Ferrari ; 6 C
Jaune

Multiple : La spécialisation a plus d’une généralisation
R. BOUAZIZ -- F. GARGOURI
105
R. BOUAZIZ -- F. GARGOURI
106
12
08/10/2010
La généralisation
La généralisation
Contraintes et propriétés de la généralisation :
 La contrainte exprimée par le mot-clé {…………………}
objet est au plus instance d’une seule sousclasse.
 C’est une décomposition exclusive : {Exclusif}
 La contrainte exprimée par le mot-clé {………………..}
 Indique
 Tout

 La contrainte exprimée par le mot-clé {…………………}
 Indique
que la spécialisation est extensible : elle peut
avoir d’autres sous classes.
C’est l’option par défaut.
ETUDIANT
{Disjoint}
ETUDIANT-1C
que la spécialisation est terminée (couverture) :
Il n’est pas possible d’ajouter d’autres sous-classes.
ENSEIGNANT
ETUDIANT
{Incomplet}
{Complet}
ETUDIANT-3C
E_PERMANENT
Inter (ETUDIANT-1C, ETUDIANT-3C) = Vide
107
R. BOUAZIZ -- F. GARGOURI
La généralisation
E_VACTAIRE
ET1-C
ET-2C
ET-3C
R. BOUAZIZ -- F. GARGOURI
108
Divers
 Une classe générique peut être spécialisée selon

…………………….. critères.
Quelques représentations triviales
 Classes sans relations.
 Classes sans attributs.
 Classes sans opérations.
 Relation 1-1.
 La contrainte exprimée par le mot-clé {inclusif} ou
{chevauchement} ou {overlapping}
 Une
instance de l’une des spécialisations peut être
simultanément une instance d’une autre.
VEHICULE
Premier critère :
Deuxième critère :
Motorisation
Milieu
 Pas forcément une erreur,
mais toujours se poser la question.
{Chevauchement}
V_A_VOILE
V_A_MOTEUR
V_TERRSETRE
V_MARIN
CAMION
R. BOUAZIZ -- F. GARGOURI
109
Divers

110
Divers
La pratique

 Ne pas utiliser systématiquement toutes les
Exemple :
 Un contrat d’édition est un accord entre un auteur
notations :
 En phase d’analyse : concepts fondamentaux.
 En phase de conception/implémentation :
concepts avancés.
 Bien utiliser UML ne veut pas dire bien modéliser !
 La théorie ne remplace pas l’expérience.
 Les patrons de modélisation (design patterns)
peuvent améliorer le modèle de conception.
R. BOUAZIZ -- F. GARGOURI
R. BOUAZIZ -- F. GARGOURI
(éventuellement collectif) et un éditeur.
 Les conditions générales d’un contrat sont
stipulées dans un contrat type.
 Les clauses particulières sont ajoutées au
contrat.
 Le contrat ne concerne qu’un ouvrage, qui ne
peut être édité chez un autre éditeur.
111
R. BOUAZIZ -- F. GARGOURI
112
13
08/10/2010
Divers
Auteur
Editeur
1
0..*
regroupe
0..* AuteurCollectif
{ordered}
0..*
ContratEdition porte sur

1

*
1
*
Ouvrage
est rég i par
AuteurIndividuel 2..*

1
{disjoint, complète}
/édite
1
ContratType
R. BOUAZIZ -- F. GARGOURI
113
14