1 diagramme de classes introduction notions de classe relations entre classes interfaces diagramme...

75
1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

Upload: gregory-mayer

Post on 04-Apr-2015

113 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

1

Diagramme de classes

• Introduction

• Notions de classe

• Relations entre classes

• Interfaces

• Diagramme d’objets

Page 2: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

2

Introduction

- La construction du diagramme de classes constitue l’objectif de toute démarche de modélisation « objet »- Le diagramme de cas d’utilisation montre un système du point de vue des acteurs, - Le diagramme de classes en montre la structure interne du système. - Il fournit une représentation abstraite des objets du système qui vont interagir pour réaliser les cas d’utilisation. - Le diagramme de classes modélise les concepts du domaine d’application ainsi que les concepts internes créés dans le cadre de l’implémentation d’une application.

Page 3: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

3

Diagramme de classes

• Introduction

• Notions de classe

• Relations entre classes

• Interfaces

• Diagramme d’objets

Page 4: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

4

Notions de classe

• Classe et instance de classe• Caractéristiques d’une classe• Représentation graphique• Encapsulation, visibilité, interface• Nom d’une classe• Les attributs• Les opérations• Classe active

Page 5: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

5

Classe et instance de classe- Une instance est une réalisation concrète d’un concept abstrait.

Par exemple : - le téléphone de Jules est une instance du concept abstrait Téléphone - l’amitié qui lie Jean et Marie est une instance du concept abstrait Amitié

- Une classe est un concept abstrait représentant des éléments variés comme : • des éléments concrets (ex : des avions), • des éléments abstraits ( ex : des commandes de marchandises ou services), • des composants d’une application (ex : les boutons des boîtes de dialogue), • des structures informatiques (ex : des tables de hachage), • des éléments comportementaux (ex : des tâches), etc.

Tout système orienté objet est organisé autour des classes.

Une classe est la description formelle d’un ensemble d’objets ayant en commun:• une sémantique (sens) • des caractéristiques (propriétés et comportements).

Page 6: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

6

Objet: instance de classe-Un objet est une instance d’une classe. C’est une entité discrète dotée :

d’une identité d’un état d’un comportement

Les objets sont des éléments individuels d’un système en cours d’exécution.

Page 7: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

7

Notions de classe

• Classe et instance de classe• Caractéristiques d’une classe• Représentation graphique• Encapsulation, visibilité, interface• Nom d’une classe• Les attributs• Les opérations• Classe active

Page 8: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

8

Caractéristiques d’une classe

• État d’un objet 

• Comportement d’un objet

Page 9: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

9

État d’un objet

• Attributs et Terminaisons d’associations décrivent l’état d’un objet. • Les attributs reçoivent des données dépourvues de sémantique• Les associations sont utilisées pour connecter les classes• La terminaison de l’association (du côté de la classe cible) est une propriété de la classe • Les attributs prennent des valeurs lorsque la classe est instanciée. • L’instance d’une association est appelée un lien.

Page 10: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

10

Caractéristiques d’une classe

• État d’un objet 

• Comportement d’un objet

Page 11: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

11

Comportement d’un objet

• Les opérations décrivent les éléments individuels d’un comportement que l’on peut invoquer. Ce sont des fonctions qui peuvent:

• prendre des valeurs en entrée • modifier les attributs • produire des résultats

• Une opération est la spécification (i.e. déclaration) d’une méthode. Par abus de langage (impérialisme Java!) les opérations sont parfois appelées méthodes. Il y a donc une ambiguïté sur le terme méthode.

• Les attributs, les terminaisons d’associations et les opérations constituent donc les caractéristiques d’une classe (et de ses instances).

Page 12: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

12

Notions de classe

• Classe et instance de classe• Caractéristiques d’une classe• Représentation graphique• Encapsulation, visibilité, interface• Nom d’une classe• Les attributs• Les opérations• Classe active

Page 13: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

13

Représentation graphique

Une classe est un « classificateur ». Elle est représentée par un rectangle divisé en trois à cinq compartiments:

• Le premier indique le nom de la classe • Le deuxième ses attributs• Le troisième ses opérations

Avec éventuellement:

• Un compartiment des responsabilités pour énumérer l’ensemble de tâches devant être assurées par la classe mais pour lesquelles on ne dispose pas encore assez d’informations. • Un compartiment des exceptions pour énumérer les situations exceptionnelles devant être gérées par la classe.

Page 14: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

14

Représentation graphique

Représentation UML d’une classe

Page 15: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

15

Notions de classe

• Classe et instance de classe• Caractéristiques d’une classe• Représentation graphique• Encapsulation, visibilité, interface• Nom d’une classe• Les attributs• Les opérations• Classe active

