47
1 Analyse et Conception avec UML Les diagrammes de classes [email protected] www.polytech.unice.fr/~blay IUT Nice-Sophia Antipolis Septembre 2010 Site web du module : http://anubis.polytech.unice.fr/iut/ jeudi 23 septembre 2010

Diagrammes de classes

Embed Size (px)

DESCRIPTION

Cours Introductif aux diagrammes de classes en IUT

Citation preview

Page 1: Diagrammes de classes

1

Analyse et Conception avec UML

Les diagrammes de classes

[email protected]/~blay

IUT Nice-Sophia AntipolisSeptembre 2010

Site web du module : http://anubis.polytech.unice.fr/iut/

jeudi 23 septembre 2010

Page 2: Diagrammes de classes

Séquences aux classes. Relations

09/10 2

Modélisation structurelleLes classes et les objets modélisent les objets matériels ou immatériels qui existent dans le système que l’on essaie de décrire

Les relations entre les classes et les objets établissent les connexions entre les divers éléments de modélisation et montrent l'agencement architectural

Le diagramme de classes et le diagramme d’objets sont les pièces maîtresses de la vue structurale– Dans UML, ils sont répertoriés comme des diagrammes

montrant la structure "statique"– Le diagramme d’objets est un exemple du diagramme de classes– Le diagramme d’objets donne une photographie du système

dans le temps

jeudi 23 septembre 2010

Page 3: Diagrammes de classes

3

Des diagrammes de séquence

aux diagrammes de Classes

jeudi 23 septembre 2010

Page 4: Diagrammes de classes

Séquences aux classes. Relations

09/10 4

Des Diagramme de Séquence aux classes

Classe Relations?

Classe

Classe

jeudi 23 septembre 2010

Page 5: Diagrammes de classes

Séquences aux classes. Relations

09/10

Classes Une classe est une collection (modèle) d’objets avec une

structure commune, un comportement commun, des relations identiques et une sémantique identique

On identifie les classes en examinant les objets dans les diagrammes

La représentation graphique d’une classe consiste en un rectangle avec 3 compartiments

Les noms des classes devraient être choisis dans le vocabulaire du domaine

– il est bon d’établir des standards pour les nom– i.e., toutes les classes sont des noms communs commençant par

une majuscule

5jeudi 23 septembre 2010

Page 6: Diagrammes de classes

Séquences aux classes. Relations

09/10 6

Classes

jeudi 23 septembre 2010

Page 7: Diagrammes de classes

Séquences aux classes. Relations

09/10

Le comportement d’une classe est constitué de ses opérations

On identifie les opérations en examinant les diagrammes d’interactions

Opération

7jeudi 23 septembre 2010

Page 8: Diagrammes de classes

Séquences aux classes. Relations

09/10

Attributs

8

La structure d’une classe est donnée par ses attributs Les attributs sont identifiés en examinant les définitions des

classes, les besoins du problème et en faisant intervenir la connaissance du domaine

Chaque offre de coursPossède un numéro,un lieu et une date

Coursnumérolieudate

jeudi 23 septembre 2010

Page 9: Diagrammes de classes

Séquences aux classes. Relations

09/10

Attributs

9

Comment trouver les attributs ? Informations pertinentes du domaine d’application

Comment placer les attributs ? Dans la classe qui modélise l’objet du monde réel que décrit l’attribut Une seule valeur par instance de la classe Un seul endroit pour chaque attribut dans le diagramme de classeEviter les types non primitifs

jeudi 23 septembre 2010

Page 10: Diagrammes de classes

Séquences aux classes. Relations

09/10 10

Attributs dérivésAttributs dont la valeur peut être déduite d’autres éléments du modèle

e.g. âge si l ’on connaît la date de naissance

notation : /age

jeudi 23 septembre 2010

Page 11: Diagrammes de classes

Séquences aux classes. Relations

09/10

Notations UML pour classes et objets

11jeudi 23 septembre 2010

Page 12: Diagrammes de classes

Séquences aux classes. Relations

09/10

Relations

12

On identifie les relations en examinant les diagrammes d’interaction

Si deux objets doivent communiquer, il doit exister un chemin entre eux

jeudi 23 septembre 2010

Page 13: Diagrammes de classes

13

Relations entre classes

«Relations», associations, agrégation,

généralisation, compléments

jeudi 23 septembre 2010

Page 14: Diagrammes de classes

Séquences aux classes. Relations

09/10 14

