Download - UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

Transcript
Page 1: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006 d’après Jean-Marie Favre

UMLUMLDiagrammes de ClassesDiagrammes de Classes

Objet, Classe, Attribut, MéthodeObjet, Classe, Attribut, MéthodeLien, Association, CardinalitéLien, Association, Cardinalité

Généralisation, Composition,Généralisation, Composition, Agrégation,Agrégation,Classe associative, Association qualifiéeClasse associative, Association qualifiée……

Page 2: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

2 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Concepts de baseConcepts de base

UML est basé sur différents concepts de base :UML est basé sur différents concepts de base : Objet, ClasseObjet, Classe Lien, AssociationLien, Association ContrainteContrainte

UML propose des notations et des diagrammesUML propose des notations et des diagrammes Diagramme de classes (description au niveau modélisation, cas général)Diagramme de classes (description au niveau modélisation, cas général) Diagramme dDiagramme d’’objets (description au niveau instance, exemples)objets (description au niveau instance, exemples)

Page 3: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

3 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Compte

numéro : entiersolde : réeldécouvertMax : entierconsulterSolde() : entiercréditer( somme : entier)débiter( somme : entier)

Nom de la classeAttributs

nomtype

Méthodesnomparamètretype du résultat

Contraintes{ solde > découvertMax }

Gère les informations etopérations d’un comptebancaire

PrécisionsResponsabilitéExceptions…

Notation pour les classesNotation pour les classes

Page 4: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

4 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Notations simplifiéesNotations simplifiéespour les classespour les classes

Compte

numérosolde : réeldécouvertMax : entier

consulterSolde() : entiercréditer( somme : entier)débiter( somme )

Comptenumérosolde...créditer()débiter()...

Comptenumérosolde...

Comptecréditer()débiter()...

Compte

Conventions :• les noms de classes commencent par une majuscule• les noms d’attributs et de méthodes commencent par une minuscule

Page 5: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

5 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Notations pour les objetsNotations pour les objets

leCompteDePaul : Compte

numéro = 6688solde = 5000découvertMax = -100

leCompteDePaul

: Compte

leCompteDePaul : Compte

Convention :• les noms d’objets commencent par une minuscule et sont soulignés

Page 6: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

6 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Liens (entre objets)Liens (entre objets)

c1 : Compte

c2 : Compte

paul : Client

pierre : Client

marie : Client c3 : Compte

APourCompte>

APourCompte>

APourCompte>

Un lien indique une connexion entre deux objets

Conventions :• les noms des liens sont des formes verbales et commencent par une majuscule• > indique le sens de la lecture (ex: « paul APourCompte c1 »)

Page 7: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

7 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

RôlesRôles

c1 : Comptepierre : ClientAPourCompte>

titulaire compte

Chacun des deux objets joue un rôle diffèrent dans le lien

Conventions :• choisir un groupe nominal pour désigner un rôle• si un nom de rôle est omis, le nom de la classe fait office de nom

pierre assume le rôle de titulaire pour le compte c1c1 assume le rôle de compte pour pierre

Page 8: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

8 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Associations (entre classes)Associations (entre classes)

c1 : Compte

c2 : Compte

paul : Client

pierre : Client

marie : Client c3 : Compte

APourCompte>

APourCompte>

APourCompte>

Diagrammed’objets

(instances)

Diagrammede classes

(modèlisation)Client Compte

APourCompte>

Une association décrit un ensemble de liens de même sémantique

Page 9: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

9 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Liens vs. AssociationsLiens vs. Associations

Un lien lie deux objetsUn lien lie deux objets Une association lie deux classesUne association lie deux classes

Un lien est une instance dUn lien est une instance d’’associationassociation Une association décrit un ensemble de liensUne association décrit un ensemble de liens

Des liens peuvent être ajoutés ou créés pendant lDes liens peuvent être ajoutés ou créés pendant l’’exécution,exécution,(ce n(ce n’’est pas le cas des associations)est pas le cas des associations)

Page 10: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

10 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Cardinalités dCardinalités d’’une associationune association