Page 16: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

16

Encapsulation visibilité interface

L’encapsulation: mécanisme consistant à rassembler les données et les opérations au sein d’une structure en cachant l’implémentation de l’objet,

Interdit l’accès aux données par un autre moyen que les services proposés. Les services accessibles (offerts) aux utilisateurs de l’objet définissent l’interface de l’objet (sa vue externe). • permet donc de garantir l’intégrité des données contenues dans l’objet.• permet de définir des niveaux de visibilité des éléments d’un conteneur.

La visibilité déclare la possibilité pour un élément de modélisation de référencer un élément qui se trouve dans un espace de noms différents de celui de l’élément qui établit la référence. Elle fait partie de la relation entre un élément et le conteneur qui l’héberge, ce dernier pouvant être un paquetage, une classe ou un autre espace de noms. Il existe quatre visibilités prédéfinies.

Page 17: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

17

Visibilité

• Public ou + : tout élément qui peut voir le conteneur peut également voir l’élément indiqué.

• Protected ou # : seul un élément situé dans le conteneur ou un de ses descendants peut voir l’élément indiqué.

• Private ou - : seul un élément situé dans le conteneur peut voir l’élément.

• Package ou ou rien : ∼seul un élément déclaré dans le même paquetage peut voir l’élément.

Page 18: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

18

Visibilité

Page 19: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

19

Relations de visibilité

Page 20: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

20

Notions de classe

• Classe et instance de classe• Caractéristiques d’une classe• Représentation graphique• Encapsulation, visibilité, interface• Nom d’une classe• Les attributs• Les opérations• Classe active

Page 21: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

21

Nom d’une classe

• Le nom de la classe doit évoquer le concept décrit par la classe. • Il commence par une majuscule. • On peut ajouter des informations comme:

• le nom de l’auteur de la modélisation, • la date, • etc.

Pour indiquer qu’une classe est abstraite, il faut ajouter le stéréotype <<abstract>>.

La syntaxe de base de la déclaration d’un nom d’une classe est la suivante : [ <Nom_du_paquetage_1>:: ... ::<Nom_du_paquetage_N> ] <Nom_de_la_classe> [ { [abstract], [<auteur>], [<date>], ... } ]

Page 22: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

22

Notions de classe

• Classe et instance de classe• Caractéristiques d’une classe• Représentation graphique• Encapsulation, visibilité, interface• Nom d’une classe• Les attributs• Les opérations• Classe active

Page 23: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

23

Les attributs

• Chaque instance d’une classe possède sa propre copie des attributs de la classe. Les valeurs des attributs peuvent donc différer d’un objet à un autre.

• Il est parfois nécessaire de définir un attribut de classe (static en Java ou en C++) qui garde une valeur unique et partagée par toutes les instances de la classe.

• Les instances ont accès à cet attribut mais n’en possèdent pas une copie.

• Un attribut de classe n’est donc pas une propriété d’une instance mais une propriété de la classe

• Graphiquement, un attribut de classe est souligné.

Page 24: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

24

Les attributs

Page 25: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

25

Attributs dérivés• Les attributs dérivés peuvent être calculés à partir d’autres attributs et de formules de calcul. •Lors de la conception, un attribut dérivé peut être utilisé comme marqueur pour déterminer les règles à lui appliquer.• Les attributs dérivés sont symbolisés par l’ajout d’un « / » devant leur nom.

Page 26: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

26

Notions de classe

• Classe et instance de classe• Caractéristiques d’une classe• Représentation graphique• Encapsulation, visibilité, interface• Nom d’une classe• Les attributs• Les opérations• Classe active

Page 27: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

27

Les opérations

• Dans une classe, une opération (même nom et même types de paramètres) doit être unique. • Quand le nom d’une opération apparaît plusieurs fois avec des paramètres différents, on dit que l’opération est surchargée. • La déclaration d’une opération contient les types des paramètres et le type de la valeur de retour, sa syntaxe est la suivante :

<visibilité> <nom_opération> ([<paramètre_1>, ... , <paramètre_N>]) : [<type_renvoyé>] [{<propriétés>}]

Page 28: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

28

Paramètre d’opération La syntaxe de définition d’un paramètre (<paramètre>) est la suivante :

[<direction>] <nom_paramètre>:<type> ['['<multiplicité>']'] [=<valeur_par_défaut>]

La direction peut prendre l’une des valeurs suivante : in

 : Paramètre d’entrée passé par valeur. Les modifications du paramètre ne sont pas disponibles pour l’appelant. C’est le comportement par défaut.