RelationsLes relations fournissent un chemin de communication entre objetsLes diagrammes de séquence sont parcourus pour déterminer quels liens doivent exister pour obtenir le comportement souhaité – si deux objets ont besoin de se parler, il doit exister un lien entre eux

Trois types de relations :Association

AgrégationDépendance

Une contrainte :Une relation est un lien stable entre deux objets

jeudi 23 septembre 2010

Page 15: Diagrammes de classes

Séquences aux classes. Relations

09/10

Relations

15jeudi 23 septembre 2010

Page 16: Diagrammes de classes

Séquences aux classes. Relations

09/10 16

Multiplicité : exemple

Personne Voiture0..*1..*

Président Pays11

Nœud *

* Un réseau informatique est composé de nœuds inter-connectés

Association réflexive

possède

gouverne

jeudi 23 septembre 2010

Page 17: Diagrammes de classes

Séquences aux classes. Relations

09/10 17

MultiplicitéLa multiplicité est définie par le nombre d’objets qui participent à une relation

La multiplicité est le nombre d’instances d’une classe reliées à UNE instance d’une autre classePour chaque association et agrégation, il y a deux multiplicités : une à chaque bout de la relation

1 Un et un seul

0 .. 1 Zéro ou un

n n (entier naturel)

m .. n De m à n (entiers naturels)

∗ De zéro à plusieurs

0 .. ∗ De zéro à plusieurs

jeudi 23 septembre 2010

Page 18: Diagrammes de classes

Séquences aux classes. Relations

09/10 18

*

Multiplicité d'une relation

Classe Exactement une

Classe Plusieurs (0 à n)

Classe Optionnelle (0 ou 1)

Classe1,2,4

Classe1-10

0,1

1

Cardinalité spécifiée

Intervalle

jeudi 23 septembre 2010

Page 19: Diagrammes de classes

Séquences aux classes. Relations

09/10

Relations

19

Une association est une connexion bi-directionnelle entre classes

– Une association est représentée par une ligne connectant les classes

Une agrégation est une relation plus forte et s’établit entre un tout et ses parties

– Une agrégation est représentée par une ligne connectant les classes avec un losange du côté de la classe représentant le tout

Une dépendance est une relation faible établie entre un client et un fournisseur et où le client n’a pas de connaissance sémantique sur le fournisseur

– Une dépendance est représentée par une flèche en pointillés allant du client au fournisseur

jeudi 23 septembre 2010

Page 20: Diagrammes de classes

Séquences aux classes. Relations

09/10 20

Les associations peuvent indiquer la navigation avec une pointe de flèche ouverte:

Pas de flèche => bidirectionnelleLa plupart des associations sont unidirectionnelles en fin de conception.

Les associations peuvent avoir des étiquettes:Il s'agit du nom de l'association.

Les associations peuvent avoir des noms de rôle:un nom de rôle identifie le rôle ou la responsabilité de l'objet dans l'association.

Les associations peuvent indiquer une multiplicité.

AssociationsAssociation

jeudi 23 septembre 2010

Page 21: Diagrammes de classes

Séquences aux classes. Relations

09/10 21

NavigationBien que les associations soit bi-directionnelles par défaut, il peut être bon de limiter la navigation à un seul sens

Les objets de Classe2 sont accessibles à partir de ceux de Classe1 et vice-versa

Si la navigation est restreinte, une flèche indique le sens de navigation

Les objets de la Classe 1 sont accessibles à la classe 2

Classe1 Classe2

Diagramme de Classes- Relations

Classe1 Classe2

Association

jeudi 23 septembre 2010

Page 22: Diagrammes de classes

Séquences aux classes. Relations

09/10 22

Nommage des associations• Une association peut être nommée afin de faciliter la

compréhension des modèles. Dans ce cas le nom est indiqué au milieu du lien symbolisant l’association

• L’usage recommande de choisir comme nom d’une association une forme verbale active (exemple : travaille pour) ou passive (exemple : est employé par)

A Bnom

Personne travaille pour Société

Personne est employé par Société

Association

jeudi 23 septembre 2010

Page 23: Diagrammes de classes

Séquences aux classes. Relations

09/10 23

Rôles des extrémités d’associationOn peut attribuer à une extrémité d’une association un nom appelé rôle qui décrit comment une classe source voit une classe destination au travers de l’associationLe rôle est placé près de la fin de l’association et à côté de la classe à laquelle il est appliqué