Précise combien dPrécise combien d’’objets peuvent être liés à un seul objet sourceobjets peuvent être liés à un seul objet source Cardinalité minimale et cardinalité maximale (Cardinalité minimale et cardinalité maximale (CCminmin....CCmaxmax))

Client Compte1

c1 : Compte

c2 : Compte

paul : Client

pierre : Client

marie : Client c3 : Compte

APourCompte>

APourCompte>

APourCompte>

APourCompte> 0..*

titulaire comptes

« Un client a 0 ou plusieurs comptes »« Un compte a toujours 1 et 1 seul titulaire »

Page 11: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

11 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Client Compte1 APourCompte> 0..*

titulaire comptes

c1 : Compte

c2 : Compte

paul : Client

pierre : Client

marie : Client c3 : Compte

APourCompte>

APourCompte>

APourCompte>

paul.comptes = {c1}pierre.comptes = {c2,c3}marie.comptes = {}c1.titulaire = paulc2.titulaire = pierrec3.titulaire = pierre

Utiliser les rôles pour accéder aux objetsUtiliser les rôles pour accéder aux objets

Page 12: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

12 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Contraintes entre associationsContraintes entre associations

ClientCompte

numérosolde...

1 0..*titulairePrincipal

co-titulaires0..* 0..*

titulaires1..* 0..*

(1) Un client ne peut pas être à la fois titulaireprincipal et co-titulaire d ’un même compte.(2) Les titulaires d ’un compte sont le titulaireprincipal et les co-titulaires le cas échéant

Les cardinalités ne permettent pas d’exprimer toutes les contraintes...

… décrire les contraintesen langue naturelle(ou en OCL le langage decontrainte d’UML)

Page 13: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

13 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Diagramme de classesDiagramme de classes

Client1..4 0..*titulaires

Consortium

Comptenumérosolde...

1..*

0..1

1

Banquenuméronom

Distributeur 0..*

1

0..*

1..*

signataire1

0..* CarteBleue

CoderetraitMax

1..*EstAcceptéPar>

(1) Le signataire de la carte bleue associée à un compte est l’un des titulaires de ce compte.(2) Une carte bleue est acceptée au moins dans tous les distributeurs appartenant auxconsortiums de la banque correspondant au compte associé à la carte bleue.(3) Un virement est possible entre deux comptes distincts si les banques correspondantesappartiennent à un même consortium.

virementPossible

0..*

Page 14: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

14 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Diagrammes dDiagrammes d’’objetsobjets

c1 : Compte

c2 : Compte

paul : Client

pierre : Client

marie : Client c3 : Compte

titulaires

titulaires

: CarteBleue

titulaires

titulaires

signataire

: CarteBleue

sophie : Client

: Banque

: Banque

fred : Client c4 : Comptetitulaires

: Banque

signataire

: Consortium

: Consortium

: Distributeur

: CarteBleuesignataire

: Distributeur

EstAcceptéPar>

EstAcceptéPar>

EstAcceptéPar>

Page 15: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

15 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Diagrammes de classesDiagrammes de classes vs. dvs. d’’objetsobjets

Un diagramme de classesUn diagramme de classes définit ldéfinit l’’ensemble de tous les états possiblesensemble de tous les états possibles les contraintes doivent toujours être vérifiéesles contraintes doivent toujours être vérifiées

Un diagramme dUn diagramme d’’objetsobjets décrit un état possible à un instant t, un cas particulierdécrit un état possible à un instant t, un cas particulier doit être conforme au modèle de classesdoit être conforme au modèle de classes

Les diagrammes dLes diagrammes d’’objets peuvent être utilisés pourobjets peuvent être utilisés pour expliquer un diagramme de classe (donner un exemple)expliquer un diagramme de classe (donner un exemple) valider un diagramme de classe (le "tester")valider un diagramme de classe (le "tester")

Page 16: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

16 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Diagrammes de classesDiagrammes de classes vs. dvs. d’’objetsobjets

Client1..4 0..*

titulaires

