Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Diagramme de classes
Jamal BAKKAS
Université Cadi Ayyad
Ecole supérieur de Technologie-Safi
Jamal BAKKAS
Diagramme de Classes (DC)
DC permet de modéliser les
classes du système et leurs
relations indépendamment des
langages de programmations
d’implémentation.
Jamal BAKKAS
Diagramme de Classes (DC)
Classe
Une classe décrit une abstraction d’objets ayant
Des propriétés similaires
Des comportements communs
Des relations identiques avec les autres objets
Une sémantique commune
Par exemple : Personne, Etudiant, Véhicule, Fichier , paragraphe,…
Sert de « patron » (template) à objets : elle définit la structure générale des
objets qu'elle crée en indiquant quelles sont les variables d'instance ;
Une classe est composée:
attributs : données dont les valeurs représentent l'état de l'objet
méthodes : opérations applicables aux objets
Objet
un objet est une instanciation (occurrence) d'une classe
Jamal BAKKAS
Diagramme de Classes (DC)
Jamal BAKKAS
Diagramme de Classes (DC)
Voiture FIAT-PUNTO-17
Classe & objets Numéro de série : Int
Poids : double
233434 : Numéro de série
1500 kg : Poids
Immatriculation : String 8864 YF 17 : Immatriculation
Kilométrage : double 33 000 : kilométrage
Démarrer ()
Arrêter()
Rouler()
Renault-Clio-17 Peugeot-207
5323454 : Numéro de série 3434 : Numéro de série
1500 kg : Poids 1700 kg : Poids
64 YFT 17 : Immatriculation 8634 YGG 75 : Immatriculation
23 000 : kilométrage 15 000 : kilométrage
Jamal BAKKAS
Diagramme de Classes (DC) : Attributs
Les attributs d’une classe
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/
La syntaxe d’un attribut est : visibilité nom : type
Nom_de_la_classe
La visibilité est:
# Attribut1 : Type
'+' pour public
'#' pour protected
- Attribut2 : Type
…
+ méthode1 () : type1
'-' pour private Méthode2 () : void
UML définit son propre ensemble de types …
Jamal BAKKAS
Diagramme de Classes (DC) : Attributs
Attribut de classe
Les valeurs des attributs peuvent différer d'un objet à un autre.
Jamal BAKKAS
Diagramme de Classes (DC) : Méthodes
Comportement d'un objet :
les opérations, appelées aussi méthodes, décrivent les
éléments individuels d'un comportement que l'on peut
invoquer. Nom_de_la_classe
Ce sont des fonctions qui peuvent prendre des valeurs en # Attribut1 : Type
entrée et modifier les attributs ou produire des résultats.
- Attribut2 : Type
Méthode de classe …
+ méthode1 () : type1
Méthode2 () : void
L'accès à une méthode de classe ne nécessite pas …
l'existence d'une instance de cette classe.
Graphiquement, une méthode de classe est
soulignée.
Jamal BAKKAS
Méthodes et classes abstraites
Une méthode est dite abstraite lorsqu'on connaît sa signature, mais pas la
manière dont elle peut être réalisée (i.e. on connaît sa déclaration, mais pas sa
définition).
Une classe est dite abstraite lorsqu'elle définit au moins une méthode abstraite
On ne peut instancier une classe abstraite : elle est vouée à se spécialiser. Une
classe abstraite peut très bien contenir des méthodes concrètes.
Pour indiquer qu'une classe est abstraite, il faut ajouter le mot-clef abstract
derrière son nom.
Jamal BAKKAS
Interfaces
L’interface permet de regrouper un ensemble de
propriétés et d'opérations assurant un service
cohérent
Une interface est représentée comme une classe
abstrait excepté l'absence du mot-clef abstract et
l'ajout du stéréotype << interface >>
par définition toutes les méthodes d’une interface
sont abstraites
«realize» «realize»
Une interface doit être réalisée par au moins une
classe et peut l'être par plusieurs.
Graphiquement, cela est représenté par un trait
discontinu terminé par une flèche triangulaire et le
stéréotype « realize ».
Une interface exprime un contrat à respecter par les
classes qui « réalisent » cette interface
Jamal BAKKAS
Héritage
permet de définir les relations sous-
Classe/Super-Classe.
Relation de classification entre
Élément général
Élément spécifique
Cohérent avec élément général
Contient + d’informations
Jamal BAKKAS
Association n-aire
Une association n-aire lie plus de deux
classes.
Jamal BAKKAS
La dépendance
Une dépendance 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.
Jamal BAKKAS
Navigabilité
La navigabilité indique s'il est possible de traverser une association.
Par défaut, une association est navigable dans les deux sens.
Exemple : la terminaison du côté de la classe Commande n'est pas
navigable cela signifie que:
les instances de la classe Produit ne stockent pas de liste d'objets du type
Commande.
Inversement, la terminaison du côté de la classe Produit est navigable : chaque
objet commande contient une liste de produits
■ Lorsque la navigabilité est uniquement sur l'une
des extrémités d'une association, les trois
associations représentées ont la même
signification : l'association ne peut être traversée
que dans un sens. Jamal BAKKAS
Multiplicité ou cardinalité
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).
Voici quelques exemples de multiplicité :
Exactement un : 1 ou 1..1 ;
Plusieurs : * ou 0..* ;
Au moins un : 1..* ;
De un à six : 1..6.
Il faut noter que, par rapport au modèle entité/relation, les multiplicités
sont en UML « à l'envers » (par référence à Merise) pour les associations
binaires et « à l'endroit » pour les n-aires avec n>2.
Jamal BAKKAS
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.
Exemple:
l'association Emploie entre une société et une personne possède comme
propriétés le salaire et la date d'embauche.
Jamal BAKKAS
Classe-association
la contrainte {bag} qui, placée sur les terminaisons d'association de la classe-
association, indique qu'il peut y avoir des liens multiples impliquant les mêmes
paires d'objets
Exemple :
il doit y avoir plusieurs instances de la classe-
association Actions liant une même personne à
une même société :
une même personne peut acheter à des
moments différents des actions d'une même
société.
Jamal BAKKAS
L’Agrégation
Une association simple entre deux classes représente une relation structurelle entre
pairs, c'est-à-dire entre deux classes de même niveau conceptuel :
aucune des deux n'est plus importante que l'autre.
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 petits (partie), il faut utiliser une agrégation.
L'agrégation est une association non symétrique, qui exprime un couplage fort et une
relation de subordination.
Elle représente une relation de type "ensemble / élément"
Graphiquement, on ajoute un losange vide du côté de l'agrégat.
Contrairement à une association simple, l'agrégation est transitive.
La signification de cette forme simple d'agrégation est uniquement conceptuelle.
Elle ne contraint pas la navigabilité ou les multiplicités de l'association.
Pas de contrainte sur la durée de vie des parties par rapport au tout.
Jamal BAKKAS
La Composition
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
Jamal BAKKAS
Association, agrégation, composition
(Exemple)
Jamal BAKKAS
Association, agrégation, composition
Exemple:
Une personne possède un immeuble
Dans un immeuble, on trouve un ascenseur
Un immeuble est composé d’étages
Une personne possède un compte et une adresse
Questions:
Relation entre personne et immeuble
Relation entre immeuble et ascenseur
Relation entre immeuble et étage
Jamal BAKKAS
Association, agrégation, composition
Une personne possède un immeuble
Lien conceptuel les objets ont des CV (cycles de vie) indépendants
Ce lien exprime une relation temporaire
association
Dans un immeuble on trouve un ascenseur:
Un lien: ensemble/élément, les CV des objets non disjoints
La suppression de l’immeuble n’entraîne pas obligatoirement celle de l’ascenseur
Un ascenseur ne peut être utilisé (au même temps) par plus qu’un immeuble. Mais
dans le temps, le même ascenseur peut être utilisé par différents immeubles
agrégation
Un immeuble est composé d’étages:
Un lien: composé/composants : les CV des objets coïncident
Créations d’un immeuble création de ses étages
Suppression de l’immeuble suppression de ses étages
Un étage ne peut pas être partagé par différents immeubles
composition
Jamal BAKKAS
Implémentations
Jamal BAKKAS
Implémentations
public class Personne {
Jamal BAKKAS
Implémentations
class Emploi{
private String titre;
private double salaire
Personne employe;
Sociéte employeur;
} Jamal BAKKAS
Implémentations
Jamal BAKKAS
Exercices d’application : Solutions
Un répertoire Une pièce contient Les modems et les claviers sont Une transaction boursière
contient des fichiers. des murs. des périphériques d’entrée/sortie. est un achat ou une vente.
Jamal BAKKAS
Exercices d’application : Solutions
Jamal BAKKAS
Exercices d’application : Solutions
Jamal BAKKAS
Exercices d’application : Solutions
Jamal BAKKAS