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