diagramme de classes (1)

Upload: imad-tout-simplement

Post on 06-Apr-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Diagramme de Classes (1)

    1/62

    UML

    (Diagramme de classes)

    Unified Modeling Language

    Diagramme de Classes/ UML2 A. Oubelkacem

    Universit My Ismail-FS

    Dpartement de Math InfoLicence Professionnelle dInformatique LPI AU 2011/2012

    LPI

  • 8/3/2019 Diagramme de Classes (1)

    2/62

    2

    Sommaire

    Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opration) Visibilit et porte des constituants dune classe Association (Nom, rles)

    Association rflexive Navigabilit dune association Contraintes sur association Qualificateur dune association

    Classe associative Types dassociation (Agrgation, composition, gnralisation /spcialisation)

    Classe et opration abstraites

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    3/62

    3

    Diagramme de classes

    Apport en grande partie de la mthode OMT (Rumbaugh)

    Sapparente un diagramme entit-association (MERISE). Ilprsente les diffrents objets (classes) du systme ainsi que les

    liens entre ces objets (associations)

    Diagramme le plus important dans une modlisation objet

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    4/62

    4

    Diagramme de classes

    Objectifs

    Dterminer les donnes qui seront manipules par le systmeCes donnes sont organises en classes

    Donner la structure statique de ces donnesCe diagramme permet de dcrire la structure interne dechacune des classes

    Reprsenter les relations statiques existant entre lesdiffrentes donnes du systmeLa navigation parmi les classes est rendue possible par

    lexistence dassociations qui les unissentFaire abstraction des aspects temporels et dynamiques de la modlisation.

    Seul laspect statique compte, la dynamique est prise en charge pardautres modles

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    5/62

    5

    Diagramme de classes(Dfinition)

    Le diagramme de classes est un diagramme structurel ne

    prsentant que les classes et pas les instances de classe

    Il permet de dcrire la structure interne des classes en termedattributs et doprations

    Il permet de reprsenter les associations statiques entre lesclasses, mais ne dcrit pas comment les liens effectifs entre lesinstances sont effectus

    Le diagramme de classes est un diagramme

    entits-associations dcrivant les diffrentes classes,leur structure et les associations statiques les unissant

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    6/62

    6

    Diagramme de classesExemple

    Client CompteCourant

    Plan Epargne Actions Actions

    achte

    possde

    souscrit

    1 0..1

    1

    0..1

    *

    *

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    7/62

    7

    Classe(Dfinition)

    La classe est la fabrique, le moule, partir du quel on fabriqueles instances (les objets)

    Seules les caractristiques pertinentes pour le problmetudi entrent dans la composition de la classe

    Une classe est une abstraction de choses

    du monde rel possdant des caractristiques etdes comportements communs

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    8/62

    8

    Classe

    Chien

    courir()

    aboyer()

    age

    pedigree

    Personne

    se promener()

    crier()

    age

    nationalit

    AbstractionAbstraction

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    9/62

    9

    Classe(Notation)

    >Nom paquetage :: Nom classe

    Attributs

    Oprations

    Notation Une classe estreprsente par un

    rectangle dcoup en3 parties

    Sont prsents :

    le nom de la classe la liste de ses

    attributs la liste de ses

    oprations

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    10/62

    10

    Nom de la classe

    >login :: Code secret

    Code

    >Compte

    N

    Crditer()

    Dbiter()

    >Compte chque

    N de compte

    Le nom de la classepeut tre prcd

    dun strotypequalifiant le type dela classe

    Le nom de la classeest prfix par unnom de paquetagesi la classe estexterne au

    paquetage courant

    Le nom dune classeabstraite est donnen Italique

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    11/62

    11

    Attribut de la classe(Dfinition et notation)

    Lattribut possde un nomunique dans la classe

    On peut associer lattributle type des valeurs quil peutprendre

    On peut donner une valeurinitiale lattribut

    Un attribut est une caractristique intrinsque

    partage par tous les objets dune classe

    >Nom paquetage :: Nom classe

    nomAttribut1 : typeAttribut1 = valeurInitiale1

    nomAttributN : typeAttributN = valeurInitialeN

    Notation

    Diagramme de Classe/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    12/62

    12

    Attribut de la classeRecommandations pour trouver les attributs

    Les 3 rgles dor de lattribut :

    Eliminer les attributs caractrisant une autre classeex : lattribut nom client dans la classe compteBancaire

    Se mfier des attributs multi-valus, ils cachent souvent eux-mmes une classeex : lattribut enfants dans la classe Personne

    Se mfier des attributs structurs, ils cachent souvent eux-mmes une classeex : lattribut Adresse dans une classe Personne

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    13/62

    13

    Opration de la classe(Dfinition et notation)

    Une opration est un service que propose

    une classe sur son interface

    Lopration possde unnom pas forcmentunique dans la classe

    On peut associer lopration ses arguments

    On peut associer lopration son type deretour

    Notation>

    Nom paquetage :: Nom classe

    nomOpration1 (nomArg1 : TypeArg1 = valeurParDfaut1, ...)

    : typeRetour1

    nomOprationN (nomArgN : TypeArgN = valeurParDfautN, ...)

    : typeRetourN

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    14/62

    14

    Opration de la classeRecommandations pour trouver les oprations

    Ne donner les informations sur les arguments et le type deretour quen phase de Conception

    Lorsquune classe possde de trs nombreuses oprations seposer la question du dcoupage de la classe

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    15/62

    15

    Exemple de classe

    Compte

    effectuerVirement()Accesseurs

    getSolde()

    setSolde()getNumero()setNumero()

    numero

    solde

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    16/62

    16

    Nom Classe

    +Attribut public#Attribut protg

    -Attribut privAttribut de classe/Attribut driv

    +Opration publique()#Opration protge()-Opration prive()Opration de classe()

    Visibilit et Portedes constituants de la classe

    La visibilit prcise lamanire dont un nom peut

    tre vu et utilis par lesautres (public, protg,priv)

    La porte prcise dansquel contexte un nomprend sa signification(instance ou classe)

    Par dfaut, la visibilit estpublique et la porte estdinstance

    Notation

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    17/62

    17

    Association(Dfinition)

    Dans le monde rel, les objets sont lis physiquement oufonctionnellement les uns avec les autres

    Ces liens entre objets se traduisent au niveau des classes pardes associations

    Une association traduit donc une relation structurelle statiqueentre deux ou plusieurs classes

    Une association est une abstraction de liens

    qui peuvent exister entre les instances de plusieurs classes

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    18/62

    18

    Association

    Chien

    courir()

    aboyer()

    ge

    race

    Personne

    se promener()

    crier()

    ge

    nationalit

    Abstraction

    Abstraction

    Abstraction

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    19/62

    19

    Association(Notation)

    Client Voitureachte

    Personne Socitsalari

    employeur

    Notation

    Une association est reprsente au moyen dun trait orient reliantchacune des classes concernes

    Il est possible de nommer lassociation et de prciser les rles tenuspar chaque classe

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    20/62

    20

    Nom de lassociation

    Client Voitureachte

    Notation

    Le nom de lassociation esten gnral une formeverbale active ou passive

    qui dcrit globalement le lien

    Le nom de lassociation estfacultatif

    Le nom doit apparatre surlassociation, mais ne doit

    pas tre rattach lune desextrmit

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    21/62

    21

    Nom de lassociation

    Exemple: des postes de travail sont connects un rseau local. Chaque poste

    est reli un segment caractris par un indicatif IP, un nom et une longueur

    de cble. Le verbe connecter induit une association entre les entits

    Poste_travail et Segment.

    entit

    classe

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    22/62

    22

    Nom de lassociation

    Terminologie

    connecter

    Le diagramme de classe:

    Connexion()

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    23/62

    23

    Rles de lassociation

    salari

    Notation

    Le rle permet de dcrire, laide dun nom, commentune classe peroit une autre

    classe au travers delassociation

    Un rle doit figurer

    lextrmit de lassociationquil qualifie

    Les rles sont facultatifs

    Lassociation peut fairefigurer les deux, un seul ouaucun des rles

    SocitPersonne

    employeur

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    24/62

    24

    Nom et rles de la classe(Recommandations)

    Lutilisation du nom et des rles dune association nest pasexclusif

    Cependant, les deux notations sont rarement utilisesconjointement

    Lusage du nom et des rles nest pas obligatoire, mais ilsavre indispensable si deux objets sont relis par plusieursassociations ou si une association est rflexive

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    25/62

    25

    Association rflexive

    Client Voitureachte

    Une association peut mettreen jeux deux classesdistinctes

    Mais, elle peut aussiapparatre sur une seule etmme classeDans ce cas prcis,lassociation est diterflexive

    Personne

    Vit en couple avec

    Exemple dassociation rflexive

    Exemple dassociation classique

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    26/62

    26

    Association rflexive

    Association rflexive de un plusieurs

    Pour des postes de travail, certains lments sont serveurs et

    dautres sont clients. La relation entre les postes clients etserveurs est rflexive, car elle porte sur la mme

    classe : Poste_travail.Un poste client est reli

    un seul serveur

    Un poste serveur relie

    zro ou plusieurs postes

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    27/62

    27

    Association rflexive

    Association rflexive de plusieurs un plusieursConsidrons lexemple que laccs certaines units de valeurs (UV) est conditionn par

    des pr requis. Les UV elles-mmes pr requises constituent ventuellement un pr requis

    pour la prparation dune ou de plusieurs autres UV. Ainsi, pour passer lUV BD objetrelationnelle, il faut avoir les UV BD relationnelle et SQL. Par ailleurs, laccs aux UV

    JDBC et Oracle 8 suppose lobtention de lUV BD objet relationnelle.

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    28/62

    28

    Navigabilit de lassociation

    a vu

    Chaque personne a accs aux films qu'elle a dj vus,mais partir d'un film, on interdit de retrouver la liste des

    personnes l'ayant vu

    Notation

    FilmPersonne

    La navigabilit duneassociation permet dedfinir dans quel sens

    lassociation peut treparcourue

    La navigabilit duneassociation est modlisepar une flche surlextrmit pouvant treatteinte par navigation

    La navigabilit peut tre bi-directionnelle

    Labsence de flche sur lesdeux extrmits signifie quelassociation est bi-directionnelle

    achte

    Lassociation peut tre parcourue dans les deux sens

    VoitureClient

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    29/62

    29

    Navigabilit de lassociation

    UML 2 permet dexprimer dans un diagramme que les instances

    dune classe ne connaissent pas les instances dune autre bien

    qutant relies entre elles dans le cadre de lassociation.

    Ex: Considrons lexemple dune association qui relie un tudiant

    son professeur prfr.

    Par dfaut, une association UML est navigable dans les deux sens.

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    30/62

    30

    Multiplicits de lassociation

    emploie

    Une socit emploie de une plusieurs personnes

    Une personne est employe par une seule socit

    Notation

    SocitPersonne

    La cardinalit dunensemble est le nombredlments de cet ensemble

    La multiplicit est laspcification des valeurs decardinalit admissibles pourun ensemble

    La multiplicit est associe une extrmit de

    lassociation et indiquecombien dinstances de laclasse considre peuventtre lies une instance delautre classe

    achte

    Un client achte zro plusieurs voitures

    Une voiture peut tre achete par un client au plus

    VoitureClient

    1 ..* 1

    0..**

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    31/62

    31

    La multiplicit est une spcification respectant les conventionssuivantes :

    1 : un et un seul (notation facultative)

    0..1 : zro ou unN : exactement N (N: entier naturel)

    M..N : de M N (deux entiers naturels)0..* : de zro plusieurs1..* : de un plusieurs

    N..* : N ou plus (N: entier naturel)

    Multiplicits de lassociation

    Cardinalits/multiplicits

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    32/62

    32

    EXEMPLES

    Exemple1: un tudiant est caractris par un numro INSEE et

    un nom. Chaque tudiant doit effectuer un seul stage en

    entreprise. Un stage est dsign par un numro, un thme et lenom du responsable ; il est suivi par un seul tudiant.

    Est effectue par

    ASSOCIATION UN UN

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    33/62

    33

    EXEMPLES

    Exemple2: Dans cet exemple un professeur, caractris par un numro, un

    nom et un grade, peut tre responsable de plusieurs units de valeurs (UV).

    Chaque UV, dsigne par un numro, un titre et une anne de cration, est

    place sous la responsabilit dun seul professeur. Il existe des professeurs

    qui ne sont responsables daucune UV. Lentit Professeur est dite pre

    car un professeur est en relation avec plusieurs UV fils .

    ASSOCIATION UN PLUSIEURS

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    34/62

    34

    EXEMPLES

    Exemple3: Dans cet exemple, chaque tudiant met un ou

    plusieurs voeux concernant des stages. Un stage peut

    nintresser aucun tudiant ou, au contraire, en attirer plusieurs.

    ASSOCIATION PLUSIEURS PLUSIEURS sans attribut

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    35/62

    35

    Contraintes sur association

    Dautres types de contraintes existent sur une association :

    Des contraintes prdfinies : Les contraintes ensemblistes : {Sous-ensemble} Les contraintes dordonnancement : {Ordonn}

    Les contraintes dexclusion : {Ou - exclusif}

    Des contraintes spcifiques au moyen du langage OCL (ObjectConstraint Language)

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Contraintes ensemblistes sur

  • 8/3/2019 Diagramme de Classes (1)

    36/62

    36

    Notation

    Ce type de contrainte permet de modliser le cas o un ensembledassociations est inclus dans un autre ensemble dassociation

    Prix Personne

    {Sous-ensemble}

    est nomin

    est laurat

    Contraintes ensemblistes surassociation

    Les personnes laurates dun prix sont obligatoirement choisies parmi celles qui

    sont nomines pour ce prix

    * *

    * 1

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Contraintes dordonnancement sur

  • 8/3/2019 Diagramme de Classes (1)

    37/62

    37

    Notation

    Ce type de contrainte permet de modliser le cas o pour uneinstance donne, lensemble des instances avec lesquelles elle esten relation doit tre ordonn

    Grand prix Pilote

    {Ordonn}

    est dans

    les points

    Contraintes d ordonnancement surassociation

    Lors dun grand prix au maximum 6 pilotes peuvent tre dans les points

    Ces 6 pilotes sont classs larrive

    0..* 0..6

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Contraintes dexclusion sur

  • 8/3/2019 Diagramme de Classes (1)

    38/62

    38

    Notation

    Ce type de contrainte permet de modliser le cas o pour uneinstance donne dune classe, une seule association prise parmiplusieurs possibles, peut tre valide un instant donn

    Socit Personne

    {Ou - exclusif}

    employ

    employeur

    Contraintes d exclusion surassociation

    Une personne peut tre soit employe par une socit, soit employeurdune socit

    Mais une personne ne peut pas tre la fois employeur et employ

    0..*

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    39/62

    39

    Qualificateur = attribut1, , attributN

    Classe A Classe BQualificateur

    Qualificateur dune association

    Le qualificateur est un attribut ou un ensemble dattributspermettant de partitionner lensemble des instances duneclasse qui sont en relation avec une instance donne

    Le qualificateur permet de restreindre la multiplicit delassociation

    Notation

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Qualificateur dassociation

  • 8/3/2019 Diagramme de Classes (1)

    40/62

    40

    numro

    Universit Salle

    1..*

    Universit Salle0..1

    Une universit possde de une plusieurs salle(s)

    Une salle appartient une et une seule universit

    Une universit possde au plus une salle ayant ce numro

    Une salle appartient une et une seule universit

    Qualificateur dassociationExemples

    possde

    possde

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Qualificateur dassociation

  • 8/3/2019 Diagramme de Classes (1)

    41/62

    41

    agence

    Personne

    Compte

    bancaire

    0..*

    PersonneComptebancaire

    0..1

    Une personne possde de zro plusieurs compte(s) bancaire(s)

    Un compte bancaire appartient une et une seule personne

    Une personne possde au plus un compte bancaire par agence

    Un compte bancaire appartient une et une seule personne

    Qualificateur d associationExemples

    possde

    possde

    Diagramme de Classes/ UML2 A. OubelkacemLPI

  • 8/3/2019 Diagramme de Classes (1)

    42/62

    42

    Classe associative

    Une association peut trematrialise par une classedans une des circonstancessuivantes :

    si lassociation estporteuse dattributs si lassociation se

    matrialise par un objetconcret dans le monderel

    si lassociation est demultiplicit M .. N

    Une classe associative est

    une classe part entire Elle est modlise par un lienen pointill allant de la classevers lassociation concerne

    Classe A Classe B

    Classe associative

    Notation

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Classe associative

  • 8/3/2019 Diagramme de Classes (1)

    43/62

    43

    Classe associativeExemples

    Socit

    Emploi

    Personne

    nom

    prenom

    age

    nom

    numSiret

    adresse

    fonction

    salaire

    1..*

    Etudiant

    Rsultat

    Concours

    nom cole

    datelieu

    nom

    prnomadresse

    note

    1..*1..*

    Diagramme de Classe/ UML2 A. OubelkacemLPI

    Classe associative

  • 8/3/2019 Diagramme de Classes (1)

    44/62

    44

    Classe associativeExemples

    Exemple: Supposons quun dpartement achte des logiciels. Un logiciel

    peut tre achet par un ou plusieurs dpartement(s) diffrentes dates et

    diffrents prix. On prcise laide des cardinalits minimales que chaque

    dpartement a achet au moins un logiciel et que chaque logiciel a t

    achet par au moins un dpartement.

    En plaant lattribut dateachat dans Dpartement ou dans Logiciel, nous exprimons deux choses

    diffrentes, savoir quun dpartement nachte des logiciels qu une seule date ou quun

    logiciel ne peut tre achet qu un seul moment de lanne. Ces deux remarques valent

    galement pour lattribut prix.

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Classe associative

  • 8/3/2019 Diagramme de Classes (1)

    45/62

    45

    Classe associativeExemples

    Exemple2: Dans cet exemple des logiciels sont installs sur des serveurs

    linitiative de dpartements. On dsire savoir la date laquelle un

    dpartement a procd linstallation dun logiciel sur un serveur.

    Le diagramme modlise lassociation laide du symbole de lassociation n-aire. La contraintedunicit apparat explicitement (multiplicit 1 du ct Serveur).

    Association en losange

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Classe associative

  • 8/3/2019 Diagramme de Classes (1)

    46/62

    46

    Classe associativeExemples

    Exemple2: Dans cet exemple des logiciels sont installs sur des serveurs

    sur linitiative de dpartements. On dsire savoir la date laquelle un

    dpartement a procd linstallation dun logiciel sur un serveur.

    Lexemple dcrit la mme association laide dune classe strotype . La contrainte dunicit napparat plus explicitement.

    Association streotyp

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Les diffrents types dassociation

  • 8/3/2019 Diagramme de Classes (1)

    47/62

    47

    Les diffrents types d association

    Il existe plusieurs types dassociation

    LagrgationForme spciale dassociation entre un tout et une partie

    La compositionForme spciale dagrgation o le cycle de vie de la partie est rgi par

    celui du tout LhritageForme spciale dassociation permettant de factoriser lescaractristiques et comportement communs un ensemble de classes

    Lassociation simple

    Ce sont les associations qui ne se rclament daucune des catgoriesprcdemment cites

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Agrgation

  • 8/3/2019 Diagramme de Classes (1)

    48/62

    48

    Agrgation

    Personne Universittudie

    1..* 0..*

    Une agrgation est une association non symtrique dans laquellelune des deux classes joue un rle prpondrant

    Une agrgation est une relation tout-partie entre un agrgat (le tout)et un composant (la partie)

    Lagrgation est reprsente par un losange blanc du ct de lagrgat Le composant peut appartenir simultanment plusieurs agrgats Le cycle de vie des composants nest pas tributaire de celui de

    lagrgat

    Une personne peut tudier dans aucune plusieurs universits

    Une universit peut accueillir de une plusieurs personnes

    Arrt Circuit Autobus1..*

    1Diagramme de Classes/ UML2 A. OubelkacemLPI

    Agrgation

  • 8/3/2019 Diagramme de Classes (1)

    49/62

    49

    Agrgation

    Exemple : lexistence dun copropritaire na de sens que silimmeuble existe. Il ne sagit pas ici dune relation

    composite/composant. La suppression dun objet de type immeuble

    nentranera pas forcment la destruction de ses copropritaires (pour

    ceux qui sont copropritaires dans dautres immeubles).

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Composition

  • 8/3/2019 Diagramme de Classes (1)

    50/62

    50

    Composition

    Une composition est une agrgation part entire La composition est reprsente par un losange noir du ct de lagrgat Le composant ne peut pas appartenir simultanment plusieurs

    agrgats (multiplicit 1 ou 0..1 ct agrgat) Le cycle de vie des composants est tributaire de celui de lagrgat Si la multiplicit est 0..1 ct agrgat, le composant peut ne pas tre

    associ lagrgat immdiatement, mais une fois lassociation effectu lecomposant vit et meurt avec lagrgat

    1..*Universit Salle

    possde

    Une universit est compose de une plusieurs salles

    Une salle nappartient qu une et une seule universit

    Voiture Rouepossde

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Composition

  • 8/3/2019 Diagramme de Classes (1)

    51/62

    51

    Composition

    Exemple: lexemple concerne la Modlisation d un ordinateur qui est compos dun

    cran, dun ou de plusieurs disques et de diffrents priphriques en utilisant une

    agrgation de composition. Les composants (objets des classes Ecran, Disque et

    Periphrique) et les composites (objets de la classe Ordinateur) sont ici considrscomme des pices relles. La destruction dun ordinateur entranera la destruction de

    ses composants.

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Composition : abus de langage !

  • 8/3/2019 Diagramme de Classes (1)

    52/62

    52

    Composition : abus de langage !

    Attention : on parle trs souvent de composition pour dsigner

    une simple association entre deux classes. Cela ce traduit parlexistence dun attribut qui rfrence une (des) instance(s)dune autre classe.

    Personne Compte*

    Une personne possde des comptes mais nest pas compose de comptes

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Gnralisation / Spcialisation

  • 8/3/2019 Diagramme de Classes (1)

    53/62

    53

    Gnralisation / Spcialisation

    Super-classe

    Sous-classe

    Spcialisation

    Gnralisation

    Notation

    La gnralisation /spcialisation est une relationde classification entre uneclasse plus gnrale et une

    classe plus spcialise

    On lappelle aussi relationdhritage ou relation est-

    une-sorte-de

    La gnralisation estreprsente au moyen dune

    flche pointant de la classe laplus spcialise vers laclasse la plus gnrale

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Gnralisation / SpcialisationE l

  • 8/3/2019 Diagramme de Classes (1)

    54/62

    54

    Exemple

    Exemple :

    La classe Compte est unegnralisation des sous-classes CompteASeuil et CompteRemunere .

    La classe

    CompteASeuil est unespcialisation de la classeCompte.

    Compte

    numrosolde

    dbiter

    CompteASeuil

    seuil

    CompteRmunr

    taux

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Gnralisation / SpcialisationE l dh it

  • 8/3/2019 Diagramme de Classes (1)

    55/62

    55

    Exemple dhritage

    Dposer montant

    Retirer montant

    Compte courantNumroSoldeDevise

    Calculer les intrts

    Ligne de crditDposer montant

    Retirer montant

    Compte d'pargneNumroSoldeDevise

    Calculer les intrts

    Montant max de retrait mensuel

    Obtenir titulaire Obtenir titulaireImprimer extrait hebdomadaire Imprimer extrait mensuel

    Compte courant etCompte dpargne

    comme classesspares

    Compte courant

    Ligne de crdit

    Compte d'pargne

    Montant max de retrait mensuel

    Imprimer extrait hebdomadaire Imprimer extrait mensuel

    Dposer montant

    Compte

    NumroSoldeDevise

    Obtenir titulaireRetirer montantCalculer les intrts

    Classes avec

    hritage

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Classe et opration abstraites

  • 8/3/2019 Diagramme de Classes (1)

    56/62

    56

    p

    Une classe abstraite est uneclasse pour laquelle il nest paspossible de crer dinstancesdirectement

    Son nom est crit en italique

    Une opration abstraite duneclasse A est une opration ne

    possdant pas dimplmentationdans A mais qui doitobligatoirement tre implmentedans les sous-classes de ASa signature est crite en italique

    Toute classe contenant au moinsune opration abstraite estabstraite

    Forme gomtrique

    Rectangle

    Dessiner()

    Dessiner()

    Rond

    Dessiner()

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Discriminant sur relation dhritage

  • 8/3/2019 Diagramme de Classes (1)

    57/62

    57

    g

    Personne

    La spcialisation dunesuper-classe peut avoir lieuselon diffrents critressimultans

    Chacun de ces critres estreprsent par une chanede caractres et sappelle

    un discriminant

    Le discriminant estpositionn ct de la

    sous-arborescence quilqualifie

    Homme Femme Etudiant Employ

    sexe travail

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Contraintes sur gnralisation /spcialisation

  • 8/3/2019 Diagramme de Classes (1)

    58/62

    58

    spcialisation

    Il est possible dexprimer deux types de contraintes prdfinies sur les

    sous-classes dune gnralisation:

    La contrainte de compltudePrcise ltat davancement de la classification propose par lagnralisation / spcialisation

    La contrainte de chevauchementContrainte ensembliste sur les instances de la sous-classe vis--visdes instances de la super-classe

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Contrainte de compltude surrelation dhritage

  • 8/3/2019 Diagramme de Classes (1)

    59/62

    59

    relation d hritage

    Personne

    La contrainte de compltudepermet dindiquer si lagnralisation peut tretendue ou non

    {complte} indique que lonne peut plus ajouter de classe larborescence

    {incomplte} indique quelarborescence peut trecomplte ultrieurement

    {complte}

    Homme Femme

    Mammifre

    {incomplte}

    Chat LoupChien

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Contrainte de chevauchement surrelation dhritage

  • 8/3/2019 Diagramme de Classes (1)

    60/62

    60

    relation d hritage

    Personne

    La contrainte dechevauchement apporte desprcisions sur la nature desinstances de la super-classe

    {disjoint} indique quelensemble des instances dessous-classes forment unepartition de la super-classe

    {chevauchement} indiquequil peut exister desinstances qui soient la foisinstance de deux sous-classes

    {disjoint}

    Homme Femme

    Vhicule

    {chevauchement}

    MarinTerrestre

    Diagramme de Classes/ UML2 A. OubelkacemLPI

    Diagramme de classes(Recommandations)

  • 8/3/2019 Diagramme de Classes (1)

    61/62

    61

    (Recommandations)

    Toujours garder lesprit quun diagramme de classe proposeune vision statique des donnes du problme

    Les associations dun diagramme de classes sont statiques,

    mais la cration des liens entre objets est dynamique

    Ne jamais hsiter donner les multiplicits

    Diagramme de Classes/ UML2 A. Oubelkacem

    LPI

    Diagramme de classes(Recommandations)

  • 8/3/2019 Diagramme de Classes (1)

    62/62

    62

    (Recommandations)

    Dans la mesure du possible, viter les discriminants dans lesassociations de type gnralisation / spcialisation

    viter lutilisation des contraintes de chevauchement dans les

    associations de type gnralisation / spcialisation

    Privilgier la dlgation lhritage

    Diagramme de Classes/ UML2 A. Oubelkacem

    LPI