L’utilisation des rôles est optionnelleReprésentation et exemple

A Brôle de B

Société employeur Personne employé

Emploie>

Association

jeudi 23 septembre 2010

Page 24: Diagrammes de classes

Séquences aux classes. Relations

09/10 24

Nommage des associations…Par défaut le sens de lecture du nom d’une association est de gauche à droite

Dans le cas où la lecture du nom est ambiguë, on peut ajouter l’un des signes < ou > pour indiquer le sens de lecture

• Exemples Société < travaille pour Personne

Personne 1

*

< est père de

Association

jeudi 23 septembre 2010

Page 25: Diagrammes de classes

Séquences aux classes. Relations

09/10 25

Cas particuliers de relations

encadre

sous-fifre

chef1

Relations réflexives

Personne1..*

Une relation réflexive lie des objets de même classe

Association

jeudi 23 septembre 2010

Page 26: Diagrammes de classes

Séquences aux classes. Relations

09/10 26

Composition et Agrégation Cas particuliers de relations :– Notion de tout et parties

1

4,6Roue

Voiture Personne*

passager

moyen_de_transport

transporte

Chassis1

Composition

Agrégation

1 1

roulement >

structure >

Agrégation

jeudi 23 septembre 2010

Page 27: Diagrammes de classes

Séquences aux classes. Relations

09/10 27

AgrégationL’agrégation représente une association de type ensemble/élément L’agrégation ne concerne qu’un seul rôle d’une associationReprésentation

L’agrégation permet de modéliser une contrainte d’intégrité et de désigner l’agrégat comme gérant de cette contrainte

Agrégation

jeudi 23 septembre 2010

Page 28: Diagrammes de classes

Séquences aux classes. Relations

09/10

Exemple 2 (Agrégation partagée)– Une personne fait partie de plusieurs équipes – Une équipe contient plusieurs personnes

28

Agrégation…

Exemple 1 – Une personne est dans une foule – Une foule contient plusieurs personnes

Foule Personne*Contient >

Équipe Personne**

< membre

Agrégation

jeudi 23 septembre 2010

Page 29: Diagrammes de classes

Séquences aux classes. Relations

09/10 29

CompositionLa composition est une agrégation forte (agrégation par valeur). Les cycles de vies des éléments (les "composants") et de l'agrégat sont liés : si l'agrégat est détruit (ou copié), ses composants le sont aussi.A un même moment, une instance de composant ne peut être liée qu'à un seul agrégat.Les "objets composites" sont des instances de classes composées.

Attentionun Point de vue

Agrégation

jeudi 23 septembre 2010

Page 30: Diagrammes de classes

Séquences aux classes. Relations

09/10 30

Exemple de classe structurée

On voit clairement que le PC est composé d’instances de USBCard, Motherboard, and

GraphicsCard

Part

Agrégation

jeudi 23 septembre 2010

Page 31: Diagrammes de classes

Séquences aux classes. Relations

09/10 31

GénéralisationC’est une relation de classification entre un élément général et un élément plus spécifique

L’élément le plus spécifique est cohérent avec l’élément le plus général et contient plus d’informations

Exemple

Véhicule

BusVoiture Camion

Généralisation

jeudi 23 septembre 2010

Page 32: Diagrammes de classes

Séquences aux classes. Relations

09/10 32

GénéralisationExtension par l’ajout d’attributs et d’opérations

Généralisation

jeudi 23 septembre 2010

Page 33: Diagrammes de classes

Séquences aux classes. Relations

09/10 33

Héritage des relations

REPERTOIRE1..*

DRIVER FICHIER_TEXTE FICHIER_BINAIRE

FICHIERlien logique

Les relations sont héritées par les sous classes :

VEHICULE MOTEUR1..2

VOITURE CAMION

motorisation

*

jeudi 23 septembre 2010

Page 34: Diagrammes de classes

Séquences aux classes. Relations

09/10 34

Association ordonnéeContraintes sur les associations pour exprimer que les objets sont ordonnés (selon la clé, le nom, la date, etc.)

Cette contrainte est spécifiée par le stéréotype {Ordonné} du côté de la classe dont les instances sont ordonnés

Le modèle ne spécifie pas comment les objets sont ordonnés

Pour décrire comment les objets sont ordonnés on utilise un commentaire en employant la notation graphique suivante :

Entreprise Produits0..*0..*

{Ordonné}

Ordonné par ...

Raffinements

jeudi 23 septembre 2010

