Documente Academic
Documente Profesional
Documente Cultură
AU 2011/2012
LPI
A. Oubelkacem
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
LPI A. Oubelkacem
2
Diagramme de classes
Apport en grande partie de la mthode OMT (Rumbaugh) Sapparente un diagramme entit-association (MERISE). Il prsente les diffrents objets (classes) du systme ainsi que les liens entre ces objets (associations) Diagramme le plus important dans une modlisation objet
LPI
A. Oubelkacem
Diagramme de classes
Objectifs Dterminer les donnes qui seront manipules par le systme Ces donnes sont organises en classes Donner la structure statique de ces donnes Ce diagramme permet de dcrire la structure interne de chacune des classes Reprsenter les relations statiques existant entre les diffrentes donnes du systme La navigation parmi les classes est rendue possible par lexistence dassociations qui les unissent
Faire abstraction des aspects temporels et dynamiques de la modlisation. Seul laspect statique compte, la dynamique est prise en charge par dautres modles
Diagramme de Classes/ UML2 LPI A. Oubelkacem
4
Le diagramme de classes est un diagramme entits-associations dcrivant les diffrentes classes, leur structure et les associations statiques les unissant
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 terme dattributs et doprations Il permet de reprsenter les associations statiques entre les classes, mais ne dcrit pas comment les liens effectifs entre les instances sont effectus
LPI A. Oubelkacem
5
Diagramme de classes
Exemple
Client
1 *
possde
0..1
CompteCourant
1 souscrit 0..1
achte * Actions
LPI
A. Oubelkacem
Classe (Dfinition)
Une classe est une abstraction de choses du monde rel possdant des caractristiques et des comportements communs
La classe est la fabrique, le moule, partir du quel on fabrique les instances (les objets) Seules les caractristiques pertinentes pour le problme tudi entrent dans la composition de la classe
LPI
A. Oubelkacem
Classe
Abstraction
Abstraction
Chien
age pedigree courir() aboyer() Diagramme de Classes/ UML2 LPI
Personne
age nationalit se promener() crier() A. Oubelkacem
8
Classe (Notation)
Une classe est reprsente par un rectangle dcoup en 3 parties Sont prsents :
le nom de la classe la liste de ses attributs la liste de ses oprations
Notation
LPI
A. Oubelkacem
Nom de la classe
Le nom de la classe peut tre prcd dun strotype qualifiant le type de la classe Le nom de la classe est prfix par un nom de paquetage si la classe est externe au paquetage courant Le nom dune classe abstraite est donn en Italique
LPI
Crditer() Dbiter()
A. Oubelkacem 10
Attribut de la classe (Dfinition et notation) Un attribut est une caractristique intrinsque partage par tous les objets dune classe
Lattribut possde un nom unique dans la classe On peut associer lattribut le type des valeurs quil peut prendre On peut donner une valeur initiale lattribut
Notation
<< Strotype >> Nom paquetage :: Nom classe
nomAttribut1 : typeAttribut1 = valeurInitiale1 nomAttributN : typeAttributN = valeurInitialeN
LPI
A. Oubelkacem
11
Attribut de la classe
Recommandations pour trouver les attributs
Les 3 rgles dor de lattribut : Eliminer les attributs caractrisant une autre classe ex : lattribut nom client dans la classe compteBancaire Se mfier des attributs multi-valus, ils cachent souvent euxmmes une classe ex : lattribut enfants dans la classe Personne Se mfier des attributs structurs, ils cachent souvent euxmmes une classe ex : lattribut Adresse dans une classe Personne
LPI
A. Oubelkacem 12
Opration de la classe (Dfinition et notation) Une opration est un service que propose une classe sur son interface
Lopration possde un nom pas forcment unique dans la classe On peut associer lopration ses arguments On peut associer lopration son type de retour
nomOpration1 (nomArg1 : TypeArg1 = valeurParDfaut1, ...) : typeRetour1 nomOprationN (nomArgN : TypeArgN = valeurParDfautN, ...) : typeRetourN
LPI
A. Oubelkacem
13
Opration de la classe
Recommandations pour trouver les oprations
Ne donner les informations sur les arguments et le type de retour quen phase de Conception Lorsquune classe possde de trs nombreuses oprations se poser la question du dcoupage de la classe
LPI
A. Oubelkacem
14
Exemple de classe
Compte
numero solde effectuerVirement() Accesseurs getSolde() setSolde() getNumero() setNumero()
Diagramme de Classes/ UML2 LPI A. Oubelkacem
15
Notation
Nom Classe +Attribut public #Attribut protg -Attribut priv Attribut de classe /Attribut driv +Opration publique() #Opration protge() -Opration prive() Opration de classe()
A. Oubelkacem
16
Association (Dfinition)
Une association est une abstraction de liens qui peuvent exister entre les instances de plusieurs classes
Dans le monde rel, les objets sont lis physiquement ou fonctionnellement les uns avec les autres Ces liens entre objets se traduisent au niveau des classes par des associations Une association traduit donc une relation structurelle statique entre deux ou plusieurs classes
LPI A. Oubelkacem
17
Association
Abstraction
Abstraction
Chien
ge race courir() aboyer() Diagramme de Classes/ UML2 LPI
Abstraction
Personne
ge nationalit se promener() crier() A. Oubelkacem 18
Association (Notation)
Une association est reprsente au moyen dun trait orient reliant chacune des classes concernes Il est possible de nommer lassociation et de prciser les rles tenus par chaque classe
Notation Client
achte
Voiture
Personne
salari employeur
Socit
LPI
A. Oubelkacem 19
Nom de lassociation
Le nom de lassociation est en gnral une forme verbale active ou passive qui dcrit globalement le lien
Notation
Client
Le nom doit apparatre sur lassociation, mais ne doit pas tre rattach lune des extrmit
achte
Voiture
LPI
A. Oubelkacem
20
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
LPI
A. Oubelkacem 21
Nom de lassociation
Terminologie
Le diagramme de classe:
connecter
Connexion()
Diagramme de Classes/ UML2 LPI A. Oubelkacem 22
Rles de lassociation
Le rle permet de dcrire, laide dun nom, comment une classe peroit une autre classe au travers de lassociation Un rle doit figurer lextrmit de lassociation quil qualifie Les rles sont facultatifs Lassociation peut faire figurer les deux, un seul ou aucun des rles
Diagramme de Classes/ UML2 LPI A. Oubelkacem 23
Notation
Personne salari
employeur
Socit
Lutilisation du nom et des rles dune association nest pas exclusif Cependant, les conjointement deux notations sont rarement utilises
Lusage du nom et des rles nest pas obligatoire, mais il savre indispensable si deux objets sont relis par plusieurs associations ou si une association est rflexive
LPI
A. Oubelkacem
24
Association rflexive
Une association peut mettre en jeux deux classes distinctes Mais, elle peut aussi apparatre sur une seule et mme classe Dans ce cas prcis, lassociation est dite rflexive
Client
achte
Voiture
Personne
LPI
A. Oubelkacem 25
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 et serveurs est rflexive, car elle porte sur la mme classe : Poste_travail. Un poste client est reli un seul serveur
LPI
A. Oubelkacem 27
Navigabilit de lassociation
La navigabilit dune association permet de dfinir dans quel sens lassociation peut tre parcourue La navigabilit dune association est modlise par une flche sur lextrmit pouvant tre atteinte par navigation La navigabilit peut tre bidirectionnelle Labsence de flche sur les deux extrmits signifie que lassociation est bidirectionnelle
LPI
Notation
Personne
a vu
Film
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
Client
achte
Voiture
A. Oubelkacem
28
Navigabilit de lassociation Par dfaut, une association UML est navigable dans les deux sens. 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.
LPI
A. Oubelkacem
29
Multiplicits de lassociation
La cardinalit dun ensemble est le nombre dlments de cet ensemble La multiplicit est la spcification des valeurs de cardinalit admissibles pour un ensemble La multiplicit est associe une extrmit de lassociation et indique combien dinstances de la classe considre peuvent tre lies une instance de lautre classe
LPI
Notation
Personne
1 ..* emploie 1
Socit
Une socit emploie de une plusieurs personnes Une personne est employe par une seule socit
Client
*
achte 0..*
Voiture
Un client achte zro plusieurs voitures Une voiture peut tre achete par un client au plus
A. Oubelkacem
30
Multiplicits de lassociation
La multiplicit est une spcification respectant les conventions suivantes :
1 0..1 N M..N 0..* 1..* N..* : un et un seul (notation facultative) : zro ou un : exactement N (N: entier naturel) : de M N (deux entiers naturels) : de zro plusieurs : de un plusieurs : N ou plus (N: entier naturel)
Cardinalits/multiplicits
LPI
A. Oubelkacem
31
EXEMPLES
ASSOCIATION UN UN
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 le nom du responsable ; il est suivi par un seul tudiant.
LPI
A. Oubelkacem
32
EXEMPLES
ASSOCIATION UN PLUSIEURS 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 .
LPI
A. Oubelkacem
33
EXEMPLES
ASSOCIATION PLUSIEURS PLUSIEURS sans attribut
cet exemple, chaque tudiant met un ou plusieurs voeux concernant des stages. Un stage peut nintresser aucun tudiant ou, au contraire, en attirer plusieurs.
Exemple3: Dans
LPI
A. Oubelkacem
34
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}
LPI
A. Oubelkacem 35
Notation
est nomin {Sous-ensemble}
*
Prix
Personne
est laurat
Les personnes laurates dun prix sont obligatoirement choisies parmi celles qui sont nomines pour ce prix
LPI
A. Oubelkacem 36
Notation
0..* est dans les points
{Ordonn}
0..6
Grand prix
Pilote
Lors dun grand prix au maximum 6 pilotes peuvent tre dans les points Ces 6 pilotes sont classs larrive
LPI
A. Oubelkacem 37
Notation
employ {Ou - exclusif} employeur
0..*
Socit
Personne
Une personne peut tre soit employe par une socit, soit employeur dune socit Mais une personne ne peut pas tre la fois employeur et employ
LPI
A. Oubelkacem 38
Le qualificateur est un attribut ou un ensemble dattributs permettant de partitionner lensemble des instances dune classe qui sont en relation avec une instance donne Le qualificateur permet de restreindre la multiplicit de lassociation
Notation
Classe A
Qualificateur
Classe B
LPI
A. Oubelkacem
39
Qualificateur dassociation
Exemples
Universit
1..*
possde
Salle
Une universit possde de une plusieurs salle(s) Une salle appartient une et une seule universit
Universit
numro
0..1
possde
Salle
Une universit possde au plus une salle ayant ce numro Une salle appartient une et une seule universit
LPI
A. Oubelkacem 40
Qualificateur dassociation
Exemples
Personne
0..*
possde
Compte bancaire
Une personne possde de zro plusieurs compte(s) bancaire(s) Un compte bancaire appartient une et une seule personne
possde
Personne
agence
0..1
Compte bancaire
Une personne possde au plus un compte bancaire par agence Un compte bancaire appartient une et une seule personne
LPI
A. Oubelkacem 41
Classe associative
Une association peut tre matrialise par une classe dans une des circonstances suivantes : si lassociation est porteuse dattributs si lassociation se matrialise par un objet concret dans le monde rel si lassociation est de multiplicit M .. N Une classe associative est une classe part entire Elle est modlise par un lien en pointill allant de la classe vers lassociation concerne
Diagramme de Classes/ UML2
Notation
Classe A
Classe B
Classe associative
LPI
A. Oubelkacem
42
Classe associative
Exemples
Socit
nom numSiret adresse
1..* Emploi
fonction salaire
Personne
nom prenom age
Etudiant
nom prnom adresse
1..* Rsultat
note
1..*
Concours
nom cole date lieu
LPI
A. Oubelkacem 43
Classe associative
Exemples
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 LPI A. Oubelkacem
44
Classe associative
Exemples
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.
Association en losange
Classe associative
Exemples
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.
Association streotyp
Lexemple dcrit la mme association laide dune classe strotype <<Association ternaire>>. La contrainte dunicit napparat plus explicitement.
Diagramme de Classes/ UML2 LPI A. Oubelkacem 46
Il existe plusieurs types dassociation Lagrgation Forme spciale dassociation entre un tout et une partie La composition Forme spciale dagrgation o le cycle de vie de la partie est rgi par celui du tout Lhritage Forme spciale dassociation permettant de factoriser les caractristiques et comportement communs un ensemble de classes Lassociation simple Ce sont les associations qui ne se rclament daucune des catgories prcdemment cites
LPI
A. Oubelkacem 47
Agrgation
Une agrgation est une association non symtrique dans laquelle lune 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
Personne
Universit
Une personne peut tudier dans aucune plusieurs universits Une universit peut accueillir de une plusieurs personnes
Arrt
Diagramme de Classes/ UML2
1..*
LPI
Circuit Autobus 1
A. Oubelkacem
48
Agrgation
LPI
A. Oubelkacem 49
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 le composant vit et meurt avec lagrgat
Universit
possde
1..*
Salle
Une universit est compose de une plusieurs salles Une salle nappartient qu une et une seule universit
Voiture
Diagramme de Classes/ UML2
possde
Roue
A. Oubelkacem 50
LPI
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 considrs comme des pices relles. La destruction dun ordinateur entranera la destruction de ses composants.
LPI
A. Oubelkacem
51
Attention : on parle trs souvent de composition pour dsigner une simple association entre deux classes. Cela ce traduit par lexistence dun attribut qui rfrence une (des) instance(s) dune autre classe.
Personne
Compte
Une personne possde des comptes mais nest pas compose de comptes
LPI
A. Oubelkacem 52
Gnralisation / Spcialisation
La gnralisation / spcialisation est une relation de classification entre une classe plus gnrale et une classe plus spcialise On lappelle aussi relation dhritage ou relation estune-sorte-de La gnralisation est reprsente au moyen dune flche pointant de la classe la plus spcialise vers la classe la plus gnrale
Notation
Super-classe
Spcialisation
Gnralisation
Sous-classe
LPI
A. Oubelkacem
53
Gnralisation / Spcialisation
Exemple
Exemple :
La classe Compte est une gnralisation des sousclasses CompteASeuil et CompteRemunere . La classe CompteASeuil est une spcialisation de la classe Compte.
Compte
numro solde dbiter
CompteASeuil seuil
CompteRmunr taux
LPI
A. Oubelkacem 54
Gnralisation / Spcialisation
Exemple dhritage
Compte courant Numro Solde Devise Ligne de crdit Dposer montant Retirer montant Calculer les intrts Obtenir titulaire Imprimer extrait hebdomadaire Compte d'pargne Numro Solde Devise Montant max de retrait mensuel Dposer montant Retirer montant Calculer les intrts Obtenir titulaire Imprimer extrait mensuel
Compte Numro Solde Devise Dposer montant Obtenir titulaire Retirer montant Calculer les intrts
LPI
A. Oubelkacem 55
Rectangle Dessiner()
Rond Dessiner()
A. Oubelkacem
56
sexe
travail
Femme
Etudiant
Employ
57
LPI
A. Oubelkacem
Il est possible dexprimer deux types de contraintes prdfinies sur les sous-classes dune gnralisation: La contrainte de compltude Prcise ltat davancement de la classification propose par la gnralisation / spcialisation La contrainte de chevauchement Contrainte ensembliste sur les instances de la sous-classe vis--vis des instances de la super-classe
LPI
A. Oubelkacem 58
Personne
{complte}
Homme
Femme
Mammifre
{incomplte}
Chat
Loup A. Oubelkacem
59
Personne
{disjoint}
Homme
Femme
Vhicule
{chevauchement}
Terrestre
Marin A. Oubelkacem
60
Toujours garder lesprit quun diagramme de classe propose une 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
LPI
A. Oubelkacem
61
Dans la mesure du possible, viter les discriminants dans les associations de type gnralisation / spcialisation viter lutilisation des contraintes de chevauchement dans les associations de type gnralisation / spcialisation Privilgier la dlgation lhritage
LPI
A. Oubelkacem
62