UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours...

of 57 /57
Cyrille Desmoulins © Cours UML MIAGE 3. 2005-2006 d’après Jean-Marie Favre UML UML Diagrammes de Classes Diagrammes de Classes Objet, Classe, Attribut, Méthode Objet, Classe, Attribut, Méthode Lien, Association, Cardinalité Lien, Association, Cardinalité Généralisation, Composition, Généralisation, Composition, Agrégation, Agrégation, Classe associative, Association qualifiée Classe associative, Association qualifiée…

Embed Size (px)

Transcript of UML Diagrammes de Classes - selsek.free.frselsek.free.fr/eloker/miage/cours...

  • Cyrille Desmoulins Cours UML MIAGE 3. 2005-2006 daprs Jean-Marie Favre

    UMLUMLDiagrammes de ClassesDiagrammes de Classes

    Objet, Classe, Attribut, MthodeObjet, Classe, Attribut, MthodeLien, Association, CardinalitLien, Association, Cardinalit

    Gnralisation, Composition,Gnralisation, Composition, Agrgation,Agrgation,Classe associative, Association qualifieClasse associative, Association qualifie

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

    Concepts de baseConcepts de base

    UML est bas sur diffrents concepts de base :UML est bas sur diffrents 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 modlisation, cas gnral)Diagramme de classes (description au niveau modlisation, cas gnral) Diagramme dDiagramme dobjets (description au niveau instance, exemples)objets (description au niveau instance, exemples)

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

    Compte

    numro : entiersolde : reldcouvertMax : entierconsulterSolde() : entiercrditer( somme : entier)dbiter( somme : entier)

    Nom de la classeAttributs

    nomtype

    Mthodesnomparamtretype du rsultat

    Contraintes{ solde > dcouvertMax }

    Gre les informations etoprations dun comptebancaire

    PrcisionsResponsabilitExceptions

    Notation pour les classesNotation pour les classes

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

    Notations simplifiesNotations simplifiespour les classespour les classes

    Compte

    numrosolde : reldcouvertMax : entier

    consulterSolde() : entiercrditer( somme : entier)dbiter( somme )

    Comptenumrosolde...crditer()dbiter()...

    Comptenumrosolde...

    Comptecrditer()dbiter()...

    Compte

    Conventions : les noms de classes commencent par une majuscule les noms dattributs et de mthodes commencent par une minuscule

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

    Notations pour les objetsNotations pour les objets

    leCompteDePaul : Compte

    numro = 6688solde = 5000dcouvertMax = -100

    leCompteDePaul

    : Compte

    leCompteDePaul : Compte

    Convention : les noms dobjets commencent par une minuscule et sont souligns

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

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

    RlesRles

    c1 : Comptepierre : ClientAPourCompte>

    titulaire compte

    Chacun des deux objets joue un rle diffrent dans le lien

    Conventions : choisir un groupe nominal pour dsigner un rle si un nom de rle est omis, le nom de la classe fait office de nom

    pierre assume le rle de titulaire pour le compte c1c1 assume le rle de compte pour pierre

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

    Diagrammedobjets

    (instances)

    Diagrammede classes

    (modlisation)Client Compte

    APourCompte>

    Une association dcrit un ensemble de liens de mme smantique

  • 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 dassociationassociation Une association dcrit un ensemble de liensUne association dcrit un ensemble de liens

    Des liens peuvent tre ajouts ou crs pendant lDes liens peuvent tre ajouts ou crs pendant lexcution,excution,(ce n(ce nest pas le cas des associations)est pas le cas des associations)

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

    Cardinalits dCardinalits dune associationune association

    Prcise combien dPrcise combien dobjets peuvent tre lis un seul objet sourceobjets peuvent tre lis 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

  • 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 rles pour accder aux objetsUtiliser les rles pour accder aux objets

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

    Contraintes entre associationsContraintes entre associations

    ClientCompte

    numrosolde...

    1 0..*titulairePrincipal

    co-titulaires0..* 0..*

    titulaires1..* 0..*

    (1) Un client ne peut pas tre la fois titulaireprincipal et co-titulaire dun mme compte.(2) Les titulaires dun compte sont le titulaireprincipal et les co-titulaires le cas chant

    Les cardinalits ne permettent pas dexprimer toutes les contraintes...

    dcrire les contraintesen langue naturelle(ou en OCL le langage decontrainte dUML)

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

    Diagramme de classesDiagramme de classes

    Client1..4 0..*titulaires

    Consortium

    Comptenumrosolde...

    1..*

    0..1

    1

    Banquenumronom

    Distributeur 0..*

    1

    0..*

    1..*

    signataire1

    0..* CarteBleue

    CoderetraitMax

    1..*EstAcceptPar>

    (1) Le signataire de la carte bleue associe un compte est lun des titulaires de ce compte.(2) Une carte bleue est accepte 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 mme consortium.

    virementPossible

    0..*

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

    Diagrammes dDiagrammes dobjetsobjets

    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

    EstAcceptPar>

    EstAcceptPar>

    EstAcceptPar>

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

    Diagrammes de classesDiagrammes de classes vs. dvs. dobjetsobjets

    Un diagramme de classesUn diagramme de classes dfinit ldfinit lensemble de tous les tats possiblesensemble de tous les tats possibles les contraintes doivent toujours tre vrifiesles contraintes doivent toujours tre vrifies

    Un diagramme dUn diagramme dobjetsobjets dcrit un tat possible un instant t, un cas particulierdcrit un tat possible un instant t, un cas particulier doit tre conforme au modle de classesdoit tre conforme au modle de classes

    Les diagrammes dLes diagrammes dobjets peuvent tre utiliss pourobjets peuvent tre utiliss 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")

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

    Diagrammes de classesDiagrammes de classes vs. dvs. dobjetsobjets

    Client1..4 0..*

    titulaires

    Consortium

    Compte

    numrosolde...

    1..*

    0..1

    1

    Banque

    numronom

    Distributeur0..*

    1

    0..*

    1..*

    signataire1

    0..*CarteBleue

    CoderetraitMax

    1..*

    EstAcceptPar>

    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

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

    Gnralisation / SpcialisationGnralisation / Spcialisation

    Une classe peut tre la gnralisation dune ou plusieurs autresclasses. Ces classes sont alors des spcialisations de cette classe.

    "Super classe"

    "Sous classes"

    Personne

    FemmeHomme

    Compte

    CompteEpargne

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

    HritageHritage

    Compte

    soldecrditer()dbiter()

    CompteEpargne

    tauxIntrtajouterIntrts ()

    Les sous-classes hritent des proprits des super-classes(attributs, mthodes, associations, contraintes)

    Banque*CompteEpargne

    soldetauxIntrt

    crditer()dbiter()calculIntrts ()

    Banque*{solde > -5000}

    {tauxIntrt < 100}

    {solde > -5000 ettauxIntrt < 100}

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

    Vision ensemblisteVision ensembliste

    Vision ensembliste :tout objet dune sous-classe appartient galement la super-classe=> inclusion des ensembles dobjets

    Comptepargne

    ce1

    ce2

    ce3

    c2

    c2

    c1

    c3Compte

    Compte Comptepargne

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

    Synthse des concepts de baseSynthse des concepts de base

    ClasseClasse attributattribut mthodemthode

    AssociationAssociation rlerle cardinalitcardinalit

    Objets Liens

    Gnralisation

    Inclusionensembliste

    o1

    o2

    o1

    o2

    o3

    o4

    o5

    o1

    o2

    o3

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

    ExempleExemple

    Personne Socit1..* 0..1

    employs

    directeur 0..1

    *subordonns

    (1) Le directeur de tout employ est employ dans la mme socit.(2) Dans toute socit il y a au moins une personne qui nest dirige parpersonne (le directeur de la socit).(3) Une personne ne peut pas tre directeur delle mme...

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

    ExempleExemple

    poux

    0..1pouse

    0..1

    pre 0..1

    parents 0..2

    enfants *

    paul pouse mariepoux

    joe

    pre mre

    mre 0..1

    Personnesexe enfants

    parents

    enfantsparents

  • Cyrille Desmoulins Cours UML MIAGE 3. 2005-2006 daprs Jean-Marie Favre

    Diagrammes de classesDiagrammes de classesconcepts additionnelsconcepts additionnels

    Principe dPrincipe dconomie de moyensconomie de moyensConcepts utiliser bon escient, lorsque ncessaireConcepts utiliser bon escient, lorsque ncessaire

    et uniquement lorsque ncessaire...et uniquement lorsque ncessaire...

    Principe KISSPrincipe KISSKeep It Small and SimpleKeep It Small and Simple

  • 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

  • 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 collgues ses collgues aux outils utilissaux outils utiliss

    pour crire des diagrammes UML,pour crire des diagrammes UML, pour gnrer du code, des schmas de bases de donnes, pour gnrer du code, des schmas de bases de donnes, etcetc.. ......

    Savoir lire vs. savoir crireSavoir lire vs. savoir crireIngnierie vs. Ingnierie vs. Retro-ingnierieRetro-ingnierie

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

    + # - Visibilit des lments+ # - Visibilit des lments

    Restreindre l'accsRestreindre l'accs aux lments d'un modleaux lments d'un modle Contrler et viter les dpendances entre paquetagesContrler et viter les dpendances entre paquetages

    ++ publicpublic visible universellementvisible universellement # protg# protg visible dans la classe et ses sous-classesvisible dans la classe et ses sous-classes -- privpriv 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 modle abstraitN'a pas de sens dans un modle abstrait Uniquement vue interne logiciel : conception.Uniquement vue interne logiciel : conception. N'utiliser que lorsque ncessaire.N'utiliser que lorsque ncessaire.

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

    Dclaration d'attributsDclaration d'attributs

    [ [ visibilitvisibilit ] ] nomnom [ [card card ordreordre] [ ] [ :: typetype ] [ ] [ == valeur-initialevaleur-initiale ] [ ] [ {{ propritsproprits... ... }} ] ]Attributs spciauxAttributs spciaux

    - de classe.- de classe. SoulignsSouligns nomnom- abstrait.- abstrait. ItaliqueItalique nom nom ou encore {abstract}ou encore {abstract}- driv.- driv. /nom/nom

    Les attributs cardinalit multiple peuvent possder un ordre.Les attributs cardinalit multiple peuvent possder un ordre.Proprits : changeable, Proprits : changeable, addOnlyaddOnly, , frozenfrozenexemples:exemples: ageage - age : - age : Integer Integer = 0= 0 # age [0..1] : # age [0..1] : IntegerInteger # # numsecu numsecu : : Integer Integer {{frozenfrozen}} # # motsCls motsCls [*] : String {[*] : String {addOnlyaddOnly}}

    Adapter le niveau de dtail au niveau d'abstractionAdapter le niveau de dtail au niveau d'abstraction

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

    Dclaration d'oprationsDclaration d'oprations

    [ visibilit ] nom [ ( [ visibilit ] nom [ ( params params ) ] [ : ) ] [ : type_retourn type_retourn ] [ { proprits... } ]] [ { proprits... } ]params params := [ in | out| := [ in | out| inout inout ] nom [ : type] [ ] nom [ : type] [ =defaut =defaut ] [{proprits... } ]] [{proprits... } ]

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

    Adapter le niveau de dtail au niveau d'abstractionAdapter le niveau de dtail au niveau d'abstraction

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

    NavigationNavigation

    Client Compte1

    titulaire

    Association unidirectionnelleOn ne peut naviguer que dans un sens

    Ce dtail nest a priori utile que lors de la conceptionEn cas de doute, ne pas mettre de flche !!!

    *

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

    CompositionComposition

    Voiture Roue

    composition = cas particulier dassociation + contraintes dcrivant la notion de "composant"...

    4Pneu

    Jante

    1

    1

    Notion intuitive de "composants" et de "composites"

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

    CompositionComposition

    Contraintes lies la composition :1. Un objet composant ne peut tre que dans un seul objetcomposite

    2. Un objet composant nexiste pas sans son objet composite3. Si un objet composite est dtruit, ses composants aussi

    Voiture Roue4

    Pneu

    Jante

    1

    1

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

    CompositionComposition

    Document ChapitreSection

    Figure

    1..* 1..*

    0..*

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

    2. Un objet composant nexiste pas sans son objet composite3. Si un objet composite est dtruit, ses composants aussi

    0..1

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

    CompositionComposition

    Document ChapitreSection

    Figure

    1..* 1..*1

    0..*

    1..*

    : document

    : chapitre

    : chapitre

    : section

    : section

    : figure

    : figure

    : section

    Les composantsforment un arbre

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

    CompositionComposition

    Pointxy

    Polygone 3..* Cerclerayon

    1

  • 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] : Rouesiges [*] : Sige

    Sige*siges Voiture

    Volant 1

    Roue 4

    siges : Sige

  • 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*

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

    ExempleExemple

    Polygone

    Point3..*

    11succ

    *

    *pointsLis

    deplacer()supprimer()

    deplacer()supprimer()

    initial 1

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

    AggregationAggregation

    aggregation = cas particulier dassociation + contraintes dcrivant la notion d'appartenance... ?

    Partage possiblePas de consensus sur la signification exacte de l'aggrgationUtiliser avec prcautions (ou ne pas utiliser...)

    Pointxy

    Figure **

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

    Classes associativesClasses associatives

    Personne Socitemploy

    * 0..2

    Pour associer des attributs et/ou des mthodes aux associations => classes associatives

    Emploisalaireaugmenter()

    Le nom de la classe correspond au nom de lassociation

    socit

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

    Classes associativesClasses associatives

    Personne Socitemploy

    * 0..2Emploi

    salaireaugmenter()

    s1pierre

    employmarie

    s1

    employ

    employ e2salaire = 2000

    e1salaire = 10000

    e3salaire = 16000

    Le salaire est une information correspondant ni une personne, ni une socit,

    mais un emploi (un couple personne-socit).

    socit

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

    Classes associativesClasses associatives

    p1Emploi>

    s1

    Pour une association donne, deux objets ne peuvent treconnects que par un seul lien correspondant cette association.

    Emploi>

    Cette contrainte reste vraie dans le cas o lassociation est dcrite partir dune classe associative.

    p1 s1

    : Emploisalaire = 10000

    : Emploisalaire = 2000

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

    Classes associativesClasses associatives

    Personne Socitemploy

    * 0..2Emploi

    salaire

    Personne Socitemploy

    1 1

    0..2

    socit

    socitEmploisalaire

    *

    Ci-dessus, une personne peut avoir deux emplois, mais pas dans la mme socit

    Ci-dessus, une personne peut avoir deux emplois dans la mme socit

    e2p1

    s1e1

    p1

    s1

    e1

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

    Classes associativesClasses associatives

    comptecompteCrdit

    *

    Virementmontant

    *compteDbit

    compte

    compteCrdit1

    Virementmontant

    1compteDbit* *

    Ou ?

  • 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 mmes proprits et peuvent par exemple trelies par des associations.

    Personne Socitemploy

    *Emploi

    salaireaugmenter()

    socit

    responsable

    subordonns

    *

    0..1

    *

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

    Contraintes sur les associationsContraintes sur les associations

    Contraintes prdfinies sur les associations. Par exemple : { frozen } : fix lors de la cration de lobjet, ne peut pas changer { ordered } : les lments de la collection sont ordonns { addOnly } : impossible de supprimer un lment

    RelevDeCompte

    LigneOpration*

    {ordered,addOnly}

    lignes

    Il est possible de dfinir de nouvelles contraintes

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

    Synthse sur les associationsSynthse sur les associations

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

    ExempleExemple

    Noeud *

    Graphe

    *

    Arc*

    Poignes

    2..*

    succs

    {ordered}preds

    Polygone{frozen}

    1 1

    Points

    {ordered,frozen}*

    *0..1

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

    Associations qualifiesAssociations qualifies

    Repertoire Fichiernom0..1

    Un qualifieur est un attribut ou un ensemble d'attributs dont lavaleur sert dterminer l'ensemble des instances associes uneinstance via une association.

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

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

    Associations vs.Associations vs.Associations qualifiesAssociations qualifies

    Banque Personnencpt0..1*

    Banque Personne* *

    clients

    Banque Personne* *

    Client

    Banque Personne* *

    ncpt

    ncpt

    Clientncpt* *

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

    Cardinalit desCardinalit desAssociations QualifiesAssociations Qualifies

    Banque Comptenc0..1

    Banque Employetitre **

    Echiquier Casenl : NumLignenc : NumCol 11

  • 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

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

    Hritage et redfinitionHritage et redfinition

    Figure

    surface()dplacer()

    Cercle

    surface()

    Polygone

    surface()

    Une sous classe peut redfinir une proprit, condition toutefoisde rester compatible avec la dfinition originale

    Carre

    surface()

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

    Hritage multipleHritage multiple

    Une classe peut hriter de plusieurs super-classes

    Certains langages de programmation interdisent lhritage multiple

    Chauffage Appareillectrique

    Chauffage lectrique

    PoelAMazout

    Appareil

    FourAMicroOndes

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

    Points lis lPoints lis lhritagehritageet la classificationet la classification

    Les modles orients-objetsne font pas tous les mmes hypothses

    Hritage simple vs. hritage multipleUne classe peut elle hriter de plusieurs classes ?

    Classification simple vs. classification multipleUn objet peut-il tre simultanment instance de plusieurs classes?

    Classification statique vs. classification dynamiqueUn objet peut-il changer de classe pendant lexcution ?

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

    Points lis lPoints lis lhritagehritageet la classificationet la classification

    Sauf si le contraire est indiqu explicitement,en UML les hypothses par dfaut sont :

    Hritage multipleune classe peut hriter de plusieurs classes

    Classification simpleun objet est instance dune seule classe

    Classification statiqueun objet est cr partir dune classe donne et nen change pas

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

    ExempleExemple

    Femme Hommepouse poux0..1 0..1

    Personne

    mre pre0..1 0..1

    * *

    parents 0..2 enfants*

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

    ExempleExemple

    Compte

    soldecrditer()dbiter()

    CompteEpargne

    tauxIntrtajouterIntrts ()

    Oprationdatemontant

    Dbit Crdit{montant0}

    *

    1

    1*

    1

    destinataire