Consortium

Compte

numérosolde...

1..*

0..1

1

Banque

numéronom

Distributeur0..*

1

0..*

1..*

signataire1

0..*CarteBleue

CoderetraitMax

1..*

EstAcceptéPar>

virementPossible

0..*

titulaires

titulaires

:Banque

signataire

:Dist ributeur

:Compte:Compte

:Client:

Client

:Compte

titulaires

:

titulaires

::

Client

:Banque:Banque

:Client

: : :Consortium

:Consortium:

Dist ributeur

: :

>>

>

...:Compte:Compte

:Client:

Client

:Compte

titulaires

:

titulaires

::

Client

:Banque:Banque

:Client

: : :Consortium

:Consortium:

Dist ributeur

: :

>>

>

:Compte:Compte

:Client:

Client

:Compte

titulaires

:

titulaires

::

Client

:Banque:Banque

:Client

: : :Consortium

:Consortium:

Dist ributeur

: :

>>

>

t1 t2 t3

Page 17: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

17 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Généralisation / SpécialisationGénéralisation / Spécialisation

Une classe peut être la généralisation d’une ou plusieurs autresclasses. Ces classes sont alors des spécialisations de cette classe.

"Super classe"

"Sous classes"

Personne

FemmeHomme

Compte

CompteEpargne

Page 18: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

18 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

HéritageHéritage

Compte

soldecréditer()débiter()

CompteEpargne

tauxIntérêtajouterIntérêts ()

Les sous-classes « héritent » des propriétés des super-classes(attributs, méthodes, associations, contraintes)

Banque*CompteEpargne

soldetauxIntérêt

créditer()débiter()calculIntérêts ()

Banque*{solde > -5000}

{tauxIntérêt < 100}

{solde > -5000 ettauxIntérêt < 100}

Page 19: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

19 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Vision ensemblisteVision ensembliste

Vision ensembliste :tout objet d’une sous-classe appartient également à la super-classe=> inclusion des ensembles d’objets

CompteÉpargne

ce1

ce2

ce3

c2

c2

c1

c3Compte

Compte CompteÉpargne

Page 20: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

20 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Synthèse des concepts de baseSynthèse des concepts de base

ClasseClasse attributattribut méthodeméthode

AssociationAssociation rôlerôle cardinalitécardinalité

Objets Liens

• Généralisation

Inclusionensembliste

o1

o2

o1

o2

o3

o4

o5

o1

o2

o3

Page 21: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

21 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

ExempleExemple

Personne Société1..* 0..1

employés

directeur 0..1

*subordonnés

(1) Le directeur de tout employé est employé dans la même société.(2) Dans toute société il y a au moins une personne qui n ’est dirigée parpersonne (le directeur de la société).(3) Une personne ne peut pas être directeur d ’elle même...

Page 22: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

22 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

ExempleExemple

époux

0..1épouse

0..1

père 0..1

parents 0..2

enfants *

paul épouse marieépoux

joe

pére mère

mère 0..1

Personnesexe enfants

parents

enfantsparents

Page 23: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006 d’après Jean-Marie Favre

Diagrammes de classesDiagrammes de classesconcepts additionnelsconcepts additionnels

Principe dPrincipe d’é’économie de moyensconomie de moyensConcepts à utiliser à bon escient, lorsque nécessaireConcepts à utiliser à bon escient, lorsque nécessaire

et uniquement lorsque nécessaire...et uniquement lorsque nécessaire...

Principe KISSPrincipe KISSKeep It Small and SimpleKeep It Small and Simple

Page 24: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

24 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

RappelsRappels

UML est un ensemble de notationsUML est un ensemble de notationsDe nombreuses utilisations possiblesDe nombreuses utilisations possibles

Notation simple vs. complexeNotation simple vs. complexe Notation plus ou moins formelleNotation plus ou moins formelle Notation extensibleNotation extensible

Page 25: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

25 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Savoir s'adapterSavoir s'adapter