out : Paramètre de sortie uniquement. Il n’y a pas de valeur d’entrée et la valeur finale est disponible pour l’appelant.

inout : Paramètre d’entrée/sortie. La valeur finale est disponible pour l’appelant.

Le type du paramètre (<type>) peut être

• un nom de classe, • un nom d’interface,• un type de donné prédéfini.

Page 29: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

29

Opération de classe• Comme pour les attributs de classe, il est possible de déclarer des opérations de classe. • Une opération de classe ne peut manipuler que des attributs de classe et ses propres paramètres. • Cette méthode n’a pas accès aux autres attributs• Graphiquement, une opération de classe est soulignée.

Page 30: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

30

Notions de classe

• Classe et instance de classe• Caractéristiques d’une classe• Représentation graphique• Encapsulation, visibilité, interface• Nom d’une classe• Les attributs• Les opérations• Classe active

Page 31: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

31

Classe active

• Une classe est passive par défaut, elle sauvegarde les données et offre des services aux autres.

• Une classe active initie et contrôle le flux d’activités.

• Graphiquement, une classe active est représentée comme une classe standard dont les lignes verticales du cadre, sur les côtés droit et gauche, sont doublées.

Page 32: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

32

Diagramme de classes

• Introduction

• Notions de classe

• Relations entre classes

• Interfaces

• Diagramme d’objets

Page 33: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

33

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 34: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

34

Notion d’association• Une association est une relation entre deux classes (association binaire) ou plus (association n-aire), qui décrit les connexions structurelles entre leurs instances. • Une association indique donc qu’il peut y avoir des liens entre des instances des classes associées.

Page 35: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

35

Notion d’association(remarque)

Deux modélisations de la notion d’association

La question de savoir s’il faut modéliser les associations en tant que tel a longtemps fait débat. UML a tranché pour la première version car elle se situe plus à un niveau conceptuel (par opposition au niveau d’implémentation)

Page 36: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

36

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 37: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

37

Terminaison d’associationPropriétaire d’une terminaison d’association

La possession d’une terminaison d’association par le classeur situé à l’autre extrémité de l’association peut être spécifié graphiquement par l’adjonction d’un petit cercle plein (point) entre la terminaison d’association et la classe Il n’est pas indispensable de préciser la possession des terminaisons d’associations.

Page 38: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

38

Terminaison d’association = propriété

Dans le cas d’une classe, les propriétés sont constituées par les attributs et les éventuelles terminaisons d’association que possède la classe. Dans le cas d’une association, les propriétés sont constituées par les terminaisons d’association que possède l’association. Une propriété peut être paramétrée par les éléments suivant :nom :

Comme un attribut, une terminaison d’association peut être nommée. Le nom est situé à proximité de la terminaison. Le nom d’une terminaison d’association est appelée nom du rôle.

visibilité : Comme un attribut, une terminaison d’association possède une visibilité.

multiplicité : Comme un attribut, une terminaison d’association peut posséder une multiplicité. Elle est mentionnée à proximité de la terminaison. navigabilité : Pour un attribut, la navigabilité est implicite, navigable, et toujours depuis la classe vers l’attribut. Pour une terminaison d’association, la navigabilité peut être précisée

Page 39: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

39

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 40: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

40

Association binaire et n-aire• Une association binaire est matérialisée par un trait plein entre les classes Associées. • Elle peut être ornée d’un nom, avec éventuellement un sens de lecture ( ou ). ▸ ◂• Quand les deux extrémités de l’association pointent vers la même classe, l’association est dite réflexive.

Page 41: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

41

Association binaire et n-aire• Une association n-aire lie plus de deux classes. • La ligne pointillé d’une classe-association peut être reliée au losange par une ligne discontinue pour représenter une association n-aire dotée d’attributs, d’opérations ou d’associations.• On représente une association n-aire par un grand losange avec un chemin partant vers chaque classe participante • Le nom de l’association, le cas échéant, apparaît à proximité du losange.

Page 42: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

42

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 43: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

43

Multiplicité ou cardinalité• La multiplicité associée à une terminaison d’association déclare le nombre d’objets susceptibles d’occuper la position définie par la terminaison d’association. • Dans une association binaire la multiplicité sur la terminaison cible contraint le nombre d’objets de la classe cible pouvant être associés à un seul objet donné de la classe source (la classe de l’autre terminaison de l’association).• Dans une association n-aire, la multiplicité apparaissant sur le lien de chaque classe s’applique sur une instance de chacune des classes. (ambiguité des associations ternaires!)Quelques exemples de multiplicités:

1 un et un seul0..1 zéro ou un

