abdellah_madani@yahoo.fr
Gnie Logiciel
Plan
UML : Unified Modeling Language
Historique
Diagrammes de classes et d'objets
Diagrammes des cas d'utilisation
Autres diagrammes
UML et les bases de donnes (Mapping Objet
Relationnel)
abdellah_madani@yahoo.fr
Historique
Deux approches
Approche fonctionnelle
Approche objet
Historique
Dbut des annes 1990
abdellah_madani@yahoo.fr
Historique
Fin 1994
J. Rumbaugh rejoint G. Booch chez Rational Software
Historique
Les versions se succdent :
Dbut 1998
UML 1.2
En 1998
UML 1.3
En 2001
UML1.4
En 2003
UML 1.5
En 2005
UML 2.0
abdellah_madani@yahoo.fr
abdellah_madani@yahoo.fr
un travail d'expert
utilise lapproche oriente objet
normalis, riche
Formel : sa notation limite les ambigut et les
incomprhensions
langage ouvert
abdellah_madani@yahoo.fr
abdellah_madani@yahoo.fr
abdellah_madani@yahoo.fr
10
Diagrammes d'UML
UML1.1 comprend 9 de diagrammes :
Diagramme
Est sorte de
Cas
utilisation
Cas
d dutilisation
Collaboration
Composants
Classes
Classes
EtatsTransitions
Transitions
tats
Dploiement
abdellah_madani@yahoo.fr
Activit
Squence
Squence
Objets
11
Diagrammes d'UML
UML dfinit deux types de diagrammes, structurels
(statiques) et comportementaux (dynamiques)
diagramme de classes
diagramme dobjets
diagramme de composants
diagramme de dploiement
12
Diagramme dUML
Les diagramme dUML peuvent tre utiliss pour
reprsenter diffrents points de vues :
Vue externe : vue du systme par ses utilisateurs
finaux
Vue logique statique : structure des objets et leurs
relations
Vue logique dynamique : comportement du
systme
Vue dimplmentation : composants logiciels
Vue de dploiement : rpartition des composants
abdellah_madani@yahoo.fr
13
Diagramme dUML
Cas dutilisation
Composants
Objets
Classes
Vue Implmentation
(composants logiciels)
Vue externe
(fonctions systme)
Squence
Vue dploiement
(Environnement
dimplantation)
Collaboration
tats transitions
Activits
abdellah_madani@yahoo.fr
Dploiement
14
UML
Diagrammes de classes
abdellah_madani@yahoo.fr
15
Diagramme de classes
Classes d'objets
Relations entre classes
Associations
agrgation/composition
hritage
Le concept dobjets
Le concept de classes dobjets comprenant des attributs et
des oprations
Les diffrents types de relations entre classes.
abdellah_madani@yahoo.fr
16
Concept d'objet
Objet = un concept, abstraction ou une chose
autonome qui a un sens dans le contexte du
systme modliser
abdellah_madani@yahoo.fr
17
Concept d'objet
Remarque
Un objet doit :
tre autonome
Avoir une signification dans le systme
En relation avec d'autres objets
18
Concept d'attribut
abdellah_madani@yahoo.fr
19
Concept d'attribut
La description dun attribut comporte :
Visibilit attribut:type[= valeur initiale]
O :
Visibilit :
Nom dattribut
Type de lattribut
Valeur initiale (facultative)
abdellah_madani@yahoo.fr
20
Concept d'attribut
Le type dun attribut peut tre :
Exemples dattributs :
21
Concept d'attribut
Lorsquun attribut peut tre driv ou calcul
partir d'autres attributs, il est prcd dun /.
Par exemple, une classe Rectangle peut
contenir les attributs suivants :
longueur : rel,
largeur : rel,
/surface : rel.
Rectangles
- Largeur
: float
- Longueur : float
- /Surface : float
abdellah_madani@yahoo.fr
= 10
22
Concept d'attribut
On distingue deux types d'attributs :
Attribut d'instance :
Attribut de classe
abdellah_madani@yahoo.fr
23
Concept d'attribut
Window
-
taille
visibilit
taille_defaut
taille_max
:
:
:
:
Rectangle
boolean
Rectangle
Rectangle
= (100,100)
= true
Attributs d'instances
Attributs de classes
+ <<Constructor>> Window ()
+
afficher ()
+
cacher ()
+
getTaille_max ()
+
getTaille_defaut ()
:
:
:
:
void
void
Rectangle
Rectangle
abdellah_madani@yahoo.fr
Oprations d'instances
Oprations de classes
24
25
26
27
abdellah_madani@yahoo.fr
28
29
abdellah_madani@yahoo.fr
30
= 100
+ <<Constructor>> Compte ()
+
Deposer (float somme) : void
+
Retirer (float somme) : float
+
AvoirSolde ()
: String
abdellah_madani@yahoo.fr
31
Nom de la classe
Nom de la classe
Attributs
Attributs
Oprations
Nom de la classe
Oprations
abdellah_madani@yahoo.fr
32
Associations
abdellah_madani@yahoo.fr
33
Associations
Remarques
une association fonctionne dans les 2 sens
(bidirectionnelle)
termes associs : Nom, Sens de lecture,
degr (arit), Multiplicit, Rle et le
qualificateur
abdellah_madani@yahoo.fr
34
Associations
Nom et sens de lecture
abdellah_madani@yahoo.fr
35
Associations
Rle dune association
Dcrit le rle dune classe dans une association
abdellah_madani@yahoo.fr
36
Associations
Rle dune association
Utile surtout dans deux cas :
Avion
Personne
Personne
0..4
femme
Passager
0..1
mari
abdellah_madani@yahoo.fr
37
Associations
Une association peut avoir des attributs = classe-association
abdellah_madani@yahoo.fr
38
Associations
degr dune association = nombre de classes participantes
Association unaire : relie 2 instances d'une classe
association binaire : relie 2 classes
abdellah_madani@yahoo.fr
39
Associations
Multiplicit = nombre de participations dune classe dans une
association
indique chaque extrmit dune association
sous la forme min..max
min, max = 0, 1, *
Exemple gnral
Exemple concret
abdellah_madani@yahoo.fr
40
Associations
Exemple ternaire
abdellah_madani@yahoo.fr
41
Associations
Notation abrge des multiplicits :
1
1..1 (exactement 1)
0..* (0 ou plusieurs)
n .. n (exactement n)
2,4,5 2, 4 ou 5
abdellah_madani@yahoo.fr
42
abdellah_madani@yahoo.fr
43
Compte
1..*
Banque
NCompte
1
abdellah_madani@yahoo.fr
44
Agrgation
Type particulier dassociation dans laquelle :
Agrge
abdellah_madani@yahoo.fr
45
Agrgation
abdellah_madani@yahoo.fr
46
Agrgation
Titre
0..1
1..1
E-Mail
Destinataire
Fichier
1..*
0..*
0..*
Ici, on exprime qu'un fichier peut tre attach un email (ou a
plusieurs, ou mme aucun) et qu'un email peut (ou non)
attacher (contenir une copie) une ou plusieurs fichiers.
1..1
0..1
Texte
abdellah_madani@yahoo.fr
47
Composition
48
Composition
Commune
Agrgat
Agrgat ne peut pas tre multiple
1..1
1..1
1..*
1..*
Mairie
Conseil municipal
1..*
Sevice
Agrgs
la suppression dun objet agrgat entrane la suppression des
objets agrgs
abdellah_madani@yahoo.fr
49
50
sous-classes
51
abdellah_madani@yahoo.fr
52
CompteEpargne
- Taux : float
+ AvoirSolde () : String
abdellah_madani@yahoo.fr
53
54
Spcialisation
- Salaire : float
+ <<Constructor>> Etudiants (int Code, String Nom, float Salaire)
+
getInf ()
: String
+
getSalaire ()
: float
Sous classes
Classes filles
Classes drives
Employes
- Filiere : String
+ <<Constructor>> Employes (int Code, String Nom, String Filiere)
+
getInf ()
: String
+
getFiliere
()
: String 55
abdellah_madani@yahoo.fr
Gnralisation / Spcialisation
une classe peut hriter de plusieurs super-classes
= hritage multiple
abdellah_madani@yahoo.fr
56
Gnralisation / Spcialisation
polymorphisme = oprations de mme nom,
polymorphisme = comportement spcifique
abdellah_madani@yahoo.fr
57
abdellah_madani@yahoo.fr
58
{ordonn}
{sous ensemble}
{xor}
abdellah_madani@yahoo.fr
59
Compte
1
0..*
{Ordonn}
abdellah_madani@yahoo.fr
60
Parent dlve
1..*
{sous-ensemble}
Personnes
Dlgu
1..*
Les personnes qui jouent le rle de dlgu font partie des personnes
qui jouent le rle de parents dlves
abdellah_madani@yahoo.fr
61
PC Portable
1
{xor}
1
Secteur
abdellah_madani@yahoo.fr
62
abdellah_madani@yahoo.fr
63
b.
abdellah_madani@yahoo.fr
64
UML
Diagrammes de cas
d'utilisation
abdellah_madani@yahoo.fr
65
abdellah_madani@yahoo.fr
66
abdellah_madani@yahoo.fr
67
abdellah_madani@yahoo.fr
68
Acteurs
69
Acteurs
Remarques
La mme personne physique peut jouer le
rle de plusieurs acteurs (Chef dagence est
un client de la banque).
Dautres part, plusieurs personnes peuvent
jouer le mme rle, et donc agir comme un
mme acteur (plusieurs personnes peuvent
jouer le rle dadministrateur).
abdellah_madani@yahoo.fr
70
Acteurs
Peut tre reprsent de deux manires
diffrentes :
Classe strotype
abdellah_madani@yahoo.fr
<<Acteur>>
Nom Acteur
71
Acteurs
Les acteurs peuvent tre de trois types :
Humains : utilisateurs du logiciel travers
son interface graphique, par exemple.
Logiciels : disponibles qui communiquent
avec le systme grce une interface
logicielle (API, ODBC, )
Matriels : exploitant les donnes du systme
ou qui sont pilots par le systme
(Imprimante, robots, automates, )
abdellah_madani@yahoo.fr
72
Acteurs
<<acteur>>
Site Web de l'tablissement
Secrtaire
Systme de Gestion
Scolaire
Etudiant
<<acteur>>
Imprimante
abdellah_madani@yahoo.fr
73
Acteurs
Mais du point de vue systme on distingue
deux types :
Acteurs principaux : utilisent les fonctions
principales du systme. Par exemple, le
client pour un distributeur de billets.
Acteurs secondaires : effectuent des tches
administratives ou de maintenance. Par
exemple, la personne qui recharge la caisse
contenue dans le distributeur.
abdellah_madani@yahoo.fr
74
Acteurs
Un acteur peut tre une
spcialisation d'un autre
acteur dj dfini.
Acteur gnral
abdellah_madani@yahoo.fr
75
Cas d'utilisation
76
Cas d'utilisation
Les cas dutilisations
Permettent de modliser les attentes (besoins) des
utilisateurs
Reprsentent les fonctionnalits du systme
Suite dvnements, initie par des acteurs, qui
correspond une utilisation particulire du systme
Limage dune fonctionnalit du systme,
dclenche en rponse la stimulation dun acteur
externe.
abdellah_madani@yahoo.fr
77
Cas d'utilisation
Un cas d'utilisation est reprsent par une
ellipse en trait plein, contenant son nom.
abdellah_madani@yahoo.fr
78
Comportements partags
Cas particuliers, exceptions, variantes
Gnralisations/spcialisations.
abdellah_madani@yahoo.fr
79
abdellah_madani@yahoo.fr
80
Relation d'inclusion
Lors de la description des cas d'utilisation, il
apparat qu'il existe des sous-ensembles
communs plusieurs cas d'utilisation, il
convient donc de factoriser ces
fonctionnalits en crant de nouveaux cas
d'utilisation qui sont utiliss par les cas
d'utilisation qui les avaient en commun.
abdellah_madani@yahoo.fr
81
Relation d'inclusion
<<include>>
abdellah_madani@yahoo.fr
82
Relation d'inclusion
Les cas d'utilisation "Dposer de
l'argent", "Retirer de l'argent",
"Effectuer des virements" et "Consulter
solde" incorporent de faon explicite le
cas d'utilisation "S'authentifier", un
endroit spcifi dans leurs
enchanements.
Retirer de l'argent
<<include>>
Dposer de l'argent
<<include>>
S'authentifier
<<include>>
Effectuer des virements
<<include>>
Consulter solde
abdellah_madani@yahoo.fr
83
Relation d'inclusion
On utilise cette relation pour viter de dcrire
plusieurs fois un mme enchanement
d'actions. Ainsi, on est amen factoriser un
comportement commun plusieurs cas
d'utilisation dans un cas d'utilisation part.
abdellah_madani@yahoo.fr
84
Relation d'inclusion
Remarques
La relation include na pour seul objectif que de
factoriser une partie de la description dun cas
dutilisation qui serait commune dautres cas
dutilisation.
Le cas dutilisation inclus dans les autres cas
dutilisation nest pas proprement parl un vrai cas
dutilisation car il na pas dacteur dclencheur ou
receveur dvnement. Il est juste un artifice pour
faire de la rutilisation dune portion de texte.
abdellah_madani@yahoo.fr
85
Relation d'inclusion
Rsum
Une instance du cas source inclut
obligatoirement le comportement dcrit par le
cas dutilisation destination
Permet de dcomposer des comportements
et de dfinir les comportements partages
entre plusieurs cas dutilisation
Factoriser
abdellah_madani@yahoo.fr
86
Relation d'extension
La relation strotype extend permet
d'tendre les interactions et donc les
fonctions dcrites dans les cas d'utilisation,
mais sous certaines contraintes.
abdellah_madani@yahoo.fr
87
Relation d'extension
Point d'insertion
abdellah_madani@yahoo.fr
88
Relation d'extension
89
Relation d'extension
Exemple :
Au moment de l'authentification, il se peut que
le guichet retient la carte.
S'authentifier
Retenir la carte
<<extend>>
abdellah_madani@yahoo.fr
90
abdellah_madani@yahoo.fr
91
Relation d'hritage
abdellah_madani@yahoo.fr
92
abdellah_madani@yahoo.fr
93
94
Reserver voyage
abdellah_madani@yahoo.fr
95
abdellah_madani@yahoo.fr
96
abdellah_madani@yahoo.fr
97
<<extend>>
<<include>>
Virement par Internet
Client distant
Client local
abdellah_madani@yahoo.fr
98
abdellah_madani@yahoo.fr
99
Reteni r l a carte
Cl i ent
<<extend>>
S'authenti fi er
Agent
Ravi tai l l er
T echni ci en
Rparer
abdellah_madani@yahoo.fr
100
abdellah_madani@yahoo.fr
101
UML
Diagrammes de squences
abdellah_madani@yahoo.fr
102
Diagramme de squences
Les acteurs
Les objets
Les messages
abdellah_madani@yahoo.fr
103
Diagramme de squences
Obj et_1
Obj et_2
Obj et_3
Message_1
Message_2
Li gne de vi e de
l 'obj et
abdellah_madani@yahoo.fr
104
Diagramme de squences
abdellah_madani@yahoo.fr
105
Diagramme de squences
abdellah_madani@yahoo.fr
106
Compte
Compte
- NCompte : String
- Solde
: float
dposer(somme)
solde+=somme
solde actuel
abdellah_madani@yahoo.fr
107
Diagramme de squences
Plusieurs concepts additionnels :
Priode dactivit
Types de messages
Cration et destruction dobjets
Structures de contrles
abdellah_madani@yahoo.fr
108
Priode dactivit
Objet_1
Message_1
abdellah_madani@yahoo.fr
109
Messages
Message simple
Message minut (Timeout)
Message synchrone
Message asynchrone
Message rcursif
abdellah_madani@yahoo.fr
110
Message simple
Message pour lequel on ne spcifie aucune
information denvoi ou de rception
Objet_1
Objet_2
Message_1
abdellah_madani@yahoo.fr
111
Obj et_1
abdellah_madani@yahoo.fr
112
Porte
ouvrir (2 secondes)
fermer
abdellah_madani@yahoo.fr
113
Obj et_1
Message_1
abdellah_madani@yahoo.fr
114
Serveur
Sollitation
Acceptation
Requte
Rponse
abdellah_madani@yahoo.fr
115
Message asynchrone
Obj et_1
M essage_1
abdellah_madani@yahoo.fr
116
Message rcursif
Message_1
abdellah_madani@yahoo.fr
117
GAB
Introduire carte
Vrification validit
Demande code accs
abdellah_madani@yahoo.fr
118
Objet_3
Message_1
Objet_2
Cration dobjet
Message_2
Destruction dobjet
119
Structures de contrle
Le diagramme de squences peut inclure un
certain nombre de structures
Branchements (tests)
Rptitions (itrations, boucles)
abdellah_madani@yahoo.fr
120
Objet_2
Objet_3
[condition]: Message
abdellah_madani@yahoo.fr
121
Utilisteur
abdellah_madani@yahoo.fr
122
Objet_2
Objet_3
* [condition]: Message
abdellah_madani@yahoo.fr
123
Vendeur
Catal ogue
s'tonne
se pl ai nt
rcupre l e produi t
abdellah_madani@yahoo.fr
124
UML
Diagrammes de collaboration
abdellah_madani@yahoo.fr
125
Diagramme de collaboration
126
Diagrammes de collaboration
abdellah_madani@yahoo.fr
127
Diagrammes de collaboration
lments dune interaction
Instances
liens
messages
128
Diagrammes de collaboration
:Appelant
1. Dcrocher
:Ligne
2. Tonalit
3. Numrotation
4.1a. Tonalit sonnerie
6.1a. Arrt tonalit
4.1b. Sonnerie
5. Dcrocher
6.1b. Arrt sonnerie
abdellah_madani@yahoo.fr
:Appel
129
Diagrammes de collaboration
Aspect temporel
1, 2, 3, 4 : Numrotation simple
idem dot notation, mais les points 1.1a et 1.1b peuvent tre
effectus en parallle
abdellah_madani@yahoo.fr
130
Diagrammes de collaboration
Itration : *[condition]
Conditions : [condition]
2. vrifier(n, item)
:Vendeur
4. livrer(n, item)
:Stock
3. [disponible]rserver(n, item)
abdellah_madani@yahoo.fr
131
Diagrammes de collaboration
<<{Nouveau}>>
Objet_1
Objet_2
abdellah_madani@yahoo.fr
132
Diagrammes de collaboration
Conclusion
Reprsentation spatiale
abdellah_madani@yahoo.fr
133
abdellah_madani@yahoo.fr
134
abdellah_madani@yahoo.fr
135
UML
Diagramme tat-transition
abdellah_madani@yahoo.fr
136
Diagramme tat-transition
Le diagramme tat-transition :
Fait partie des modles dynamiques
Dcrit l'enchanement de tous les tats d'un
objet
Propre une classe donne. Il dcrit :
abdellah_madani@yahoo.fr
137
Diagramme tat-transition
Le diagramme tat-transition manipule
plusieurs concepts :
tat
Transition
vnement
Garde
abdellah_madani@yahoo.fr
138
tat
- ID
: int
- Visible : boolean
abdellah_madani@yahoo.fr
= True
139
Transition
Rduite
abdellah_madani@yahoo.fr
140
vnement
abdellah_madani@yahoo.fr
141
Gardiens
Evnement [Condition]
abdellah_madani@yahoo.fr
Etat2
142
Formalisme et exemple
Etat1
Employ recrut
Evnement [Condition]
abdellah_madani@yahoo.fr
Etat2
Employ en activit
143
Actions et activits
abdellah_madani@yahoo.fr
144
Activit
abdellah_madani@yahoo.fr
145
Action
abdellah_madani@yahoo.fr
146
Formalisme et exemple
Etat 2
Etat_1
entry / Action_1
do / Action_2
Evnement() / Action_3
exit / Action_4
entry / Act1
do / Act2
Evnement() / Act3
exit / Act4
Embauch
entry / Signer contrat
do / Assurer fonction
Arrive proposition() / Rponde la proposition
Mutation() / Changer d'affectation
exit / Rompre contrat de travail
abdellah_madani@yahoo.fr
147
Etat_2
abdellah_madani@yahoo.fr
148
Prise fonction
En activit
do / Renseigner la date d'arrive l'agence
Dpart de l'agence
Partie
do / Renseigner la date de dpart de la personne
abdellah_madani@yahoo.fr
149
Orange
Vert
Rouge
abdellah_madani@yahoo.fr
150
UML
Diagramme d'activits
abdellah_madani@yahoo.fr
151
Introduction
Choix
Squences
Itrations
Paralllisme
152
Concepts de base
Plusieurs concepts sont manipuls :
tat
Activit
Transition (squentielle, alternatives ou
conditionnelle)
Synchronisation (disjonction et conjonctions
dactivits)
Itration
Swimlanes
abdellah_madani@yahoo.fr
153
Comportement conditionnel
abdellah_madani@yahoo.fr
154
[Prix<=Somme disponible]
[Else]
Rgler la note
Faire la vaisselle
abdellah_madani@yahoo.fr
155
Synchronisation
156
Synchronisation : Exemple
Dserrer le frein main
Barre de synchronisation
Fusion (conjonction)
Comportement parallle
Disjonction
Relcher l'embrayage
abdellah_madani@yahoo.fr
157
Itration : Exemple
Recevoi r commande
Vri fi er arti cl e
Commander arti cl e
[pl us d'arti cl e]
abdellah_madani@yahoo.fr
158
Swimlanes
abdellah_madani@yahoo.fr
159
Rsum notation
abdellah_madani@yahoo.fr
160
Exemple rcapitulatif
abdellah_madani@yahoo.fr
161
Exemple rcapitulatif
Rcepti on commande
Annul er commande
Vri fi er carte crdi t
[El se]
[El se]
[Di sponi bl e]
[Val i de]
Prparer commande
Expdi er commande
Poster facture
abdellah_madani@yahoo.fr
162
Exercice 1
Reprsenter les tats suivants sous forme de
diagramme d'activit :
Vrification commande
Enregistrement commande
Rejet commande
Informer erreur au client
abdellah_madani@yahoo.fr
163
Exercice 1 : solution
Vrifier commande
Valide
[oui]
Enregistrement commande
[non]
Rejet commande
abdellah_madani@yahoo.fr
164
Exercice 2
Dans le domaine de gestion de stock, on
considre les tats suivants indiquant le flot
de contrle de rception d'une livraison :
Rception livraison, contrle qualit, contrle
quantit et enregistrement livraison.
Proposez un diagramme d'activit reprsentant
ce flot d'information
abdellah_madani@yahoo.fr
165
Exercice 2 : solution
abdellah_madani@yahoo.fr
166
Exercice 3
Construire un diagramme dactivit pour
modliser le processus de commander dun
produit. Le processus concerne les acteurs
suivants:
Comptable : enregistrement commande,
envoie la facture et enregistrement paiement
du client
Client : paiement de la facture
abdellah_madani@yahoo.fr
167
Exercice 3 : solution
abdellah_madani@yahoo.fr
168
Exercice 4
Construire un diagramme dactivit pour modliser le
processus de commander dun produit. Le
processus concerne les acteurs suivants:
Client: qui commande un produit et qui paie la
facture
Caisse: qui encaisse largent du client
Vente: qui soccupe de traiter et de facturer la
commande du client
Entrept: qui est responsable de sortir les articles
et dexpdier la commande.
abdellah_madani@yahoo.fr
169
Exercice 4 : solution
abdellah_madani@yahoo.fr
170
UML
abdellah_madani@yahoo.fr
171
Ce passage concerne
abdellah_madani@yahoo.fr
172
C++
Java
Classe
Classe
Classe
Instance
Instance
Instance
Attribut
Membre
Attribut
Opration
Fonction
Mthode
abdellah_madani@yahoo.fr
173
C++
Java
Attribut et opration de
classe
Soulign
static
static
Attribut et opration
d'instance
abdellah_madani@yahoo.fr
174
En Java
class Compte{
private int NCompte;
private float Solde;
public Compte(int NC, float S){
}
public void deposer(float Solde){
Compte
}
- NCompte : int
: float
public String avoirSolde(){ - Solde
+ <<Constructor>> Compte (int NCompte, float Solde)
+
deposer (float Solde)
}
+
retirer (float Solde)
+
abdellah_madani@yahoo.fr
avoirSolde ()
: void
: float
: String
175
Gnralisation/spcialisation en Objet
La relation de gnralisation/spcialisation
entre classes est la plus immdiate
Elle est traduite par une relation d'hritage
dans l'implmentation
Chaque langage utilise sa propre syntaxe :
abdellah_madani@yahoo.fr
176
Gnralisation/spcialisation en Objet
En Java :
class Compte{}
class CompteEpargne
extends Compte{}
En C++ :
class Compte{};
class CompteEpargne :
public Compte{};
Compte
CompteEpargne
abdellah_madani@yahoo.fr
177
Associations en Objet
Association un un
Association un plusieurs
Association plusieurs plusieurs
abdellah_madani@yahoo.fr
178
Associations en Objet
(Cas d'une association un--un)
abdellah_madani@yahoo.fr
179
Associations en Objet
(Cas d'une association un--un)
En C++ :
class Pays{
Capitale *nom_cap;
};
class Capitale{
};
En Java :
class Pays{
Capitale nom_cap;
}
class Capitale{
}
abdellah_madani@yahoo.fr
180
};
class Capitale{
Pays *nom_pays;
};
En Java :
class Pays{
}
class Capitale{
Pays nom_pays;
}
abdellah_madani@yahoo.fr
181
En Java :
class Pays{
Capitale *nom_cap;
Capitale nom_cap;
};
class Capitale{
}
class Capitale{
Pays *nom_pays;
Pays nom_pays;
};
abdellah_madani@yahoo.fr
182
abdellah_madani@yahoo.fr
183
Associations en Objet
(Cas d'une association un--plusiuers)
Dans le cas o nous avons besoin d'un attribut
pouvant contenir un nombre quelconque
d'lments : Un tableau n'est pas adapt car
il possde une taille qui limite le nombre
d'lments
En C++, on utilise un pointeur sur un pointeur
En Java, on prfre utiliser une collection
(Vector, Iterator, )
abdellah_madani@yahoo.fr
184
Associations en Objet
(Cas d'une association un--plusiuers)
En C++ :
Class Personne{
Compte **a_comme_compte;
}
Classe Compte{
En Java :
Class Personne{
Vector a_comme_compte;
}
Class Compte{
abdellah_madani@yahoo.fr
185
Associations en Objet
(Cas d'une association un--plusiuers)
En C++ :
Class Personne{
}
Classe Compte{
Personne *a_pour_prop;
En Java :
Class Personne{
}
Class Compte{
Personne a_pour_prop;
abdellah_madani@yahoo.fr
186
Associations en Objet
(Cas d'une association un--plusiuers)
En C++ :
Class Personne{
Compte **a_comme_compte;
}
Classe Compte{
Personne *a_pour_prop;
En Java :
Class Personne{
Vector a_comme_compte;
}
Class Compte{
Personne a_pour_prop;
abdellah_madani@yahoo.fr
187
Associations en Objet
(Association plusieurs--plusieurs)
188
Associations en Objet
(Association plusieurs--plusieurs)
class Detail{
private Article Ref;
private Commandes NBC;
private int Qte;
abdellah_madani@yahoo.fr
189
Associations en Objet
(Association plusieurs--plusieurs)
class Responsable{
Class Projet{
class Etudiant{
}
abdellah_madani@yahoo.fr
190
En Java :
L'agrgation,
composition et
association sont
traduites de la mme
manire
abdellah_madani@yahoo.fr
191
UML
abdellah_madani@yahoo.fr
192
Associations,
Agrgation,
Composition,
Gnralisation spcialisation
abdellah_madani@yahoo.fr
193
Classe en Relationnel
abdellah_madani@yahoo.fr
194
En Relationnel
Compte(NCompte, Solde)
Compte
En SQL
- NCompte : int
- Solde
: float
+ <<Constructor>> Compte (int NCompte, float Solde)
+
deposer (float Solde)
: void
+
retirer (float Solde)
: float
+
avoirSolde ()
: String
NCompte smallint,
Solde decimal,
Primary key PK_Compte (NCompte)
abdellah_madani@yahoo.fr
195
Gnralisation/spcialisation en
Relationnel
Plusieurs mthodes de traduction en
Relationnel :
Reprsenter toutes les classes dune
arborescence dhritage par une seule table
relationnelle
Reprsenter chaque classe par une table
abdellah_madani@yahoo.fr
196
Gnralisation/spcialisation en
Relationnel
abdellah_madani@yahoo.fr
197
Gnralisation/spcialisation en
Relationnel
abdellah_madani@yahoo.fr
198
Associations en Relationnel
(Association un--un)
Deux solutions sont possibles :
une cl trangre dans chacune des tables
associes
la fusion des deux tables dans une seule
abdellah_madani@yahoo.fr
199
Associations en Relationnel
(Association un--un)
1re Solution
Pays(IdPays, NomP,#IdCapitale)
Capitales(IdCapitale, NomC, #IdPays)
2ime Solution
abdellah_madani@yahoo.fr
200
Associations en Relationnel
(Association un--un)
1re Solution
create table Pays(IdPays integer primary key,
et
create table Capitales(IdCapitale integer primary key,
,
IdPays integer foreign key refernces pays(IdPays))
2ime Solution
Pays(IdPays integer primary key,
NomP varchar(20),
NomC varchar(20))
abdellah_madani@yahoo.fr
201
Associations en Relationnel
(Association un--plusieurs)
Une seule solution est possible :
migration de la cl du ct de 1 vers la table
du ct de plusieurs
La cl migre jouera le rle de cl trangre
abdellah_madani@yahoo.fr
202
Associations en Relationnel
(Association un--plusieurs)
En Relationnel
Dept(IdDept, Nomdept)
Emp(IdEmp, NomEmp, #IdDept)
En SQL
)
abdellah_madani@yahoo.fr
203
Associations en Relationnel
(Association plusieurs--plusieurs)
abdellah_madani@yahoo.fr
204
abdellah_madani@yahoo.fr
205
abdellah_madani@yahoo.fr
206