S'adapterS'adapter au niveau d'abstractionau niveau d'abstraction au domaine d'applicationau domaine d'application à ses collèguesà ses collègues aux outils utilisésaux outils utilisés

pour écrire des diagrammes UML,pour écrire des diagrammes UML, pour générer du code, des schémas de bases de données, pour générer du code, des schémas de bases de données, etcetc.. ......

Savoir lire vs. savoir écrireSavoir lire vs. savoir écrireIngénierie vs. Ingénierie vs. Retro-ingénierieRetro-ingénierie

Page 26: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

26 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

+ # - Visibilité des éléments+ # - Visibilité des éléments

Restreindre l'accèsRestreindre l'accès aux éléments d'un modèleaux éléments d'un modèle Contrôler et éviter les dépendances entre paquetagesContrôler et éviter les dépendances entre paquetages

++ publicpublic visible universellementvisible universellement # protégé# protégé visible dans la classe et ses sous-classesvisible dans la classe et ses sous-classes -- privéprivé visible dans la classe uniquementvisible dans la classe uniquement ~ paquetage~ paquetage visible dans le paquetagevisible dans le paquetage

A noterA noter N'a pas de sens dans un modèle abstraitN'a pas de sens dans un modèle abstrait Uniquement vue interne logiciel : conception.Uniquement vue interne logiciel : conception. N'utiliser que lorsque nécessaire.N'utiliser que lorsque nécessaire.

Page 27: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

27 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Déclaration d'attributsDéclaration d'attributs

[ [ visibilitévisibilité ] ] nomnom [ [card card ordreordre] [ ] [ :: typetype ] [ ] [ == valeur-initialevaleur-initiale ] [ ] [ {{ propriétéspropriétés... ... }} ] ]Attributs spéciauxAttributs spéciaux

- de classe.- de classe. SoulignésSoulignés nomnom- abstrait.- abstrait. ItaliqueItalique nom nom ou encore {abstract}ou encore {abstract}- dérivé.- dérivé. /nom/nom

Les attributs à cardinalité multiple peuvent posséder un ordre.Les attributs à cardinalité multiple peuvent posséder un ordre.Propriétés : changeable, Propriétés : changeable, addOnlyaddOnly, , frozenfrozenexemples:exemples: ageage - age : - age : Integer Integer = 0= 0 # age [0..1] : # age [0..1] : IntegerInteger # # numsecu numsecu : : Integer Integer {{frozenfrozen}} # # motsClés motsClés [*] : String {[*] : String {addOnlyaddOnly}}

Adapter le niveau de détail au niveau d'abstractionAdapter le niveau de détail au niveau d'abstraction

Page 28: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

28 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Déclaration d'opérationsDéclaration d'opérations

[ visibilité ] nom [ ( [ visibilité ] nom [ ( params params ) ] [ : ) ] [ : type_retourné type_retourné ] [ { propriétés... } ]] [ { propriétés... } ]params params := [ in | out| := [ in | out| inout inout ] nom [ : type] [ ] nom [ : type] [ =defaut =defaut ] [{propriétés... } ]] [{propriétés... } ]

Exemples :Exemples : getAgegetAge()() + + getAgegetAge() : () : IntegerInteger - - updateAgeupdateAge( in date : Date ) : ( in date : Date ) : BooleanBoolean + + getAgegetAge() : () : Integer Integer {{isQueryisQuery}}

Adapter le niveau de détail au niveau d'abstractionAdapter le niveau de détail au niveau d'abstraction

Page 29: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

29 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

NavigationNavigation

Client Compte1

titulaire

Association unidirectionnelleOn ne peut naviguer que dans un sens

Ce détail n’est a priori utile que lors de la conceptionEn cas de doute, ne pas mettre de flèche !!!

*

Page 30: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

30 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

CompositionComposition

Voiture Roue

composition = cas particulier d’association + contraintes décrivant la notion de "composant"...

4Pneu

Jante

1

1

Notion intuitive de "composants" et de "composites"

Page 31: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

31 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

CompositionComposition

Contraintes liées à la composition :1. Un objet composant ne peut être que dans un seul objetcomposite

