Upload
lamxuyen
View
222
Download
2
Embed Size (px)
Citation preview
08/10/2010
1
35R. BOUAZIZ -- F. GARGOURI
Rafik BOUAZIZ -- Faïez GARGOURI
FSEG – Sfax ISIM – Sfax
Conception Orientée Objet
II. Diagrammes de classeset Diagrammes d’objets
36R. BOUAZIZ -- F. GARGOURI
Introduction
Diagramme de classes Diagramme ………………….. du modèle du SI. Montre les classes et leurs relations statiques. Le plus ……………. en notations. L’équivalent du modèle ……………. Les erreurs dans ce diagramme ont souvent
un impact sur les autres diagrammes.
37R. BOUAZIZ -- F. GARGOURI
Concept de classe
Avec UML, une classe :est représentée par un rectangle avec :
………………….. et ………………………….
Classe = Attributs + Opérations + Mécanisme d’instanciation (Constructeur)
NOM DE CLASSEAttributsopérationsExceptions
38R. BOUAZIZ -- F. GARGOURI
Concept de classe
Pour une classe :On peut :
ne pas représenter ses attributs et/ou ses opérationssur un diagramme, un filtre visuel pour donner un certain niveau
d'……………………… à son modèle ; on peut se limiter aux noms des classes ;
ne pas spécifier les niveaux de protection des membres d'une classe, ne veut pas dire que l'on ne représente que les
membres publics.
39R. BOUAZIZ -- F. GARGOURI
Concept de classe
Remarque : Par abus de langageAttribut = propriété = donnée-membre, …
Opération = méthode = fonction-membre, …
40R. BOUAZIZ -- F. GARGOURI
Concept de classe
Pour une classe :Le ……….. de la classe, selon la norme UML est en
gras, mais on peut se limiter à l’écrire en majuscule.
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écifiqueoffert par les objets de la classe.
08/10/2010
2
41R. BOUAZIZ -- F. GARGOURI
Concept de classe
Les attributs et les opérations :sont décrits dans le deuxième et troisième
compartiments.
NOM DE CLASSE
NomAttribut [: type [= valeur initiale] ]
Opération ()
42R. BOUAZIZ -- F. GARGOURI
Concept de classe
Expédier ()Fermer()
DateDeRéceptionEstPrépayéeLignesPrix
COMMANDE
Opérations
Nom
Attributs
Exemple :
43R. BOUAZIZ -- F. GARGOURI
Concept de classe
……………………… ou note :Commentaire
Expédier()Fermer()
DateDeRéceptionEstPrépayéeLignesPrix-- commentaire
COMMANDE
-- Commentaire
44R. BOUAZIZ -- F. GARGOURI
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 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.
Diagramme d’objets
45R. BOUAZIZ -- F. GARGOURI
Représentation des objets :
Un ……………. d’objets :
Nom Objet Nom Objet : CLASSE :CLASSE
Objet ……….….
Mohamed Mohamed : PERSONNE :PERSONNE
:PERSONNE
Diagramme d’objets
46R. BOUAZIZ -- F. GARGOURI
Valeurs des attributs des objets :Le rectangle représentant un objet peut comporter
une partie contenant les …………….de ses attributs :
L’ …………… d’un objet :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.
:CHAMBRE [Occupée]
: VOITURECouleur = rougePuissance = 4
Ahmed : ADHERENTNom = MohamedPrénom = AhmedAdresse = Sfax Marque = Peugeot
Diagramme d’objets
08/10/2010
3
47R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
La …………… de description des ……………… est :
[Visibilité] NomAttribut [Multiplicité][ : Type [=Valeur Initiale] [{Propriété}]*]
Visibilité = type d'accessibilité :+ : ……………, 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.
48R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
Le type des attributs peut être :
Un type …………… (supporté par les LP) : Entier, chaîne, …Une …………… (type utilisateur) : BOUTON, RECTANGLE, … Expression : chaîne de caractères dont la syntaxe est en
dehors de la portée d’UML.
Multiplicité : intervalle ou nombre
Multiplicité := (Intervalle|nombre)
49R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
Gelé : attribut non modifiable (const de C++). Variable : attribut modifiable (propriété par défaut). Ajout Uniquement : seul l’ajout est possible
(multiplicité > 1).
Propriété :
…………………….. (gelé, variable, ajout Uniquement, …)
Contrainte :Exemple : - num_sec_soc : string[10] = " " {unique}
50R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
Un attribut peut être …………….. (/Attribut) :Il peut être déduit par application d’une formule
sur d’autres attributs.Il peut conduire en implémentation à une
opération.
RECTANGLELongueurLargeur
Surface ()
Niveau Analyse Niveau Conception
NoteRECTANGLELongueurLargeur/Surface
Opérations
Surface =
longueur * largeur
51R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
- PrixHT-TVA-/PrixTTC {PrixTTC = PrixHT* (1+TVA) }
PRODUIT
52R. BOUAZIZ -- F. GARGOURI
Classes
}
Syntaxe de classe
Exemple :
TELEVISIONOnOff : BOUTONCouleur : énum {gris,noir}Marque : ChaîneTélétexte : Booléen = VraiChaînes [2..*] : CANALPrix : RéelHautParleurs [2..6] : HAUT-PARLEURType : TypeTV {gelé} …
BOUTON
HAUT-PARLEUR
CANAL
<<énumération>>TypeTV
16/93/4
08/10/2010
4
53R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
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, …
54R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
Classes utilitairesStructuration des variables (et des constantes)
globales.Représentées par des classes stéréotypées.Les données membres sont statiques.
- var1- var2
«utility»VariablesGlobales
55R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
……………… de description des ……………………… :[Visibilité] NomOpération [[Arguments] :
TypeRetourné [{Propriété}*]]
Exemple : + fact(n:int) : int {récursive}
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
56R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
Visibilité : +, -, #
Arguments : [Direction] NomArgument[: TypeArgument] [= ValeurDefaut]
Direction (idem PL/SQL) : in, out, inoutin 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.
57R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
Propriété : 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 ; …
58R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
Représentation détaillée (conception)
+ Expédier () : Boolean+ Fermer()
- DateDeRéception [0..1] : Date# EstPrépayée [1] : Boolean = False- Lignes [1 ..*] : LigneCommande- Prix
COMMANDE
: Real
08/10/2010
5
59R. BOUAZIZ -- F. GARGOURI
CLASSE+ AttributPublic# AttributProtégé- AttributPrivéAttributDeClasse
Idem pour les opérations
Syntaxe de classe
Visibilité et portée des attributs et des opérations ………………… :
Attribut de classeSouligné
Visibilité globale : l’attribut est considéré
comme un objet partagé par les instances d’une
classe
PRODUITNumProduitIntituléProduitPrixProduitNbreDeProduits
Créer()Supprimer()
60R. BOUAZIZ -- F. GARGOURI
Syntaxe de classe
Correspondent aux membres static en C++ ou Java
+ getProchainIdentifiant() : Integer
- Identifiant : Integer-Date : Date-Compteur : Integer
RESERVATION
61R. BOUAZIZ -- F. GARGOURI
Concept de relation
Les …………………… entre classes :Association.Agrégation. Composition.Héritage.
Remarque : par rapport au modèle E/A de base, les Représentations Conceptuelles UML sont :
+ riches sémantiquement et
+ proches de la réalité.
62R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Les associations :Une association exprime une ……………………
sémantique bidirectionnelle entre n classes (n>=1).
EmprunterADHERENTNomPrénomAdresseCréer()
EXEMPLAIRE
Une association est …………………………. dans un diagramme d'objets sous forme de liens, ou dans un diagramme de collaboration sous forme de messages,entre objets issus des classes associées.
63R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
C1 C2
:C1 :C2
Diagramme de classes
Association
Diagramme d’objets
:C1 :C2
Diagramme de collaboration
Lien MessageObjets
Classes
64R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Une association représente donc une relation conceptuelle durable entre n classes (n>=1).
Les instances d’une association sont des tuples des instances des classes reliées par cette association.
Des instances de l’association Emprunter :{ (A1, E1), (A1, E2), …. (A2, E4), (A2, E7), ….}
EmprunterADHERENTNomPrénomAdresseCréer()
EXEMPLAIRE
08/10/2010
6
65R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Les multiplicités ou cardinalités :Par rapport au modèle Entité/Association :
Card1 Card2
Entité 2P21P22 …
A1Card1 Card2 Entité 1
P11P12 …
Diagramme Entité /
Association
Diagramme de classes A1
Classe 1P11 P12 …
Classe 2P21 P22 …
66R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Nommage des associationsUne association peut être nommée : c’est optionnel.
Les noms peuvent être en forme ……………… active ou passiveLe …………. de lecture d’une association peut être
précisé lorsqu’il est ambigu :
Classe2Classe1 [ Nom Association ]
HÔTELhéberge>
SOCIÉTÉest employée par>
PERSONNE
67R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Arités des associations :Une association peut être binaire ou n-aire (à éviter).
Exemple : on désire représenter le fait suivant : Un professeur enseigne dans une salle des étudiants d’une classe.
SALLE
PROFESSEUR
CLASSE
Enseigner
Comment interpréter les multiplicités ?
68R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Association à navigabilité restreinte :Par défaut, une association est navigable dans les
……… sens.On peut la limiter à un ………. sens dans un modèle indique que les instances d'une classe
« ne voient pas » les instances de l’autre.
Connaître
ELECTEUR CANDIDATVoter
ETUDIANT ENSEIGNANT
69R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
70R. 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.
Rôle 1 : le rôle joué par Classe 1 dans l’associationRôle 2 : le rôle joué par Classe 2 dans l’association
CLASSE2CLASSE1 [ Nom Association ][Rôle1] [Rôle2]
PERSONNESOCIÉTÉEmployéesEmployeur
Emploi
08/10/2010
7
71R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
L’indication des rôles est nécessaire pour les associations ambiguës.
HÔTEL PERSONNE
Directeur
Clients
PERSONNEParents
Enfants
Parenté
72R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Attention : La présence d’un grand nombre d’associations entre deux classes peut être le signe d’une mauvaise modélisation.
PERSONNE VOITURE
Conduire
Laver
Arrêter
PERSONNE VOITURE
Conduire
Laver
73R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Les …………………………… (cardinalités) précisent les nombres min et max d’objets d’une
classe qui peuvent être liés à un objet de l’autre.
1 Un et un seul0 .. 1 Zéro ou unN N (entier naturel)M .. N (3..7) De M à N (entiers naturels)* De 0 à plusieurs0 .. * De 0 à plusieurs
1 .. * De 1 à plusieurs
PERSONNESOCIÉTÉEmployées
Employeur1
1..*
Valeurs de cardinalité
conventionnelles
74R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
…………………….. : Il s’agit de règles sémantiquesdéfinies sur des associations. Elles permettent :
d’étendre ou de préciser la sémantique, de restreindre le nombre d'instances visées.
Elles peuvent s'exprimer en : Langage Naturel (L’âge d’un étudiant est supérieur à 16)
ou graphiquement avec un {texte} ({longueur > largeur}) ou En ………… (Object Constraint Language)
75R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Exemples : soit le diagramme de classes suivant :
1
-Adresse : StringHÔTEL -Étage : Integer
-Numéro : Integer-NbLits : Integer
CHAMBRE-lesChambres
1..*
-Nom : String-Prénom : String-Age : Integer
PERSONNE- Directeur
0..1
- lesClients*
- lesRésidents
*
- laChambre 0..1
76R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
// Etage maximum : 12
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 andlesRésidents->exists(p : Personne | p.âge < 4))
08/10/2010
8
77R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Les …………… de contraintes exprimables sur les associations : Ordonné ; Sous-ensemble ; Ou ; Partition (Ou-exclusif) ; …
Elles sont placées entre accolades.
78R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
………………….. :
La collection des comptes d’une personne est triée
COMPTEPERSONNE{ordonné}
1 0..*
79R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
COMPTEPERSONNE{ordonné}
1 0..*
On désire représenter les règles de gestion suivantes :1. Un employé est affecté à un seul service.2. Plusieurs employés sont affectés à un service.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.
Toute instance de Diriger est aussi instance de Affecter
Numéro_S SERVICE
Nom_S ...
EMPLOYENuméro Nom
....{sous-ensemble}
Diriger0..1 1
Affecter1 1..*
80R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
x xx x
x xx
x x x xxx x x x x
x xx x x
x x
x
x x x x x x x x x x x x x x
X
Non Disjonction Disjonction
Couverture
NonCouverture
Application des opérateurs de couverture et de disjonction :
81R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Exemples :
UNIVERSITÉ
PERSONNE
-Affectation0..1
- lesEnseignants*
Ens
eign
e
0..1
- lesEtudiants*
Etu
die
{ou }
82R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
{Partition}
Technologue
Enseign-UnivENSEIGNANT
ETAB-UNIVER
ISET
0..1
0..1
…………………………………..……… : Indique que pour un objet donné, un seul lien est valide.
08/10/2010
9
83R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Une …………………………………………………………...….. :Permet de représenter une association par une
classe pour définir des attributs et/ou des opérations dans l’association.Possède les caractéristiques d’une classe et d’une
association.
CONTRATSalaire, Emploi
ENTREPRISE EXPERTEmbauche0..* 1..*
84R. BOUAZIZ -- F. GARGOURI
note
EXAMENETUDIANT Passe >* *
Concept de relation --- Les associations
Un ……………………………….. :
Et si CONTRAT devient une classe tout court ?
Que devient la solution ?
Est-elle équivalente à la précédente ?
85R. 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
concerne un ou plusieurs produits.Un produit peut être commandé par plusieurs
commandes.Chaque commande est envoyée à un ou plusieurs
dépôts pour être satisfaite.Chaque dépôt ayant satisfait la partie qui le concerne
d’une commande génère une facture correspondant à cette partie.
Toute facture générée sera envoyée au client correspondant.
86R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Facture est une classe à part entière : elle a ses propres attributs, opérations et liens
FACTUREQtéCdée
CLIENT
DEPOT
* *
*
*
*
1
1
QteCdée est un simple attribut
Attribut de lien : (Cde, produit, QteCdée)
Classe d’association : (Cde, Dépôt, Facture)
COMMANDE PRODUIT1..n
87R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Une classe d'association :D’un point de vue implantation :
Classe Facture Classe CommandePROPRIETES PROPRIETES
NumFac, NumCde, DateFac, DateCde,NumClient, Prods : SET(PRODUIT, QteCdée),NumCde, Depots : SET(DEPOT), NumDep,…, METHODES
…
METHODESCréerFac(),SolderFac(), …
88R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
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.
0..1 Num_comptePERSONNE BANQUE*Titulaire
08/10/2010
10
89R. BOUAZIZ -- F. GARGOURI
Concept de relation --- Les associations
Assimilable à une table associative.Le qualificateur (Nproduit) permet d’identifier 0 ou une
ligne de la commande.Pour manipuler (ajouter, consulter, etc.) une ligne d’une
commande, il faut obligatoirement un produit.
N
90R. BOUAZIZ -- F. GARGOURI
Représentation des liens entre objets :
Les liens entre objets :
sont des instances d’………….……………. entre les classes des objets participants ;
permettent une représentation plus concrète que celle produite par les diagrammes de classes.
Voyons des exemples !
Diagramme d’objets et associations
91R. BOUAZIZ -- F. GARGOURI
Exemple :
MOTEURVOITURE
ROUE
1
4
1 1
Diagramme de Classes
:MOTEURV1:VOITURE
R2:ROUE R3:ROUER1:ROUE R4:ROUE
Diagramme d’objets
Diagramme d’objets et associations
92R. BOUAZIZ -- F. GARGOURI
0..1
- nom- prénom
Personne -- mère- père
- époux
- enfants
- enfants
- épouse
0..1 0..1
*
*
0..1
Exemple :
Nom = MALLEKPrénom = Sana
Sana : Personne
nom prénom = Olfa
Olfa : Personne
mère
nom = MALLEKprénom = Maher
Maher : Personnepère
époux
épouseKALLEL=
Moncef : PersonneNom = MALLEKPrénom = Moncef
Diagramme d’objets et associations
93R. BOUAZIZ -- F. GARGOURI
Représentation des liens entre objets :Les liens entre objets peuvent être n-aires.Exemple :
On peut indiquer les noms des objets et des liens :
Ahmed : ADHERENTNom = MohamedPrénom = AhmedAdresse = Sfax
Soukaria : EXEMPLAIREEmprunter
Diagramme d’objets et associations
A1: SALLE
RB: PROFESSEUR
I3: CLASSE
94R. BOUAZIZ -- F. GARGOURI
Remarque :
Ces diagrammes ne sont utiles que durant la phase exploratoire d’un domaine.
Le nombre d’instances doit être …………….….
Autrement, ils deviennent vite compliqués et illisibles.
Diagramme d’objets et associations
08/10/2010
11
95R. BOUAZIZ -- F. GARGOURI
Concept de relation --- L’agrégation
L’ ………………. est une relation non symétrique, elle : exprime un couplage ………… et une relation de
subordination. représente une relation de type "ensemble/élément". peut notamment (mais pas nécessairement)
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.
96R. BOUAZIZ -- F. GARGOURI
Concept de relation --- L’agrégation
Une instance d'élément agrégé peut :être liée à ……………… instances d'autres classes :
l'élément agrégé peut être partagé ;
exister ………… agrégat (et inversement) : 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.Exemple :
AgrégationElément agrégé agrégat
ADRESSE PERSONNE
97R. BOUAZIZ -- F. GARGOURI
Concept de relation --- La composition
La ……………………………. est une agrégation …………qui exprime « une partie de ».
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.LIVRE
Composition
CHAPITRE
98R. BOUAZIZ -- F. GARGOURI
Concept de relation --- La composition
Une classe composant peut faire l’objet de plusieurs compositions.
Un objet de la classe composant ne peut appartenir 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.
ChapitreLivre Thème3..10
1..*
Thème-Principal
99R. BOUAZIZ -- F. GARGOURI
Concept de relation --- La composition
Relations entre les CV des objets :
TempsCréer() Supprimer()
CV du composé
CV composant 1
CV composant 2
CV composant 3
CV composant 4
Remarque : toutes les conventions relatives aux cardinalitésrestent valables pour les agrégations et les compositions.
100R. BOUAZIZ -- F. GARGOURI
Exemple de représentation des objets composites : Un objet composite est composé d’autres objets
(sous-objets). Le nombre d’instances du composant peut être
spécifié.
Un Composite
:Partie1 N1 :Partie2 N2
Eau : MOLÉCULE
Hydrogène : ATOME 2
Oxygène : ATOME 1
Exemple :
Diagramme d’objets et compositions
08/10/2010
12
101R. BOUAZIZ -- F. GARGOURI
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 :
Un lien conceptuel : les objets ont des CV indépendants.
Ce lien exprime une relation temporaire.
Association
102R. BOUAZIZ -- F. GARGOURI
Concept de relation ---Association, agrégation et composition
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.
Agrégation
103R. BOUAZIZ -- F. GARGOURI
Concept de relation ---Association, agrégation et compositionUn immeuble est composé d’étages :
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.
Composition
104R. BOUAZIZ -- F. GARGOURI
Concept de relation ---Association, agrégation et composition
Diagramme de Classes :
ASCENSEUR
PERSONNEIMMEUBLE
ETAGE
Posséder
ADRESSE COMPTE
**
1..* *
105R. BOUAZIZ -- F. GARGOURI
L’ ……………, avec UML, est désigné par Généralisation La ……………………………… peut être :
Simple
Multiple : La spécialisation a plus d’une généralisation
La généralisation / spécialisation
C_GÉNÉRALISEE
Est Une
C_SPÉCIALISEE
106R. BOUAZIZ -- F. GARGOURI
La généralisation / spécialisation
NON !
Attention : à ne pas confondre héritage et instanciation
- modèle- cylindrée- couleur
Voiture
Ferrari ; 6 CJaune
Vx
08/10/2010
13
107R. BOUAZIZ -- F. GARGOURI
La généralisation
Contraintes et propriétés de la généralisation :La contrainte exprimée par le mot-clé {…………………}
Tout objet est au plus instance d’une seule sous-classe.
C’est une décomposition exclusive : {Exclusif}C’est l’option par défaut.
ETUDIANT
ETUDIANT-1C ETUDIANT-3C
Inter (ETUDIANT-1C, ETUDIANT-3C) = Vide
{Disjoint}
108R. BOUAZIZ -- F. GARGOURI
La généralisation
La contrainte exprimée par le mot-clé {………………..} Indique que la spécialisation est terminée (couverture) :
Il n’est pas possible d’ajouter d’autres sous-classes. La contrainte exprimée par le mot-clé {…………………} Indique que la spécialisation est extensible : elle peut
avoir d’autres sous classes.
{Incomplet}
ENSEIGNANT
E_PERMANENT E_VACTAIRE
{Complet}
ETUDIANT
ET1-C ET-3CET-2C
109R. BOUAZIZ -- F. GARGOURI
La généralisation
Une classe générique peut être spécialisée selon…………………….. critères.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.
V_TERRSETRE V_MARIN
VEHICULE
{Chevauchement}
Premier critère :Motorisation
Deuxième critère : Milieu
V_A_VOILE V_A_MOTEUR
CAMION
110R. BOUAZIZ -- F. GARGOURI
Divers
Quelques représentations trivialesClasses sans relations.Classes sans attributs.Classes sans opérations.Relation 1-1.
Pas forcément une erreur,mais toujours se poser la question.
111R. BOUAZIZ -- F. GARGOURI
Divers
La pratiqueNe pas utiliser systématiquement toutes les
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.
112R. BOUAZIZ -- F. GARGOURI
Divers
Exemple :Un contrat d’édition est un accord entre un auteur
(é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.