14
08/10/2010 1 35 R. BOUAZIZ -- F. GARGOURI Rafik BOUAZIZ -- Faïez GARGOURI FSEG – Sfax ISIM – Sfax Conception Orientée Objet II. Diagrammes de classes et Diagrammes d’objets 36 R. 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. 37 R. 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 CLASSE Attributs opérations Exceptions 38 R. BOUAZIZ -- F. GARGOURI Concept de classe Pour une classe : On peut : ne pas représenter ses attributs et/ou ses opérations sur 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. 39 R. BOUAZIZ -- F. GARGOURI Concept de classe Remarque : Par abus de langage Attribut = propriété = donnée-membre, … Opération = méthode = fonction-membre, … 40 R. 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écifique offert par les objets de la classe.

UML C2 Classes-Pedag

  • Upload
    ilbahi

  • View
    229

  • Download
    0

Embed Size (px)

DESCRIPTION

uml exemple

Citation preview

Page 1: UML C2 Classes-Pedag

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.

Page 2: UML C2 Classes-Pedag

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

Page 3: UML C2 Classes-Pedag

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

Page 4: UML C2 Classes-Pedag

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

Page 5: UML C2 Classes-Pedag

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

Page 6: UML C2 Classes-Pedag

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

Page 7: UML C2 Classes-Pedag

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))

Page 8: UML C2 Classes-Pedag

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.

Page 9: UML C2 Classes-Pedag

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

Page 10: UML C2 Classes-Pedag

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

Page 11: UML C2 Classes-Pedag

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

Page 12: UML C2 Classes-Pedag

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

Page 13: UML C2 Classes-Pedag

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.

Page 14: UML C2 Classes-Pedag

08/10/2010

14

113R. BOUAZIZ -- F. GARGOURI

Divers

Auteur Editeur

AuteurIndividuel AuteurCollectif Ouvrage

ContratType

ContratEdition

0..*

1

1

porte sur

*

1

estr

égi

par

1

* /é

dite

0..*2..* regroupe

{disjoint, complète}

{ordered}

0..*

1