2. Un objet composant n’existe pas sans son objet composite3. Si un objet composite est détruit, ses composants aussi

Voiture Roue4

Pneu

Jante

1

1

Page 32: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

32 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

CompositionComposition

Document Chapitre Section

Figure

1..* 1..*

0..*

Contraintes:1. Un objet composant ne peut être que dans un seul objetcomposite

2. Un objet composant n’existe pas sans son objet composite3. Si un objet composite est détruit, ses composants aussi

0..1

Page 33: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

33 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

CompositionComposition

Document Chapitre Section

Figure

1..* 1..*1

0..*

1..*

: document

: chapitre

: chapitre

: section

: section

: figure

: figure

: section

Les composantsforment un arbre

Page 34: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

34 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

CompositionComposition

Pointxy

Polygone 3..* Cerclerayon

1

Page 35: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

35 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Autres notations pour laAutres notations pour laCompositionComposition

Voiture

Volant

Roue

1

4

Voiture

volant : Volantroue [4] : Rouesièges [*] : Siège

Siège*sièges Voiture

Volant 1

Roue 4

sièges : Siège

Page 36: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

36 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Associations intra vs. inter compositesAssociations intra vs. inter composites

Voiture

Volant 1

Roue 4

Volant

Roue

*

0..1

0..1

*

Voiture

1

4

Constructeur

*1

Constructeur 1

*

Page 37: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

37 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

ExempleExemple

Polygone

Point3..*

11succ

*

*pointsLiés

deplacer()supprimer()

deplacer()supprimer()

initial 1

Page 38: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

38 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

AggregationAggregation

aggregation = cas particulier d’association + contraintes décrivant la notion d'appartenance... ?

Partage possiblePas de consensus sur la signification exacte de l'aggrégationUtiliser avec précautions (ou ne pas utiliser...)

Pointxy

Figure **

Page 39: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

39 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Classes associativesClasses associatives

Personne Sociétéemployé

* 0..2

Pour associer des attributs et/ou des méthodes aux associations => classes associatives

Emploisalaireaugmenter()

Le nom de la classe correspond au nom de l’association

société

Page 40: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

40 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Classes associativesClasses associatives

Personne Sociétéemployé

* 0..2Emploi

salaireaugmenter()

s1pierre

employémarie

s1

employé

employé e2salaire = 2000

e1salaire = 10000

e3salaire = 16000

Le salaire est une information correspondant• ni à une personne,• ni à une société,

mais à un emploi (un couple personne-société).

société

Page 41: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

41 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Classes associativesClasses associatives

p1Emploi>

s1

Pour une association donnée, deux objets ne peuvent êtreconnectés que par un seul lien correspondant à cette association.

Emploi>

Cette contrainte reste vraie dans le cas où l’association est décriteà partir d’une classe associative.

p1 s1

: Emploisalaire = 10000

: Emploisalaire = 2000

Page 42: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

42 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Classes associativesClasses associatives

Personne Sociétéemployé

* 0..2Emploi

salaire

Personne Sociétéemployé

1 1

0..2

société

sociétéEmploisalaire

*

Ci-dessus, une personne peut avoir deux emplois, mais pas dans la même société

Ci-dessus, une personne peut avoir deux emplois dans la même société

e2p1

s1e1

p1

s1

e1

Page 43: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

43 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Classes associativesClasses associatives

comptecompteCrédité

*

Virementmontant

*compteDébité

compte

compteCrédité1

Virementmontant

1compteDébité* *

Ou ?

Page 44: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

44 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Classes associativesClasses associatives

Les classes associatives sont des associations mais aussi des classes.Elles ont donc les mêmes propriétés et peuvent par exemple êtreliées par des associations.

Personne Sociétéemployé

*Emploi

salaireaugmenter()

société

responsable

subordonnés

*

0..1

*

Page 45: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

45 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Contraintes sur les associationsContraintes sur les associations

