Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en...

44
Diagrammes de classe UML 1

Transcript of Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en...

Page 1: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Diagrammes de classe

UML1

Page 2: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Class diagrams

UML2

Expriment la structure statique du système en terme de classes et de relations entre ces classes

Une classe est un type abstrait caractérisé par des propriétés (attributs et méthodes) communes à un ensemble d'objets et permettant de créer des objets ayant ces propriétés 

Ne pas représenter les attributs ou les méthodes d'une classe sur un diagramme, n'indique pas que cette classe n'en contient pas.Il s'agit juste d'un filtre visuel, destiné à donner un certain niveau d'abstraction à son modèle

De même, ne pas spécifier les niveaux d’accès des membres d'une classe ne veut pas dire qu'on ne représente que les membres publics

Page 3: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Convention graphique d’une classe

UML3

Nom_de_classe

Attributs

Méthodes

Nom_de_classe

Page 4: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Syntaxe

UML4

Attribut :nom : type = val_initiale

Méthode :nom (arg : type = val_defaut, …) : type_retour

Niveaux d’accès :Public + Protected #Private -

Page 5: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Exemples / niveaux d’abstraction

UML5

voiture

Classe non documentée

Page 6: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Exemples / niveaux d’abstraction

UML6

voiture

immatriculationcouleurmarquepuissancepoidsdatepropriétaire

voiture

demarrerarreterconduirevendre

Classe non documentée Classe documentée

attributs

méthodes

Page 7: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Exemples / niveaux d’abstraction

UML7

voiture

immatriculationcouleurmarquepuissancepoidsdatepropriétaire

voiture

demarrerarreterconduirevendre

voiture

+ immatriculation : string+ couleur : string+ marque : string# puissance : int# poids : int- date : Date- propriétaire : string+ demarrer()- contact() : bool+ conduire(a : string = « marseille », b : string)+ vendre(prix : float)

Classe non documentéeClasse documentée Classe détaillée

attributstypes

méthodesprototype

Niveaux d’accès

Page 8: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Sémantique

UML8

Un diagramme de classes est une collection d'éléments de modélisation statiques (classes, paquetages...), qui montre la structure d'un modèle

  Un diagramme de classes fait abstraction des aspects

dynamiques et temporels 

Pour un modèle complexe, plusieurs diagrammes de classes complémentaires doivent être construits

On peut par exemple se focaliser sur : les classes qui participent à un cas d'utilisation (cf.

collaboration) les classes associées dans la réalisation d'un scénario précis les classes qui composent un paquetage la structure hiérarchique d'un ensemble de classes

Page 9: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Association

UML9

Une association exprime une connexion sémantique entre deux classes 

L'association est instanciable dans un diagramme d'objets ou de collaboration, sous forme de liens entre objets issus de classes associées

Page 10: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Association classique

UML10

Personne Entreprise

travaille

Page 11: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Association en forme verbale active

UML11

Précise le sens de lecture

Personne Hôtel

< héberge

Page 12: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Rôles

UML12

Personne Entrepriseemployé employeur

Personne Hôtel

client

personnel

Page 13: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Cardinalités

UML13

Nombre d’éléments participant à la relation

x : exactement "x" (entier naturel > 0)exemples : "1", "7"

x..y : de "x" à "y" (entiers naturels ou variables avec y > x)exemples : "0..1", "3..n", "1..31"

* : plusieurs (équivalent à "0..n" et "0..*")

x..* : "x" ou plusexemples : "0..*", "5..*"

Page 14: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Cardinalités

UML14

mariéA

Homme Femme

Maison

0..1 0..1

Personne * 1

0..*2

parent

enfant

Page 15: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Relation de dépendance

UML15

relation d'utilisation unidirectionnelle une modification de l'élément dont on

dépend, peut nécessiter une mise à jour de l'élément dépendant

Fenetre EvenementSouris

Page 16: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Association à navigabilité restreinte

UML16

Par défaut, une association est navigable dans les deux sens

La réduction de la portée de l'association peut être exprimée dans un modèle pour indiquer que les instances d'une classe ne "connaissent" pas les instances d'une autre

Electeur Candidat

vote0..1*

Page 17: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Association n-aire

UML17

association reliant plus de deux classes

Entreprise

Travaux Copropriété

Page 18: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Classe d’association

UML18

classe réalisant la navigation entre les instances d'autres classes

Professeur

Salle

jourheureduree

Cours

Etudiant Professeur

Salle

<<association ternaire>>

Cours Etudiant

jourheureduree

Page 19: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Association qualifiée

UML19

Une association qualifiée met en relation deux classes sur la base d’un attribut spécifique appelé « clé »

Banque 1..n*

numCompte Personne

Page 20: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Contraintes sur les associations

UML20

Les contraintes sont des expressions qui précisent le rôle ou la portée d'un élément de modélisation (elles permettent d'étendre ou préciser sa sémantique)

Sur une association, elles peuvent restreindre le nombre d'instances visées ("expressions de navigation") 

