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

Post on 04-Apr-2015

114 views 3 download

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

Diagrammes de classe

UML1

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

Convention graphique d’une classe

UML3

Nom_de_classe

Attributs

Méthodes

Nom_de_classe

Syntaxe

UML4

Attribut :nom : type = val_initiale

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

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

Exemples / niveaux d’abstraction

UML5

voiture

Classe non documentée

Exemples / niveaux d’abstraction

UML6

voiture

immatriculationcouleurmarquepuissancepoidsdatepropriétaire

voiture

demarrerarreterconduirevendre

Classe non documentée Classe documentée

attributs

méthodes

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

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

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

Association classique

UML10

Personne Entreprise

travaille

Association en forme verbale active

UML11

Précise le sens de lecture

Personne Hôtel

< héberge

Rôles

UML12

Personne Entrepriseemployé employeur

Personne Hôtel

client

personnel

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..*"

Cardinalités

UML14

mariéA

Homme Femme

Maison

0..1 0..1

Personne * 1

0..*2

parent

enfant

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

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*

Association n-aire

UML17

association reliant plus de deux classes

Entreprise

Travaux Copropriété

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

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

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

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

Exemples

22

peint

Peintre Tableau

Armée

1 1..n

Personne

{sous-ensemble}

{ordonnée}

général

militaire

BTSPersonne

étudiant

enseignant{ou-exclusif}

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

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

Exemple

UML25

Pièce Mur

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é

Exemple

UML27

Voiture

Carrosserie Moteur Piston

Héritage : convention graphique

UML28

Super_classe

Sous_classe

Spécialisation

UML29

OeuvreTitreAuteurReference

LivreNbPages

FilmDuree

OperaOrchestre

Roman BD

Spécialisation

UML30

OeuvreTitreAuteurReference

LivreNbPages

FilmDuree

OperaOrchestre

Roman BD

Généralisation

UML31

VehiculemarquemodeleVitesseMax

VoiturePlaquecylindree

BateautirantEauvoiles

AvionaltitudeMaxportee

Notion de paquetage

UML32

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

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

Convention graphique

UML35

P1 P2

P3

P4

P5 P6

Exemple

UML36

Voitures

MotorisationVoiture

Piston Carbu

Boite MoteurPorte

Roue Phare

Diagrammes d’objets

UML37

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

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)

Objets composites

UML40

:Velo

:Roue 2

:Pedalier 1

:Derailleur 1

:Pedale 1

Diagrammes d’objets

UML41

:Personne

:Voiture

:Maison :Ville

Diagrammes d’objets

UML42

:Personne

:Personne

:Ordinateur :VideoProjecteur

eleve

professeur

Diagrammes d’objets

UML43

:Personne

:Personne

:Ordinateur :VideoProjecteur

eleve

professeur Proprietaire=« ORT »

Objet à état précis

Diagrammes d’objets

UML44

:Bus

:Destination

:Moteur