Contraintes prédéfinies sur les associations. Par exemple :• { frozen } : fixé lors de la création de l’objet, ne peut pas changer• { ordered } : les éléments de la collection sont ordonnés• { addOnly } : impossible de supprimer un élément

RelevéDeCompte

LigneOpération*

{ordered,addOnly}

lignes

Il est possible de définir de nouvelles contraintes

Page 46: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

46 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Synthèse sur les associationsSynthèse sur les associations

<AssociationX

Cardinalités

ClasseA ClasseBroleA 0..*

attributZ

{frozen}

Nom de rôlesens delecture

AssociationX

Contrainte

Navigation

Classe associative

Composition(ou aggregation )

Nom d ’association

Page 47: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

47 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

ExempleExemple

Noeud *

Graphe

*

Arc*

Poignées

2..*

succs

{ordered}preds

Polygone{frozen}

1 1

Points

{ordered,frozen}*

*0..1

Page 48: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

48 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Associations qualifiéesAssociations qualifiées

Repertoire Fichiernom0..1

Un qualifieur est un attribut ou un ensemble d'attributs dont lavaleur sert à déterminer l'ensemble des instances associées à uneinstance via une association.

Les attributs du qualifieur sont des attributs de l'association.

Page 49: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

49 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Associations vs.Associations vs.Associations qualifiéesAssociations qualifiées

Banque Personnencpt0..1*

Banque Personne* *

clients

Banque Personne* *

Client

Banque Personne* *

ncpt

ncpt

Clientncpt* *

Page 50: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

50 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Cardinalité desCardinalité desAssociations QualifiéesAssociations Qualifiées

Banque Comptenc0..1

Banque Employetitre **

Echiquier Casenl : NumLignenc : NumCol 11

Page 51: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

51 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

ExempleExemple

Association1901 Personnetitre:Titre1*

** membres

a1

Titre = enum {President, Tresorier, Secretaire }

#Tresorier

#President

#Secretaire joe

sylvia

ahmed

fredmembres

membres

Page 52: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

52 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Héritage et redéfinitionHéritage et redéfinition

Figure

surface()déplacer()

Cercle

surface()

Polygone

surface()

Une sous classe peut redéfinir une propriété, à condition toutefoisde rester compatible avec la définition originale

Carre

surface()

Page 53: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

53 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Héritage multipleHéritage multiple

Une classe peut hériter de plusieurs super-classes

Certains langages de programmation interdisent l’héritage multiple

Chauffage AppareilÉlectrique

Chauffage Électrique

PoelAMazout

Appareil

FourAMicroOndes

Page 54: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

54 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Points liés à lPoints liés à l’’héritagehéritageet à la classificationet à la classification

Les modèles orientés-objetsne font pas tous les mêmes hypothèses

Héritage simple vs. héritage multipleUne classe peut elle hériter de plusieurs classes ?

Classification simple vs. classification multipleUn objet peut-il être simultanément instance de plusieurs classes?

Classification statique vs. classification dynamiqueUn objet peut-il changer de classe pendant l’exécution ?

Page 55: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

55 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

Points liés à lPoints liés à l’’héritagehéritageet à la classificationet à la classification

Sauf si le contraire est indiqué explicitement,en UML les hypothèses par défaut sont :

Héritage multipleune classe peut hériter de plusieurs classes

Classification simpleun objet est instance d’une seule classe

Classification statiqueun objet est créé à partir d’une classe donnée et n’en change pas

Page 56: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

56 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

ExempleExemple

Femme Hommeépouse époux0..1 0..1

Personne

mère père0..1 0..1

* *

parents 0..2 enfants*

Page 57: UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours M1/uml/UML-ClassesObjets.pdf · UML est basé sur différents concepts de base :

57 Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006

ExempleExemple

Compte

soldecréditer()débiter()

CompteEpargne

tauxIntérêtajouterIntérêts ()

Opérationdatemontant

Débit Crédit{montant<0}

RetraitVirement

RetraitEspèce

RetraitGuichet

RetraitDistributeur Distributeur

{addOnly,ordered}

{montant>0}

*

1

1*

1

destinataire