m .. n de m à n* de zéro à plusieurs

0..* de zéro à plusieurs1..* de un à plusieurs4..6 de quatre à six

1..3,12 de un à trois ou douze

Page 44: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

44

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 45: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

45

Navigabilité• La navigabilité indique s’il est possible de traverser une association. • On représente graphiquement la navigabilité par une flèche du côté de la terminaison navigable et on empêche la navigabilité par une croix du côté de la terminaison non navigable.• Par défaut, une association est navigable dans les deux sens.

Page 46: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

46

NavigabilitéDeux modélisations équivalentes.

Une classe UML est-elle toujours en Première Forme Normale?

Page 47: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

47

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 48: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

48

Qualification• Quand une classe est liée à une autre classe par une association, on peut restreindre la portée de l’association à quelques éléments ciblés de la classe. • Ces éléments ciblés (un ou plusieurs attributs) sont appelés un qualificatif. • Un qualificatif permet donc de sélectionner un spécifique dans l’ensemble des objets candidats e l’association.• L’objet sélectionné par la valeur du qualificatif est appelé objet cible. • L’association est appelée association qualifiée. • Un qualificatif agit toujours sur une association dont la multiplicité est plusieurs du côté cible.

Page 49: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

49

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 50: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

50

Classe-association• Parfois, une association doit posséder des propriétés. • Les associations ne pouvant posséder de propriété, il faut introduire un nouveau concept pour modéliser cette situation : la classe-association.• Une classe-association possède les caractéristiques des associations et des classes.• Elle se connecte à deux ou plusieurs classes et possède également des attributs et des opérations.• Une classe-association est caractérisée par un trait discontinu entre la classe et l’association qu’elle représente

Page 51: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

51

Classe-associationExemple d’auto-association sur classe-association.

Page 52: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

52

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 53: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

53

Agrégation et compositionUne association simple entre deux classes représente une relation structurelle entre deux classes de même niveau conceptuel : aucune des deux n’est plus importante que l’autre.

Agrégation

Une agrégation est une association qui représente une relation d’inclusion structurelle ou comportementale d’un élément dans un ensemble. Lorsque l’on souhaite modéliser une relation tout/partie où une classe constitue un élément plus grand (tout) composé d’éléments plus petit (partie), il faut utiliser une agrégation.Graphiquement, on ajoute un losange vide (♦) du côté de l’agrégat. Contrairement à une association simple, l’agrégation est transitive.

Page 54: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

54

AgrégationObjet, Fichier, Texte sont agrégés à la classe Email

Page 55: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

55

CompositionComposition

La composition, également appelée agrégation composite, décrit une contenance structurelle entre instances. La destruction de l’objet composite implique la destruction de ses composants. Une instance de la partie appartient toujours à au plus une instance de l’élément Composite.La multiplicité du côté composite ne doit pas être supérieure à 1 (i.e. 1 ou 0..1). Graphiquement, on ajoute un losange plein du côté de l’agrégat.

Page 56: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

56

CompositionUn Email est (obligatoirement) composé de Destinataires

Page 57: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

57

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 58: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

58

Généralisation et HéritageLa généralisation décrit une relation entre :

• une classe générale (classe de base ou classe parent)• une (ou des) classe spécialisée (sous-classe).

La classe spécialisée est intégralement cohérente avec la classe de base, mais comporte des informations supplémentaires (attributs, opérations, associations).

Dans le langage UML, cette relation de généralisation se traduit par le concept d’héritage. On parle également de relation d’héritage.

L’héritage permet la classification des objets (taxinomie).

Le symbole utilisé pour la relation d’héritage ou de généralisation est une flèche avec un trait plein dont la pointe est un triangle fermé désignant le cas le plus général

Page 59: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

59

Généralisation et Héritage

Page 60: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

60

Généralisation / Spécialisation

Spécialisation

Démarche descendante, qui consiste à capturer les particularités d'un ensemble d'objets, non discriminés par les classes déjà identifiées. La Spécialisation consiste à étendre les propriétés d'une classe, sous forme de sous-classes, plus spécifiques.Généralisation

Démarche ascendante, qui consiste à capturer les particularités communes d'un ensemble d'objets, issus de classes différentes. La Généralisation consiste à factoriser les propriétés d'un ensemble de classes, sous forme d'une super-classe, plus abstraite.

Page 61: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

61

Principe de substitution de Liksow

L'héritage permet la classification des objets. Une bonne classification est stable dans le temps et extensible Parfois, les critères de classification sont subjectifs. Le principe de substitution de Liksow, (1987) permet de déterminer

si une relation d'héritage est bien employée pour la classification :