Les contraintes peuvent s'exprimer en langage naturel. Graphiquement, il s'agit d'un texte encadré d'accolades

Page 21: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Principales contraintes

UML21

Contrainte {ordonnée} : une relation d’ordre décrit les objets

Contrainte {sous-ensemble} : une collection est incluse dans une autre collection

Contrainte {ou-exclusif} : pour un objet donné, une seule association est valide

Page 22: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Exemples

22

peint

Peintre Tableau

Armée

1 1..n

Personne

{sous-ensemble}

{ordonnée}

général

militaire

BTSPersonne

étudiant

enseignant{ou-exclusif}

Page 23: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Agrégation

UML23

L'agrégation est une association non symétrique, qui exprime un couplage fort et une relation de subordination

Représente une relation de type "ensemble / élément"

A un même moment, une instance d'élément agrégé peut être liée à plusieurs instances d'autres classes : l'élément agrégé peut être partagé

Une instance « ensemble » peut exister sans élément (et inversement) : Cycles de vies indépendants

Page 24: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Agrégation

UML24

Une agrégation peut notamment (mais pas nécessairement) exprimer : qu'une classe (un "élément") fait partie

d'une autre ("l‘ensemble"), qu'un changement d'état d'une classe,

entraîne un changement d'état d'une autre, qu'une action sur une classe, entraîne une

action sur une autre

Page 25: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Exemple

UML25

Pièce Mur

Page 26: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Composition

UML26

Cas particulier d’agrégation : contenance physique

Représente une relation de type "composé / composant"

Les cycles de vies des composants et du composé sont liés : si le composé 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 composé

Page 27: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Exemple

UML27

Voiture

Carrosserie Moteur Piston

Page 28: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Héritage : convention graphique

UML28

Super_classe

Sous_classe

Page 29: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Spécialisation

UML29

OeuvreTitreAuteurReference

LivreNbPages

FilmDuree

OperaOrchestre

Roman BD

Page 30: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Spécialisation

UML30

OeuvreTitreAuteurReference

LivreNbPages

FilmDuree

OperaOrchestre

Roman BD

Page 31: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Généralisation

UML31

VehiculemarquemodeleVitesseMax

VoiturePlaquecylindree

BateautirantEauvoiles

AvionaltitudeMaxportee

Page 32: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Notion de paquetage

UML32

Page 33: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Packages

UML33

Les paquetages sont des éléments d'organisation des modèles

Ils regroupent des éléments de modélisation, selon des critères purement logiques 

Ils permettent d'encapsuler des éléments de modélisation

Ils permettent de structurer un système en catégories (vue logique) et sous-systèmes (vue des composants)

Ils servent de "briques" de base dans la construction d'une architecture

Ils représentent le bon niveau de granularité pour la réutilisation

Les paquetages sont aussi des espaces de noms

Page 34: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Relation entre paquetage

UML34

Dépendance :Au moins un élément du paquetage source

utilise les services d’au moins un des éléments du paquetage destination

Héritage :Au moins un élément du paquetage source

spécialise (est dérivée d’) au moins un des éléments du paquetage destination

Page 35: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Convention graphique

UML35

P1 P2

P3

P4

P5 P6

Page 36: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Exemple

UML36

Voitures

MotorisationVoiture

Piston Carbu

Boite MoteurPorte

Roue Phare

Page 37: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Diagrammes d’objets

UML37

Page 38: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Object diagram

UML38

Représentent un ensemble d’objets et leurs liens

Sont des vues statiques des instances des éléments qui apparaissent dans les diagrammes de classes

Présentent la vue de conception d’un système, exactement comme les diagrammes de classes, mais à partir de cas réel ou de prototypes

Est une instance d’un diagramme de classes

Les diagrammes de classes peuvent aussi contenir des objets

Page 39: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

UML39

:Voiture Instance anonyme de la classe voiture

golf:Voiture Instance nommée de la classe voiture

golf Instance nommée d’une classe anonyme

golf:Voiture

Couleur = "bleu M " Puissance = 7ch

Spécification des attributs

golf:Vehicule::Voiture::Berline Spécification du chemin complet

:VoitureCollection d’instance (tableau)

Page 40: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Objets composites

UML40

:Velo

:Roue 2

:Pedalier 1

:Derailleur 1

:Pedale 1

Page 41: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Diagrammes d’objets

UML41

:Personne

:Voiture

:Maison :Ville

Page 42: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Diagrammes d’objets

UML42

:Personne

:Personne

:Ordinateur :VideoProjecteur

eleve

professeur

Page 43: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Diagrammes d’objets

UML43

:Personne

:Personne

:Ordinateur :VideoProjecteur

eleve

professeur Proprietaire=« ORT »

Objet à état précis

Page 44: Diagrammes de classe UML 1. Class diagrams UML 2 Expriment la structure statique du système en terme de classes et de relations entre ces classes Une.

Diagrammes d’objets

UML44

:Bus

:Destination

:Moteur