Page 35: Diagrammes de classes

Séquences aux classes. Relations

09/10 35

Association « ou-exclusif »

Contratd’assurance

*

Personne1

Entreprise

*

1

{XOR}

Un contrat d’assurance concerne uneentreprise ou une personne mais pas

les deux en même temps

Raffinements

jeudi 23 septembre 2010

Page 36: Diagrammes de classes

Séquences aux classes. Relations

09/10 36

Association « sous-ensemble »C’est une contrainte qui indique qu’une collection est incluse dans une autre collectionLa contrainte est placée à proximité d’une relation de dépendance entre deux associationsLa flèche de la relation de dépendance indique le sens de la contrainteExemple

Politicien11..*

{Sous-ensemble} Partie politiqueMembre de >

Chef de > 11

Raffinements

jeudi 23 septembre 2010

Page 37: Diagrammes de classes

Séquences aux classes. Relations

09/10 37

Association QualifiéeUtilisée avec une relation de multiplicité *.Permet de trier la relation en fonction des valeurs d’un attribut.

Qualifier

Raffinements

jeudi 23 septembre 2010

Page 38: Diagrammes de classes

Séquences aux classes. Relations

09/10 38

Association QualifiéeRaffinements

jeudi 23 septembre 2010

Page 39: Diagrammes de classes

Séquences aux classes. Relations

09/10 39

Classe d’association Il est possible de représenter une association par une classe pour ajouter par exemple des attributs ou des opérations dans l ’associationLa classe attachée à l’association est appelée une classe d’association ou classe associativeLa classe d’association possède à la fois les caractéristiques d’une association et celle d’une classe et peut, à ce titre, participer à d’autres relations dans le modèleLa classe d’association est attachée à l’association avec une ligne en pointillée

Raffinements

jeudi 23 septembre 2010

Page 40: Diagrammes de classes

Séquences aux classes. Relations

09/10 40

Classe d’association : exemple

Étudiant Cours0..*1..* Inscrit à >

Évaluation

Une classe d’association est utilisée quand une information semble appartenir aux deux objets ou à aucun objet

jeudi 23 septembre 2010

Page 41: Diagrammes de classes

41

A dependency can be used when a class has no direct relation to another class, but uses it in some way.

The «stereotype» details how the item is dependent on the other.

Dependencies

jeudi 23 septembre 2010

Page 42: Diagrammes de classes

Séquences aux classes. Relations

09/10 42

Conseils pratiques Réfléchir au problème avant de commencer

Soigner le nommage, insister sur le nommage des relations et des rôles

Faire simple!– «Things must be as simple as possible, but no

simpler». A. Einstein

– éviter toute complication nuisiblese dégager de l’implémentation : raisonner objets, classes, messages, relations, attributs, opérations

– ne pas s’inquiéter si les possibilités de la notation ne sont pas toutes exploitées

jeudi 23 septembre 2010

Page 43: Diagrammes de classes

Séquences aux classes. Relations

09/10 43

Conseils pratiques (suite) Approche incrémentale

– Itérer– Savoir s'arrêter avant d’atteindre la

perfection...• prise en compte qualité (niveau de précision), coûts,

délais...

• asservissement au processus de développement

Faire simple (encore)– Un bon modèle n’est pas un modèle où

l’on ne peut plus rien ajouter, mais un modèle où on ne peut plus rien enlever. (d’après A. de St-Exupéry)

jeudi 23 septembre 2010

Page 44: Diagrammes de classes

44

Puis ...

Diagrammes de classes

jeudi 23 septembre 2010

Page 45: Diagrammes de classes

10/11/2009Mireille Blay-Fornarino ([email protected])

45

Relations : RésuméDiagramme de Classes- Relations

jeudi 23 septembre 2010

Page 46: Diagrammes de classes

46

Modèle E/A EntrepriseGraphisme 2

Modèle E/A

1,n

1,n

1,1

Est supervisé

0,nsupervise

(1,1)

0,n

1,1

1,n

1,10,1

1,n1,1Employe

NoSSAdresseNomfPrenom

Département

No_deptlibelleNb_Emp

Projet

NuméroDescription

PersonneACharge

prénomDateNaissanceParenté

TravaillerPour

Diriger

Date

GérerAvoir a charge

Superviser

TravaillerSur

Nb_heures

localisations

jeudi 23 septembre 2010

Page 47: Diagrammes de classes

47

UML EntrepriseUML

jeudi 23 septembre 2010