megaplanet
UML :UML :
Diagrammes de ClassesDiagrammes de Classes
Concepts avancésConcepts avancés
Visibilité, Déclaration ...
megaplanet
Concepts à utiliser à bon escient,Concepts à utiliser à bon escient,
uniquementuniquement
lorsque nécessaire......
megaplanet
3
UML ? ... une question de style et de contexteUML ? ... une question de style et de contexte
S'adapter ...S'a...
megaplanet
4
Concepts « avancés »Concepts « avancés »
Descriptions plus préciseDescriptions plus précise
(1) Attributs et ...
megaplanet
5
(1) attributs et opérations(1) attributs et opérations
Visibilité, Portée, Dérivation, …Visibilité, Portée, D...
megaplanet
6
+ # - Visibilité des éléments+ # - Visibilité des éléments
Eviter les dépendances entre classes et paquetages...
megaplanet
7
Déclaration d'attributsDéclaration d'attributs
[/] [[/] [ visibilitévisibilité ]] nomnom [[ :: typetype ] [] ...
megaplanet
8
Déclaration d'opérationsDéclaration d'opérations
[/] [[/] [ visibilitévisibilité ]] nomnom [[ (( paramsparams...
megaplanet
9
Enumérations et Types de donnéesEnumérations et Types de données
<<enumeration>>
Jour
Lundi
Mardi
Mercredi
Je...
megaplanet
10
(2) associations(2) associations
Association uni/bi directionnelleAssociation uni/bi directionnelle
Composit...
megaplanet
11
NavigationNavigation
Client Compte
1
titulaire
Association unidirectionnelle
On ne peut naviguer que dans un...
megaplanet
12
CompositionComposition
Voiture Roue
composition =
cas particulier d’association
+ contraintes décrivant la n...
megaplanet
13
CompositionComposition
Contraintes liées à la composition :
1. Un objet composant ne peut être que dans 1 se...
megaplanet
14
0..1
CompositionComposition
Document
Chapitre Section
Figure
1..* 1..*
0..*
Contraintes liées à la compositi...
megaplanet
15
CompositionComposition
Document
Chapitre Section
Figure
1..* 1..*1
0..*
1..*
Contrainte :
le graphe d'objets...
megaplanet
16
CompositionComposition
Point
x
y
Polygone 3..* Cercle
rayon
1
M1
M0
megaplanet
17
CompositionComposition
: Point
x = 0
y = 0
: Point
x = 0
y = 10
: Point
x = 10
y = 0
: Polygone
c1 : Cercle
...
megaplanet
18
Voiture
Volant : Volant
Roue : Roue [4]
sièges : Siège
[*]
Autres notations pour la CompositionAutres notati...
megaplanet
19
Associations intra vs. inter compositesAssociations intra vs. inter composites
Voiture
Volant
1
Roue 4
*
0.....
megaplanet
20
AggregationAggregation
aggregation =
cas particulier d’association
+ contraintes décrivant la notion d'appar...
megaplanet
21
Composition vs. AggregationComposition vs. Aggregation
OUI
NON
La présence de est parfois
un indice d'incomp...
megaplanet
22
Contraintes prédéfinies sur lesContraintes prédéfinies sur les
associationsassociations
{ ordered } : les él...
megaplanet
23
Classes associativesClasses associatives
Personne Société
employés
* 0..2
Pour associer des attributs et/ou ...
megaplanet
24
Classes associativesClasses associatives
jean
marie
salaire = 1500
xerox
employé
e1
ujf
employé
e2
salaire =...
megaplanet
25
Classes associativesClasses associatives
p1
Emploi>
s1
RAPPEL: Pour une association donnée, un couple d'obje...
megaplanet
26
Classes associativesClasses associatives
Emploi
salaire
Personne Société
employé
1 1
0..2 société*
Ci-dessus...
megaplanet
27
Classes associatives : traductionClasses associatives : traduction
A
rolea(s)
carda cardb
C
roleb(s)
B
A
1 1...
megaplanet
28
Classes associatives : traductionClasses associatives : traduction
Personne
employés
* 0..2
Emploi
sociétés
...
megaplanet
29
Virement
montant
Exemple 1Exemple 1
Compte
compteCrédit
é
*
Virement
montant
*compteDébité
Compte
compteCréd...
megaplanet
30
Virement
montant
Exemple 1Exemple 1
Compte
compteCrédit
é
*
Virement
montant
*compteDébité
Compte
compteCréd...
megaplanet
31
Exemple 2Exemple 2
Joueur
joueurs
* *
Participation
nbDeButs
matchs
M0
paul finale
p1
p2
Situation
possible ...
megaplanet
32
Exemple 2Exemple 2
Joueur
joueurs
* *
Participation
nbDeButs
matchs
M0
paul finale
p1
p2
Situation
impossibl...
megaplanet
33
Exemple 3Exemple 3
Personne
propriétaires
* *
CarteGrise
dateDélivrance
voitures
M0
paul la106
cg1
cg2
Situa...
megaplanet
34
Exemple 3Exemple 3
Personne
propriétaires
* *
CarteGrise
dateDélivrance
voitures
M0
paul la106
cg1
cg2
voitu...
megaplanet
35
Exemple 4Exemple 4
Personne
conjointsDécédés
*
Veuvage
date
montantAssurance
0..1
conjointLaisséVeuf
Ou ?
Pe...
megaplanet
36
Exemple 4Exemple 4
Personne
conjointsDécédés
*
Veuvage
date
montantAssurance
0..1
conjointLaisséVeuf
Personn...
megaplanet
37
Classes associativesClasses associatives
Les classes associatives sont des associations mais aussi des class...
megaplanet
38
Classes associativesClasses associatives
Les classes associatives sont des associations mais aussi des class...
megaplanet
39
Associations qualifiéesAssociations qualifiées
Repertoire Fichiernom
0..1
Un qualifieur est un attribut (ou ...
megaplanet
40
ExempleExemple
Association1901 titre:Titre
*
*
Personne
0..1
*membres <<enumeration>>
Titre
Secretaire
Presi...
megaplanet
41
Cardinalité des Associations QualifiéesCardinalité des Associations Qualifiées
Banque Comptenc
0..1
0 comme ...
megaplanet
42
Attributs de l'associationAttributs de l'association
Repertoire Fichiernom
0..1
Les attributs qualifieurs so...
megaplanet
43
Problème classiqueProblème classique
Repertoire Fichiernom
0..1
Souvent l'index est également un attribut de...
megaplanet
44
Classes associatives : traductionClasses associatives : traduction
Repertoire Fichiernom
0..1*
Repertoire Fi...
megaplanet
45
Synthèse sur les associationsSynthèse sur les associations
<AssociationX
Cardinalités
ClasseA ClasseB
roleA ...
megaplanet
46
(3) généralisation(3) généralisation
Ré-définitionRé-définition
Classes abstraitesClasses abstraites
Méthode...
megaplanet
47
Héritage et redéfinitionHéritage et redéfinition
Une sous classe peut redéfinir une méthode,
à condition tou...
megaplanet
48
Classes et méthodes abstraitesClasses et méthodes abstraites
Une classe abstraite
• ne peut pas être instanc...
megaplanet
49
Classes abstraites du point de vueClasses abstraites du point de vue
ensemblisteensembliste
Figure
surface()...
megaplanet
50
Classification vs. HéritageClassification vs. Héritage
M0
M1
Chien
medor
Chien Animal
medor
<<instanceOf>>
C...
megaplanet
51
Héritage multipleHéritage multiple
Une classe peut hériter de plusieurs super-classes
Interdit dans certains...
megaplanet
52
Points liés à l’héritagePoints liés à l’héritage
et à la classificationet à la classification
Les modèles or...
megaplanet
53
Hypothèses UML par défaultHypothèses UML par défault
Sauf si le contraire est indiqué explicitement,
en UML ...
Prochain SlideShare
Chargement dans…5
×

Uml: Diagrammes de classes -- Concepts avances --- 27

1 521 vues

Publié le

Description des modèles de classes.
Dans cette partie sont présentés des concepts avancés:
- visibilités et autre éléments sur les attributs et opérations
- composition, association qualifiées, class associatives
- héritages avec différentes subtilités

Publié dans : Formation
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 521
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
67
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Uml: Diagrammes de classes -- Concepts avances --- 27

  1. 1. megaplanet UML :UML : Diagrammes de ClassesDiagrammes de Classes Concepts avancésConcepts avancés Visibilité, Déclaration d'attributs et d'opérationsVisibilité, Déclaration d'attributs et d'opérations Navigation, Composition, AggrégationNavigation, Composition, Aggrégation Classe associative, Association qualifiée…Classe associative, Association qualifiée… Classe abstraite, Héritage multipleClasse abstraite, Héritage multiple Classification multiple, dynamiqueClassification multiple, dynamique Concepts à utiliser à bon escient,Concepts à utiliser à bon escient, lorsque nécessaire et uniquement lorsque nécessaire...lorsque nécessaire et uniquement lorsque nécessaire...
  2. 2. megaplanet Concepts à utiliser à bon escient,Concepts à utiliser à bon escient, uniquementuniquement lorsque nécessaire...lorsque nécessaire... 2
  3. 3. megaplanet 3 UML ? ... une question de style et de contexteUML ? ... une question de style et de contexte S'adapter ...S'adapter ... au niveau d'abstractionau niveau d'abstraction au domaine d'applicationau domaine d'application aux outils utilisésaux outils utilisés aux savants et ignorantsaux savants et ignorants ingénierie vs. retro-ingénierieingénierie vs. retro-ingénierie
  4. 4. megaplanet 4 Concepts « avancés »Concepts « avancés » Descriptions plus préciseDescriptions plus précise (1) Attributs et opérations(1) Attributs et opérations (2) Associations(2) Associations (3) Généralisation(3) Généralisation
  5. 5. megaplanet 5 (1) attributs et opérations(1) attributs et opérations Visibilité, Portée, Dérivation, …Visibilité, Portée, Dérivation, … Enumérations et types de donnéesEnumérations et types de données {frozen}, {addonly}, {ordered}, {nonunique}{frozen}, {addonly}, {ordered}, {nonunique}
  6. 6. megaplanet 6 + # - Visibilité des éléments+ # - Visibilité des éléments Eviter les dépendances entre classes et paquetagesEviter les dépendances entre classes et paquetages ++ publicpublic visiblevisible ~~ packagepackage visible dans le package uniquementvisible dans le package uniquement ## 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 Lors de la conception et de l'implémentation, pas avant !Lors de la conception et de l'implémentation, pas avant ! La sémantique exacte dépend du langage de programmation !La sémantique exacte dépend du langage de programmation !
  7. 7. megaplanet 7 Déclaration d'attributsDéclaration d'attributs [/] [[/] [ visibilitévisibilité ]] nomnom [[ :: typetype ] [] [card ordrecard ordre] [] [ == valeur-initialevaleur-initiale ] [] [ {{ propsprops...... }} ]] exemples:exemples: age +age /age - solde : Integer = 0 # age : Integer [0..1] # numsecu : Integer {frozen} # motsClés : String [*] {addOnly} nbPersonne : Integer Adapter le niveau de détail au niveau d'abstractionAdapter le niveau de détail au niveau d'abstraction
  8. 8. megaplanet 8 Déclaration d'opérationsDéclaration d'opérations [/] [[/] [ visibilitévisibilité ]] nomnom [[ (( paramsparams )) ] [] [ :: typetype ] [] [ {{ propsprops...... }} ]] paramsparams :=:= [[ inin || outout|| inoutinout ]] nomnom [[ :: type] [type] [ ==defaut ] [defaut ] [{{ propsprops...... }} ]] /getAge() + getAge() : Integer - updateAge( in date : Date ) : Boolean # getName() : String [0..1] +getAge() : Integer {isQuery} +addProject() : { concurrency = sequential } +addProject() : { concurrency = concurrent } +main( in args : String [*] {ordered} ) Adapter le niveau de détail au niveau d'abstractionAdapter le niveau de détail au niveau d'abstraction
  9. 9. megaplanet 9 Enumérations et Types de donnéesEnumérations et Types de données <<enumeration>> Jour Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche <<enumeration>> Titre Secretaire President Tresorier VicePresident Membre ExempleExemple d’utilisationd’utilisation nom : String joursDeReunion : Jour[*] dateDeCreation : Date Association1901 <<datatype>> Date compare() jour() mois() année() x : integer y : integer <<datatype>> Point <<datatype>> GeoLocation Utilisable comme type d’attributsUtilisable comme type d’attributs Valeurs (pas d’identité)Valeurs (pas d’identité) Type de données typiquementType de données typiquement définis dans des « librairies »définis dans des « librairies »
  10. 10. megaplanet 10 (2) associations(2) associations Association uni/bi directionnelleAssociation uni/bi directionnelle Composition et AggrégationComposition et Aggrégation {frozen}, {addonly}, {ordered}, {nonunique}{frozen}, {addonly}, {ordered}, {nonunique} Classes associativesClasses associatives Associations qualifiéesAssociations qualifiées
  11. 11. megaplanet 11 NavigationNavigation Client Compte 1 titulaire Association unidirectionnelle On ne peut naviguer que dans un sens A priori, que dans les diagrammes de spécifications et d'implémentation En cas de doute, ne pas mettre de flêche !!! * UML2.0
  12. 12. megaplanet 12 CompositionComposition Voiture Roue composition = cas particulier d’association + contraintes décrivant la notion de "composant"... 4 Pneu Jante 1 1 Notion intuitive de "composants" et de "composites"
  13. 13. megaplanet 13 CompositionComposition Contraintes liées à la composition : 1. Un objet composant ne peut être que dans 1 seul objet composite 2. Un objet composant n’existe pas sans son objet composite 3. Si un objet composite est détruit, ses composants aussi Voiture Roue 4 Pneu Jante 1 1 Dépend de la situation modélisée ! (Ex: vente de voitures vs. casse)
  14. 14. megaplanet 14 0..1 CompositionComposition Document Chapitre Section Figure 1..* 1..* 0..* Contraintes liées à la composition : 1. Un objet composant ne peut être que dans 1 seul objet composite 2. Un objet composant n’existe pas sans son objet composite 3. Si un objet composite est détruit, ses composants aussi
  15. 15. megaplanet 15 CompositionComposition Document Chapitre Section Figure 1..* 1..*1 0..* 1..* Contrainte : le graphe d'objets forme un arbre (ou une forêt) : document : chapitre : chapitre : section : section : figure : figure : section M1 M0
  16. 16. megaplanet 16 CompositionComposition Point x y Polygone 3..* Cercle rayon 1 M1 M0
  17. 17. megaplanet 17 CompositionComposition : Point x = 0 y = 0 : Point x = 0 y = 10 : Point x = 10 y = 0 : Polygone c1 : Cercle rayon = 5 : Point x = 10 y = 0 Point x y Polygone 3..* Cercle rayon 1 M1 M0
  18. 18. megaplanet 18 Voiture Volant : Volant Roue : Roue [4] sièges : Siège [*] Autres notations pour la CompositionAutres notations pour la Composition Voiture Volant Roue 1 4 Siège * sièges Voiture Volant 1 Roue 4 sièges : Siège *
  19. 19. megaplanet 19 Associations intra vs. inter compositesAssociations intra vs. inter composites Voiture Volant 1 Roue 4 * 0..1 0..1 * Volant Roue Voiture 1 4 Marque * 1 Marque 1 * Exemple
  20. 20. megaplanet 20 AggregationAggregation aggregation = cas particulier d’association + contraintes décrivant la notion d'appartenance... ? Partage possible Pas de concensus sur la signification exacte de l'aggrégation Utiliser avec précautions (ou ne pas utiliser...) Point x y Figure ** Supprimé en UML2.0
  21. 21. megaplanet 21 Composition vs. AggregationComposition vs. Aggregation OUI NON La présence de est parfois un indice d'incompétence :-)
  22. 22. megaplanet 22 Contraintes prédéfinies sur lesContraintes prédéfinies sur les associationsassociations { ordered } : les éléments de la collection sont ordonnés { nonUnique } : répétitions possibles (UML2.0) { frozen } : fixé lors de la création de l ’objet, ne peut pas changer { addOnly } : impossible de supprimer un élément RelevéDe Compte Ligne Opération* {ordered,addOnly} lignes Peut être très utile!
  23. 23. megaplanet 23 Classes associativesClasses associatives Personne Société employés * 0..2 Pour associer des attributs et/ou des méthodes aux associations => classes associatives Emploi salaire augmenter() Le nom de la classe correspond au nom de l’association (problème: il faut choisir entre forme nominale et forme verbale) sociétés
  24. 24. megaplanet 24 Classes associativesClasses associatives jean marie salaire = 1500 xerox employé e1 ujf employé e2 salaire = 700 employé e3 salaire = 1000 Le salaire est une information correspondant • ni à une personne, • ni à une société, mais à un emploi (un couple personne-société). Personne Société employés * 0..2 Emploi salaire augmenter() sociétés M1 M0
  25. 25. megaplanet 25 Classes associativesClasses associatives p1 Emploi> s1 RAPPEL: Pour une association donnée, un couple d'objets ne peut être connectés que par un seul lien correspondant à cette association. (sauf si l'association est décorée par {nonunique} en UML2.0) Emploi> Cette contrainte reste vraie dans le cas où l’association est décrite à partir d ’une classe associative. p1 s1 : Emploi salaire = 1500 : Emploi salaire = 700
  26. 26. megaplanet 26 Classes associativesClasses associatives Emploi salaire Personne Société employé 1 1 0..2 société* Ci-dessus, une personne peut avoir deux emplois dans la même société e2 p1 s1 e1 Personne Société employé * 0..2 Emploi salaire sociétés Ci-dessus, une personne peut avoir deux emplois, mais pas dans la même société p1 s1 e1
  27. 27. megaplanet 27 Classes associatives : traductionClasses associatives : traduction A rolea(s) carda cardb C roleb(s) B A 1 1 BC rolebrolea cardacardb Il ne peut y avoir qu'un objet C entre un objet A et un objet B donné Transformation systèmatique pour revenir aux concepts de base c[s] c[s]
  28. 28. megaplanet 28 Classes associatives : traductionClasses associatives : traduction Personne employés * 0..2 Emploi sociétés Sociét é Personne *1 1 société SociétéEmploi employé 0..2 Il ne peut y avoir qu'un Emploi entre une Personne et une Société emplois emplois
  29. 29. megaplanet 29 Virement montant Exemple 1Exemple 1 Compte compteCrédit é * Virement montant *compteDébité Compte compteCrédit é 11compteDébité * * Ou ? M1 M0 c1 c2 v1 v2 Situation possible ? Peut-on avoir plusieurs virements entre deux comptes ?compteCrédité compteCréditécompteDébité compteDébité
  30. 30. megaplanet 30 Virement montant Exemple 1Exemple 1 Compte compteCrédit é * Virement montant *compteDébité Compte compteCrédit é 11compteDébité * * Il peut y avoir plusieurs virement entre deux comptes donnés M0 c1 c2 v1 v2 Situation valide compteCrédité compteCréditécompteDébité compteDébité M1
  31. 31. megaplanet 31 Exemple 2Exemple 2 Joueur joueurs * * Participation nbDeButs matchs M0 paul finale p1 p2 Situation possible ? match matchjoueur joueur Joueur joueur 1 1 Participation nbDeButs match participations * participations Match * Un joueur peut il avoir plusieurs participations à un match donné ? Match
  32. 32. megaplanet 32 Exemple 2Exemple 2 Joueur joueurs * * Participation nbDeButs matchs M0 paul finale p1 p2 Situation impossible match matchjoueur joueur Joueur Voiture joueur 1 1 Participation nbDeButs match participations * participations Match * Une seule participation à un match donné pour un joueur donné
  33. 33. megaplanet 33 Exemple 3Exemple 3 Personne propriétaires * * CarteGrise dateDélivrance voitures M0 paul la106 cg1 cg2 Situation possible ? voitures voiturespropriétaires propriétaires Personne Voiture propriétaire 1 1 CarteGrise dateDélivrance voiture {ordered, nonUnique} {ordered, nonUnique} carteGrises * carteGrises Voiture
  34. 34. megaplanet 34 Exemple 3Exemple 3 Personne propriétaires * * CarteGrise dateDélivrance voitures M0 paul la106 cg1 cg2 voitures voiturespropriétaires propriétaires Personne Voiture propriétaire 1 1 CarteGrise dateDélivrance voiture {ordered} * {ordered} carteGrises * carteGrises Voiture Situation possible car on garde l'historique et paul peut acheter deux fois la même voiture
  35. 35. megaplanet 35 Exemple 4Exemple 4 Personne conjointsDécédés * Veuvage date montantAssurance 0..1 conjointLaisséVeuf Ou ? Personne 0..1 Veuvage date montantAssurance * conjointDécédéconjointLaisséVeuf 1 1 M0 paul marie v1 v2 Situation possible ? conjointsDécédés conjointsDécédésconjointLaisséVeu f conjointLaisséVeu f Peut on toucher deux fois l'assurance ?
  36. 36. megaplanet 36 Exemple 4Exemple 4 Personne conjointsDécédés * Veuvage date montantAssurance 0..1 conjointLaisséVeuf Personne 0..1 Veuvage date montantAssurance * conjointDécédéconjointLaisséVeuf 1 1 M0 paul marie v1 v2 Situation illégale conjointsDécédés conjointsDécédésconjointLaisséVeu f conjointLaisséVeu f Les deux solutions sont valides car la cardinalité 0..1 interdit cette situation de toute façon (cas particulier) Ou
  37. 37. megaplanet 37 Classes associativesClasses associatives Les classes associatives sont des associations mais aussi des classes. Personne Société employés * Emploi salaire augmenter() sociétés 0..2 FicheDePaye * {ordered} Ajouter les notions de fiches de payes, de supervision et d’évaluation
  38. 38. megaplanet 38 Classes associativesClasses associatives Les classes associatives sont des associations mais aussi des classes. Personne Société employés * Emploi salaire augmenter() sociétés 0..2 FicheDePaye * {ordered} responsable 0..1 subordonnés * Supervision Evaluation *
  39. 39. megaplanet 39 Associations qualifiéesAssociations qualifiées Repertoire Fichiernom 0..1 Un qualifieur est un attribut (ou un ensemble d'attributs) dont la valeur sert à déterminer l'ensemble des instances associées à une instance via une association. "Pour un répertoire, à un nom donné on associe qu'un fichier (ou 0 s'il existe aucun fichier de ce nom dans ce répertoire)." Repertoire Fichier * Correspond à la notion intuitive d'index absente ci-dessous
  40. 40. megaplanet 40 ExempleExemple Association1901 titre:Titre * * Personne 0..1 *membres <<enumeration>> Titre Secretaire President Tresorier Tresorier President Secretaire joe sylvia ahmed fred ass1 membres membres ass2 President
  41. 41. megaplanet 41 Cardinalité des Associations QualifiéesCardinalité des Associations Qualifiées Banque Comptenc 0..1 0 comme cardinalité minimale, sauf si le domaine de l'attribut qualifieur est fini et toutes les valeurs ont une image. Cas classique: cardinalité 0..1 Banque Employetitre ** Cas plus rare: cardinalité * (pas de contrainte particulière exprimée) Echiquier Case nl : NumLigne nc : NumCol 11 Cas plus rare: cardinalité 1 (généralement c'est une erreur)
  42. 42. megaplanet 42 Attributs de l'associationAttributs de l'association Repertoire Fichiernom 0..1 Les attributs qualifieurs sont des attributs de l'association, pas de la classe Exemple liens "hard" en Unix: un fichier peut correspondre à des noms différents dans des repertoires différents * r1 r2 r2 f1 f2 nom="a" nom="b" nom="f"
  43. 43. megaplanet 43 Problème classiqueProblème classique Repertoire Fichiernom 0..1 Souvent l'index est également un attribut de classe indexée Solution correcte: 1 /nom Le nom du fichier correspond au nom qu'a le fichier dans le répertoire 2 erreurs communes: Repertoire Fichiernom 11 nom Repertoire Fichiernom 11 nom
  44. 44. megaplanet 44 Classes associatives : traductionClasses associatives : traduction Repertoire Fichiernom 0..1* Repertoire Fichier nom ** Contient Contient Transformation systèmatique pour revenir aux concepts de base Un répertoire contient 0 ou 1 fichier pour un nom donné Les attributs du qualifieur sont des attributs de l'association
  45. 45. megaplanet 45 Synthèse sur les associationsSynthèse sur les associations <AssociationX Cardinalités ClasseA ClasseB roleA 0..* attributZ {frozen} Nom de rôle sens de lecture AssociationX Contrainte Navigation Classe associative Composition (ou aggregation ) Nom d ’association x : string
  46. 46. megaplanet 46 (3) généralisation(3) généralisation Ré-définitionRé-définition Classes abstraitesClasses abstraites Méthodes abstaitesMéthodes abstaites Héritage simple vs. multipleHéritage simple vs. multiple Classification simple vs. multipleClassification simple vs. multiple Classification statique vs. dynamiqueClassification statique vs. dynamique
  47. 47. megaplanet 47 Héritage et redéfinitionHéritage et redéfinition Une sous classe peut redéfinir une méthode, à condition toutefois de rester compatible avec la définition originale Figure surface() déplacer() Cercle surface() Polygone surface() Carré surface()
  48. 48. megaplanet 48 Classes et méthodes abstraitesClasses et méthodes abstraites Une classe abstraite • ne peut pas être instanciée • utile pour définir un comportement abstrait • peut contenir des méthodes abstraites Un méthode abstraite • doit être définie dans une sous classe • est dans un classe abstraite Figure surface() déplacer() Cercle surface() Polygone surface() Carré surface() Figure {abstract} surface() {abstract} déplacer() Figure surface() déplacer() Notations équivalentes Triangle surface()
  49. 49. megaplanet 49 Classes abstraites du point de vueClasses abstraites du point de vue ensemblisteensembliste Figure surface() déplacer() Cercle surface() Polygone surface() Figures Cercles Polygones Carré surface() Triangle surface() Triangles Carrés c1 c2 c3 c4 t1 t2 ca1 ca2 M0M1
  50. 50. megaplanet 50 Classification vs. HéritageClassification vs. Héritage M0 M1 Chien medor Chien Animal medor <<instanceOf>> Classification Héritage/Spécialisation coco
  51. 51. megaplanet 51 Héritage multipleHéritage multiple Une classe peut hériter de plusieurs super-classes Interdit dans certains langages de programmation (p.e. Java et C#) Chauffage Appareil É lectrique Chauffage É lectriquePoel Appareil MicroOndes Appareils Chauffages electriques Chauffage Appareils électriques Poels Micro ondes M0M1
  52. 52. megaplanet 52 Points liés à l’héritagePoints liés à l’héritage et à la classificationet à la classification Les modèles orientés-objets ne font pas tous les mêmes hypothèses Héritage simple vs. héritage multiple Une classe peut elle hériter de plusieurs classes ? Classification simple vs. classification multiple Un objet peut-il être simultanément instance de plusieurs classes? Classification statique vs. classification dynamique Un objet peut-il changer de classe pendant l’exécution ?
  53. 53. megaplanet 53 Hypothèses UML par défaultHypothèses UML par défault Sauf si le contraire est indiqué explicitement, en UML les hypothèses par défaut sont : Héritage multiple une classe peut hériter de plusieurs classes Classification simple un objet est instance d’une seule classe Classification statique un objet est créé à partir d’une classe donnée et n’en change pas

×