Si Y hérite de X, cela signifie que "Y est une sorte de X "

Page 62: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

62

Propriétés principales de l’héritage

• La classe enfant possède toutes les caractéristiques des ses classes parents, mais elle ne peut accéder aux caractéristiques privées de cette dernière. • Une classe enfant peut redéfinir (même signature) une ou plusieurs opérations de la classe parent. • Sauf indication contraire, un objet utilise les opérations les plus spécialisées dans la hiérarchie des classes. • Toutes les associations de la classe parent s’appliquent aux classes dérivées. • Une instance d’une classe peut être utilisée partout où une instance de sa classe parent est attendue. • Une classe peut avoir plusieurs parents, on parle alors d’héritage multiple • Le langage C++ est un des langages objet permettant son implémentation effective, le langage Java ne le permet pas.

Page 63: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

63

Héritage multipleUne classe peut avoir plusieurs parents, on parle alors d’héritage multiple (Le langage C++ est un des langages objet permettant son implémentation effective, le langage Java ne le permet pas.)

En UML, la relation d’héritage n’est pas propre aux classes. Elle s’applique à d’autre éléments du langage comme les paquetages, les acteurs ou les cas d’utilisation.

Page 64: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

64

Relations entre classes

• Notion d’association• Terminaison d’association• Association binaire et n-aire• Multiplicité ou cardinalité• Navigabilité• Qualification• Classe-association• Agrégation et composition•  Généralisation et Héritage•  Dépendance

Page 65: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

65

Dépendance

• C’est une relation unidirectionnelle exprimant une dépendance sémantique entre des éléments du modèle. • Elle est représentée par un trait discontinu orienté.• Elle indique que la modification de la cible peut impliquer une modification de la source. • La dépendance est souvent stéréotypée pour mieux expliciter le lien sémantique entre les éléments du modèle • On utilise souvent une dépendance quand une classe en utilise une autre comme argument dans la signature d’une opération.

Page 66: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

66

Diagramme de classes

• Introduction

• Notions de classe

• Relations entre classes

• Interfaces

• Diagramme d’objets

Page 67: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

67

InterfacesUne interface est représentée comme une classe excepté l’absence du mot-clef abstract et l’ajout du stéréotype << interface >> Elle est réalisée par au moins une classe (peut l’être par plusieurs). Graphiquement, elle est représentée par un trait discontinu terminé par une flèche triangulaire et le stéréotype « realize » ou le stéréotype <<use>>.

Page 68: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

68

Diagramme d’objets

• Présentation

• Représentation

• Relation de dépendance d’instanciation

Page 69: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

69

Présentation• Un diagramme d’objets représente des objets (i.e. instances de classes) et leurs liens (i.e. instances de relations) pour donner une vue de l’état d’un système à un instant donné. • Un diagramme d’objets peut être utilisé pour :

• illustrer le modèle de classes par un exemple qui explique le modèle ; • préciser certains aspects du système en mettant en évidence des détails imperceptibles dans le diagramme de classes ; • exprimer une exception en modélisant des cas particuliers ou des connaissances non modélisables dans un diagramme de classe (OCL); • prendre une image d’un système à un moment donné.

Le diagramme de classes modélise les règles et le diagramme d’objets modélise des faits.

Page 70: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

70

Diagramme d’objets

• Présentation

• Représentation

• Relation de dépendance d’instanciation

Page 71: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

71

Représentation• Graphiquement, un objet se représente comme une classe. • Le compartiment des opérations n’est pas utile. • Le nom de la classe dont l’objet est une instance est précédé d’un << : >> et est souligné. • Pour différencier les objets d’une même classe, leur nom peut être ajouté devant le nom de la classe. •Les attributs reçoivent des valeurs.

Page 72: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

72

Représentation• Dans un diagrammes d’objets, les relations du diagramme de classes deviennent des liens. • La relation de généralisation ne possède pas d’instance, elle n’est donc jamais représentée dans un diagramme d’objets. • Graphiquement, un lien se représente comme une relation, mais, s’il y a un nom, il est souligné. • On ne représente pas les multiplicités.

Page 73: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

73

Diagramme d’objets

• Présentation

• Représentation

• Relation de dépendance d’instanciation

Page 74: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

74

Dépendance d’instanciation

Extrait du Méta Modèle UML

Page 75: 1 Diagramme de classes Introduction Notions de classe Relations entre classes Interfaces Diagramme d’objets

75

Dépendance d’instanciationLa relation de dépendance d’instanciation (stéréotypée << instanceof >>) décrit la relation entre un classeur et ses instances. Elle relie, en particulier, les liens aux associations et les objets aux classes.