SlideShare une entreprise Scribd logo
1  sur  87
Télécharger pour lire hors ligne
Université Hassan II de Casablanca
ENSET de Mohammedia
Département Mathématiques et Informatique
COURS
INGENIERIE SYSTEMES
4ème Partie :
Diagrammes de classes &
diagrammes d’objets
Professeur :
M. Khalifa MANSOURI
Introduction
09/10/2017 2
Les phases de développement logiciel
Spécification
des besoins
Conception
Implémentation
Tests & intégration
Introduction
09/10/2017 3
Les éléments courants de la modélisation avec UML
C
C
C2
C
C1
Symbole :
ensemble de symboles standards
Syntaxe :
méthode pour combiner les
symboles
Sens :
donné à la combinaison des
symboles
C1 envois message à C2
Introduction
09/10/2017 4
Processus de modélisation
Expressivité : Qu'est-ce
que le langage peut dire
Méthodologie :
procédures à suivre
Directives : Suggestions
pour établir un modèle
OK : C1 envois messages à C2
1. Modéliser toutes les classes
2. Modéliser toutes les relations
3. Modéliser la généralisation
Modéliser les classes avec un
nombre de relations équilibré
Introduction
09/10/2017 5
Véhicule
Bus
Voiture
PersonneClient
Louer
*
*
BDDR Réalité Modèle
Ali, 28 ans
Renault, 2008, Diesel
Base De Données
Relationnelle
Introduction
09/10/2017 6
• Structure permettant d’organiser et de stocker les données dans des matrices
appelées « tables »
• Les tables stockent les données sous la forme des types primitifs (nombre,
char, texte, booléen, date,…)
Qu’est ce qu’une BDDR ?
BDDR : Base De Données Relationnelle :
• Un objet est :
• Un état : Structure
• Des comportements : méthodes
• Une identité : référence
Qu’est ce qu’un objet ?
Introduction
09/10/2017 7
• Une classe est un regroupement d’objets similaires
• Une classe représente une vue statique du système
• Une classe sans instance est :
• Une classe abstraite : contenant des méthodes abstraites (virtuelles ou
non définies) (cf méthode abstraite)
• Une interface : ne contenant pas des attributs et toutes les méthodes sont
abstraites
• Le nom de la classe doit commencer par Majuscule. Et on peut ajouter d’autres
informations supplémentaires (nom auteur, date…)
Qu’est ce qu’une classe d’objets ?
Introduction
09/10/2017 8
• Une classe passive :
• Ces instances sauvegardent les données et offrent des services aux autres
classes (données partagés entre les objets des autres classes).
• Elle assure un accès à leurs objets d’une manière concurrentielle et non
séquentielle.
• Pour assurer l’intégrité de leurs données, les objets passifs peuvent forcer
un accès séquentiel
• Elles ne peuvent pas commencer le flux d’exécution
• Une classe est passive par défaut.
Classe active et classe passive :
• Une classe active :
• Ces instances ont leur propres adressages et peuvent eux même contrôler
le flux d’exécution.
• Les objets actifs sont séquentiels.
• Elles peuvent commencer le flux d’exécution
• Graphiquement, une classe active a un cadre plus gras.
Caractéristiques d’une classe
09/10/2017 9
Représentation graphique d’une classe
Nom 1
Attr 1 : type 1
Attr2 : type 2
….
Metode1 (p1:t1,..)
Methode2()
….
Nom 2
Attr1
Attr2
….
Nom 3
(1) (2) (3)
• Un compartiment des responsabilités (op) : énumérer l'ensemble de tâches
devant être assurées par la classe, mais pour lesquelles on ne dispose pas
encore assez d'informations.
• Un compartiment des exceptions (op) : énumérer les situations
exceptionnelles devant être gérées par la classe.
Extensions possibles :
Remarque : On peut ne pas visualiser les attributs
et/ou les opérations, afin de ne pas alourdir
inutilement le schéma.
Caractéristiques d’une classe
09/10/2017 10
Nom et visibilité d’une classe
• Visibilité :
Public ou + : tout élément qui peut voir la classe courante peut également
voir l’élément indiqué.
Protected ou # : seul un élément situé dans la classe courante ou un de ses
descendants peut voir l’élément indiqué.
Private ou – : seul un élément situé dans la classe courante peut voir
l’élément.
Package ou ~ ou rien : seul un élément déclaré dans le même paquetage
peut voir l’élément.
• Nom de la classe
[ <Nom_du_paquetage_1>:: ... ::<Nom_du_paquetage_N> ]
<Nom_de_la_classe> [ { [abstract], [<auteur>], [<date>], ... } ]
Exemple : Pack1::Class1 {abstract, Ali}
Caractéristiques d’une classe
09/10/2017 11
Stéréotype d’une classe
• Le stéréotype est le rôle principal d’une classe
• On définit principalement 4 stéréotypes :
• Entité
• Contrôleur
• Interface
• Acteur
Composants d’une classe
09/10/2017 12
• Format de description d’un attribut :
[Visibilité] Nom [Multiplicité] [":" Type Attribut] ["=" Val] [Propriétés]
• Visibilité : + (public), - (privé), # (protégé), (package)
• Multiplicité : "[" nbElt "]" ou "[" Min .. Max "] » représente le nombre d’élément
qu’un attribut peut contenir
• Type Attribut : type primitif (Entier, Chaîne, ...) ou classe
• Val : valeur initiale à la création de l’objet
• Propriétés : {variable}, {ajoutUniquement}, {gelé (final en java ou const en c++)}...
• Attributs de classe (statiques), partagé entre tous les objets. Graphiquement soulignés
• Attributs dérivés précédés de "/"
Représentation UML des attributs
Composants d’une classe
09/10/2017 13
Représentation UML des attributs
# onOff : Bouton
-x : Réel
coord[3] : Réel
+ pi : réel = 3.14 {gelé}
inscrits[2..8] : Personne
/age : Entier
Exemple
Composants d’une classe
09/10/2017 14
• Une opération (même nom et mêmes types de paramètres) doit être unique.
• Quand le nom d'une opération apparaît plusieurs fois avec des paramètres
différents, on dit que l'opération est surchargée.
• Il est impossible que deux opérations ne se distinguent que par leur valeur
retournée.
• Opérations abstraites/virtuelles (non implémentées) en italique
• Opérations de classe (statiques) soulignées
Représentation UML des méthodes
Composants d’une classe
09/10/2017 15
• Format de description d’une méthode :
<visibilité><nom_méthode>([<paramètre_1>,...,<paramètre_N>]):[<type_renvoyé>] [{<propriétés>}]
<paramètre> est décrit comme peut être suit :
• [<direction>] <nom_paramètre>:<type> ['['<multiplicité>']'] [=<valeur_par_défaut>]
• La direction peut prendre l'une des valeurs suivantes :
• in : Utilisé en entrée. C'est le comportement par défaut.
• out : Utilisée en sortie.
• inout : utilisé en entrée et en sortie
• changeItem([in] key : string, [out] newItem : Item) : int
• <propriétés> : correspondent à des contraintes ou à des informations complémentaires
comme les exceptions, les préconditions, les postconditions ou encore l'indication qu'une
méthode est abstraite (mot-clef abstract), etc.
Représentation UML des méthodes
Composants d’une classe
09/10/2017 16
• Méthode abstraite :
• On connaît sa déclaration, mais pas sa définition.
• Classe abstraite :
• Elle définit au moins une méthode abstraite ou la classe parent contient une
méthode abstraite non encore réalisée.
• 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.
• Une classe abstraite pure ne comporte que des méthodes abstraites.
• En programmation orientée objet, une telle classe est appelée une interface.
• Pour indiquer qu'une classe est abstraite, il faut ajouter {abstract} ou
<<abstract>>
Méthodes abstraites et classe abstraites
Les types de classe
09/10/2017 17
• Type particulier de classes
• Classe où toutes les méthodes sont abstraites
• Stéréotype « interface »
• Permet de regrouper un ensemble de propriétés et d’opérations assurant un
service cohérent
• Doit être réalisée (implémentée) par au moins une classe et peut l’être par
plusieurs
• Stéréotype « realize»
• Une classe peut dépendre d’une interface
• Stéréotype « use »
Interface
Diagramme de classe
09/10/2017 18
Exemple Introductif :
Produit
numSerie: String
intitule: String
pu:réel
afficher()
Client
numMat: String
nom: String
tel:String
commander()
Facture
numFact: String
date: Date
Total:réel
Calcul_total()
Diagramme d’objet
09/10/2017 19
Représentation graphique d’un diagramme d’objet
En exécution
Produit
numSerie: String
intitule: String
pu:réel
afficher()
Sony p:Produit
numSerie= "r4432 "
Intitule= " sony "
Pu=5400 DH
Dell 410:Produit
numSerie= « d410"
Intitule= " dell lat"
Pu=3400 DH
:Produit
numSerie= « HP10"
Intitule= " hp pav"
Pu=4670 DH
Diagramme de classes et diagramme d’objet
09/10/2017 20
Définitions :
• Un diagramme de classes représente la structure du système sous la
forme de classes et de relations entre ces classes
• Un diagramme d’objets illustre les objets et les liens qui les unissent
Diagramme de classes Diagramme d’objets
Relation
Classe
*
*
Lien
Objet
*
*
Relie Relie
Instance de
Instance de
Diagramme de classes et diagramme d’objet
09/10/2017 21
Définitions :
 Un DC Permet de donner une vue statique du système en
terme de :
• Classes d'objets
• Relations entre classes
o Associations
o agrégation/composition
o héritage
 La description du diagramme de classes est centrée sur trois
concepts :
• Le concept d’objets
• Le concept de classes d’objets comprenant des attributs et des
opérations
• Les différents types de relations entre classes.
Diagramme de classes et diagramme d’objet
09/10/2017 22
Concept d’objet :
Objet = un concept, abstraction ou une chose autonome qui a un sens dans le contexte
du système à modéliser
 une personne : le client « El Alami M. »
 un objet concret : le livre intitulé « Initiation à… »
 un objet abstrait : le compte bancaire n° 1915233C
 un événement : la commande n° 2004-125
 …
Remarques :
 Un objet doit :
• Être autonome
• Avoir une signification dans le système
• En relation avec d'autres objets
 Ne pas confondre "autonomie" avec "indépendance"!!
 Exemples :
• Gestion de stock : Clients, Commandes, Articles, …
• Gestion scolaire : Étudiants, Modules, Filières, …
Diagramme de classes et diagramme d’objet
09/10/2017 23
Concept d’attribut :
 Un attribut est une propriété, caractéristique d’un objet. Par exemple :
• un client a un nom, un prénom, une adresse, un code client, …
• un compte bancaire a un numéro, un solde, …
 Un attribut doit avoir une valeur atomique.
 La description d’un attribut comporte :
Visibilité attribut:type[= valeur initiale]
Où :
• Visibilité :
+ (publique, public) : visible par tous
- (privée, private) : visible seulement dans la classe
# (protégée, protected) : visible seulement dans la classe et dans les sous-classes
directes de la classe.
• Nom d’attribut
• Type de l’attribut
• Valeur initiale (facultative)
Diagramme de classes et diagramme d’objet
09/10/2017 24
Concept d’attribut :
 Le type d’un attribut peut être :
• Un type de base : entier, réel, …
• Une expression complexe : tableaux, enregistrements, …
• Une classe
 Exemples d’attributs :
- couleur : enum{Rouge, Vert, Bleu}
# b : boolean = vrai
- Client : Personne
 Lorsqu’un attribut peut être dérivé ou calculé à partir d'autres attributs, il est précédé
d’un /. Par exemple, une classe « Rectangle » peut contenir les attributs suivants :
longueur : réel,
largeur : réel,
/surface : réel.
Rectangles
-
-
-
Largeur
Longueur
/Surface
: float
: float
: float
= 10
Diagramme de classes et diagramme d’objet
09/10/2017 25
Concept d’attribut :
On distingue deux types d'attributs :
 Attribut d'instance :
• Chaque instance de la classe possède une valeur particulière pour cet attribut
• Notation : Visibilité attribut:type[= valeur initiale]
 Attribut de classe :
• Toutes les instances de la classe possède la même valeur pour cet attribut
• Notation : Visibilité attribut:type[= valeur initiale]
• Équivalent en C++, Java : static
Opérations d'instances
Opérations de classes
Window
-
-
-
-
taille
visibilité
taille_defaut
taille_max
: Rectangle
: boolean
: Rectangle
: Rectangle
= (100,100)
= true
+
+
+
+
+
<<Constructor>> Window ()
afficher ()
cacher ()
getTaille_max ()
getTaille_defaut ()
: void
: void
: Rectangle
: Rectangle
Attributs d'instances
Attributs de classes
Diagramme de classes et diagramme d’objet
09/10/2017 26
Concept d'opération et méthode :
Une opération est :
 un service offert par la classe
 une fonction ou une transformation qui peut être appliquée aux objets d’une classe.
 permet de décrire le comportement d’un objet. Par exemple, « Embaucher »,
« Licencier » et « Payer » sont des opérations de la classe « Société ».
Une méthode est
 l’implémentation d’un service offert par la classe (opération).
 de différents types :
 accesseurs (get...) : renvoie une information sur l'état d'un objet (fonction)
 modifieurs (set...) : modifie l'état de l'objet (procédure)
 constructeurs : initialise une nouvelle instance
Diagramme de classes et diagramme d’objet
09/10/2017 27
Concept d'opération et méthode :
La description d’une opération comporte :
Visibilité opération([arguments:type[=valeur initiale]]):type de résultat
• Visibilité de l’opération (-, +, #)
• Nom de l’opération
• Liste des arguments avec leurs types et éventuellement leurs valeurs par défaut
• Le type du résultat retourné
Exemples d'opérations :
Compte
-
-
-
N°Compte
Solde
Client
: String
: float
: Personne
+
+
+
+
<<Constructor>> Compte ()
Deposer (float somme)
Retirer (float somme)
AvoirSolde ()
: void
: float
: String
Les relations entre les classes
09/10/2017 28
Dépendance
Association
Composition Agregation
• Une relation est une template pour une connection entre des
instances.
• Hiérarchie des relations:
• Dépendance : indicate runtime relation
between classes
• Associations : relations cohérentes
• Composition: relations de tout et partie
Les relations entre les classes
09/10/2017 29
• Une association est une relation entre deux ou plusieurs classes au même
niveau hiérarchique .
• Une relation entre deux classes est dite binaire
• Une relation entre plusieurs classes est dites n-aire
• Une association a un nom qui peut être vide.
• Une association indique qu'il peut y avoir des liens entre des instances des
classes associées (les objets).
• Une association peut avoir des terminaisons d’association
• Le détenant de la terminaison d’association existe dans l’autre extrémité
• L’association a un sens de lecture
Les associations :
 Una association est représentée par une ligne rectiligne :
Les relations entre les classes
09/10/2017 30
Les associations :
Remarques :
 une association fonctionne dans les 2 sens (bidirectionnelle)
 termes associés : Nom, Sens de lecture, degré (arité), Multiplicité, Rôle, navigabilité et le
qualificateur
Nom et sens de lecture :
 Décrit la nature (signification) de l’association
 Montre la direction de lecture de l’association
Société Personne Voiture
 Exemple : une société emploie des personnes. Chaque personne possède une voiture.
Les relations entre les classes
09/10/2017 31
Nommage des associations :
• Nom de l’association en italique au milieu de la ligne
• On note en général les association par une forme verbale, soit voie active,
soit voie passive
Classe A Classe B
Société Personne Voiture
Nom
Travail pour
Propriété de
Possède
Les relations entre les classes
09/10/2017 32
Nommage des rôles :
• Décrit le rôle d’une classe dans une association
• Toute association binaire possède 2 rôles
• Un rôle définit la manière dont une classe intervient dans une relation
• Le nommage des associations et le nommage des rôles ne sont pas exclusifs
l’un de l’autre
Société Personne
Travail pour
employeur employé
• Utile surtout dans deux cas :
 Lorsqu’on a plusieurs associations entre deux classes avec des rôles différents
 une relation réflexive : relation entre deux instances d’une même classe
0..4
femme
0..1
mari
PersonnePilote
Passager
Avion
Personne
Les relations entre les classes
09/10/2017 33
Multiplicité des associations:
 La multiplicité est une information portée par le rôle, qui quantifie le nombre de fois où
un objet participe à une instance de relation
 Multiplicité = nombre de participations d’une classe dans une association
 indiquée à chaque extrémité d’une association
 sous la forme min..max
 min, max = 0, 1, *
 Les différentes possibilités pour une
multiplicité sont :
• 1 : un et un seul
• 0 .. 1 : zéro ou un
• M .. N : de M à N (entiers naturels)
• * : de zéro à plusieurs
• 0 .. * : de zéro à plusieurs
• 1 .. * : de un à plusieurs
• N : exactement N (entier naturel)
• 1 : Chaque personne travaille pour une et une seule société
• 0 .. * : Une société emploie de zéro à plusieurs personnes
Société PersonneTravail pour
employeur
employé1
0 .. *
Exemple général
Exemple concret
Les relations entre les classes
09/10/2017 34
Deux manières pour représenter une association :
 Dans la première représentation, l'association apparaît clairement et constitue une entité
distincte.
 Dans la seconde, l'association se manifeste par la présence de deux attributs dans
chacune des classes en relation. C'est en fait la manière dont une association est
généralement implémentée dans un langage objet quelconque.
Dans ce cas, on déclare un attribut de type Entreprise dans la classe Personne et un tableau
de Personne comme attribut dans la classe Entreprise.
Les relations entre les classes
09/10/2017 35
Les association :
 degré d’une association = nombre de classes participantes
 Association unaire : relie 2 instances d'une classe
 association binaire : relie 2 classes
 association ternaire : relie 3 classes
 association n-aire : relie n classes
Les relations entre les classes
09/10/2017 36
Les associations
Classe 1
Bloc attributs
classe1
Bloc méthodes
classe1
Classe 2
Bloc attributs
classe2
Bloc méthodes
classe2
Nom assoc
mult1
Role1 Role2
mult2
Nombre d’instances de C1 pouvant être liées à une instance de C2
(ex. : 1, 0..1, *, 1..*, 3, 5..10, ...)
nom et sens de
l’association
Rôle de Classe1
dans l’association
Personne
nom: String
prenom: String
CalculeSalaire():float
Entreprise
raison_sociale: String
num_patente:String
calculeChiffreAfaire():float
Travaille pour
* 1
Employé Employeur
Exemple
Association binaire :
Une association
binaire est
matérialisée par
un trait plein
entre les deux
classes
associées
Les relations entre les classes
09/10/2017 37
Les associations
Classe 1 Classe 2
Classe 3
Client Magasin
Produit
*
*
*
*
**
Exemples :
Association n-aire
Une association n-aire
lie plus de deux classes.
Les relations entre les
classes peuvent être
reliées par un losange.
Les relations entre les classes
09/10/2017 38
Les associations
Groupe enseignant
Classe
*
*
*
Exemples : Associations ternaires
enseignant
Classe
Groupe
*
*
*
1
1
1
< == > Cours
 Pour un couple d’instances
de la classe A et de la
classe B, il y a au min. r1
instances de la classe C et
au max. r2 instances,
 …
 …
Les relations entre les classes
09/10/2017 39
Classes d’association :
 Parfois, une association peut/doit être porteuse d’information : posséder des propriétés
= classe-association
 Par exemple, l'association Emploie entre une société et une personne possède comme
propriétés le salaire et la date d'embauche.
 En effet, ces deux propriétés n'appartiennent ni à la société, qui peut employer plusieurs
personnes, ni aux personnes, qui peuvent avoir plusieurs emplois.
 Il s'agit donc bien de propriétés de l'association Emploie.
 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.
Les relations entre les classes
09/10/2017 40
• Les propriétés n’appartiennent à aucune classe participant à l’association
• L’association ne peut pas posséder ces propriétés : limite
 Introduction du concept d’association pour prendre en compte cette limite
Une classe association possède des propriétés utiles pour compléter la description de
l’association entre les classes participantes à cette association
Classe d’association
Exemple :
Classe- association n-aire
enseignant
Classe
Groupe
*
*
*
1
1
1
< == >
NbHeure: int
Date: Date
Cours
Groupe enseignant
Classe
*
*
*
NbHeure: int
Date: Date
Cours
Les relations entre les classes
09/10/2017 41
Association réflexive
 Il est possible de définir une hiérarchie en utilisant une association réflexive.
 Exemple : un employé peut avoir un autre employé comme supérieur hiérarchique.
L’employé peut être supérieur hiérarchique de plusieurs employés.
Employé
subordonnées
0..*
0..1
Sup hiérarchique
Classe association réflexive (exemple Général)
Société Personne
Emploi
dateEmbauche: Date
Slaire: float
* *
Supérieure de
0..1
*
Les relations entre les classes
09/10/2017 42
Contraintes sur les associations :
 Concepts avancés des associations
 Permettent d’imposer des règles à respecter lors du passage à l’implémentation
 Il est possible d’attribuer toutes sortes de contraintes à une association
 Les contraintes sont représentées par un label entre accolades
 Contrainte d’association : porte sur une relation ou sur un groupe de relations
(notée {contrainte })
 Par exemple, placée sur un rôle, la contrainte {ordonnée} définit une relation
d’ordre entre les objets de la collection (lesComptes) qui sont liés à une personne
 Les contraintes (prédéfinies) souvent utilisées :
• {ordonné}
• {sous ensemble}
• {xor}
Les relations entre les classes
09/10/2017 43
Contraintes sur les associations contrainte {ordonné} :
 Indique que les objets seront ordonnés à chaque opération de création, modification,
suppression, …
Personne Comptepossède
propriétaire
{ordonnée}1
0 .. N
Exemples :
1 0..*
{Ordonné}
Personne Compte
Les comptes d’une personne sont ordonnés
Les relations entre les classes
09/10/2017 44
Contraintes sur les associations contrainte {sous-ensemble}:
 Indique qu’une collection est incluse dans une autre
 Nécessite la présence d’au moins deux relations
Exemple :
1..*
1..*
{sous-ensemble}
Ecole Personnes
Les personnes qui jouent le rôle de délégué font partie des personnes
qui jouent le rôle de parents d’élèves
Parent d’élève
Délégué
Les relations entre les classes
09/10/2017 45
Contraintes sur les associations contrainte {xor} :
• Indique que parmi un groupe d’associations, une seule est valide à la fois
Exemple :
1
{xor}
1
1
1
PC Portable
Batterie
Secteur
Un PC Portable est alimenté soit à partir
d’une batterie, soit à partir d’un secteur
Les relations entre les classes
09/10/2017 46
Restriction des associations:
Une restriction réduit le nombre d’instances qui participent à une association :
:A
:B
:B
:B
:B
:B
:B :B
:B
:B
:B
:B
:B
:B
Sans clé
Avec clé
Les relations entre les classes
09/10/2017 47
Restriction des associations:
 La restriction (dite qualification en UML) d’une association consiste à sélectionner un
sous-ensemble d’objets parmi l’ensemble des objets qui participent à une association
 La qualification d’une association permet de restreindre la multiplicité d’une association.
 Elle se représente par un rectangle placé au niveau de la classe source du qualificatif.
 Elle est réalisée au moyen d’une clé, ensemble d’attributs particuliers. La clé appartient à
l’association et non aux classes associées
 Chaque instance de la classe A accompagnée de la valeur de la clé, identifie un sous
ensemble des instances de B qui participent à l’association
Classe A Classe B
Clé
Université Etudiantville
1 *
Exemple : une banque contient plusieurs comptes,
d'où le diagramme :
Banque Compte
1 1..*
Par contre, si on connaît le N°Compte, il y a un et un
seul compte
Banque
Compte
NCompte
1 1
Les relations entre les classes
09/10/2017 48
• Elle permet de restreindre la porté de l’association en un ou une liste d’attributs de l’une
de ses extrémité.
• Ces attributs sont appelés un qualificatif
• Un qualificatif agit toujours sur une association dont la multiplicité est plusieurs
• Le qualificatif limite la multiplicité des objets de la destination répondant aux attributs du
qualificatif.
Restriction des associations : Qualification
Exemple
Banque
Personne
FeuilleExcel
Cellule
Banque
Personne
#Compte
FeuilleExcel
Cellule
col: colonne
Lin:Ligne
*
*
*
*
*
0..2
1
1
Associations qualifiés
Associations
Le couple {Banque,Compte} est associée à 0 ou 2 personnes
Les relations entre les classes
09/10/2017 49
• La navigabilité d’une association c’est la capacité d’une instance d’une classe C1 de
participer aux instances d’une classe C2 et vice versa.
La navigabilité d’une association entre les classes
Par défaut, la navigabilité est dans les deux sens
C1 C2
Le sens de la navigabilité est spécifié
C1 C2X Commande ProduitX
Classe Etudiant
* *
* *
La terminaison du côté de C1 n’est pas navigable X
X
Signifient la
même chose
 Une association est par défaut bidirectionnelle.
 Cependant, il peut être utile de se limiter à une
seule direction  association navigable
1..*
1
Commandes Clients
Les relations entre les classes
09/10/2017 50
La navigabilité : Exemples
Etudiant Classe
* *
cne: String
Nom:String
classe: Classe
Num: Int
Capacité: int
liste_et:Etudiant[]
cne: String
Nom:String
classe: Classe
Num: Int
Capacité: int
liste_et:Etudiant[]
 Quel est le problème de cette relation?
 Spécification : on doit être en mesure de savoir le client qui a fait la commande et non
toutes les commandes d’un client
 Conception :
1..*
1
Commandes Clients
 Implémentation : la classe « commandes » doit avoir un champ faisant référence à la
classe client
Les relations entre les classes
09/10/2017 51
Association particulière : Agrégation
 Définit une relation hiérarchique entre les entités
 Définit la relation : « se compose de » et modélise la notion de « possession » ou de «
tout et partie »
 Une agrégation est une association à fort couplage
 C’est est une association non symétrique : l’une des extrémités joue un rôle
prédominant par rapport à l’autre
 Elle se justifie dans les cas suivants :
• Une classe B « fait partie » intégrante d’une classe A
• Une action sur la classe A implique une action sur la classe B
• Les objets de la classe B sont subordonnés aux objets de la classe A
 La présence d’une agrégation n’implique pas obligatoirement tous ces critères
Agrégat A Agrégé B
 Classe agrégat (composé), classes
agrégée (composant)
 Entre les deux, il existe une relation de
type « est composé de »
Agrégat Agrégée
Exemples :
Les relations entre les classes
09/10/2017 52
Association particulière : Agrégation
 Les parties (les composants) sont séparables de L’agrégat (le tout)
 La suppression d’une équipe n’implique pas la suppression des
personnes qui la composent
1..*
* 0..*
0..*
1..1
0..1
1..1
0..1
Destinataire Fichier
Titre
Texte
E-Mail
Ici, on exprime qu'un fichier peut être attaché à un email (ou a
plusieurs, ou même à aucun) et qu'un email peut (ou non)
attacher (contenir une copie) une ou plusieurs fichiers.
Un agrégat (composé) peut être multiple.
Les relations entre les classes
09/10/2017 53
Agrégation
 L’agrégation peut être multiple comme une association classique :
• Une chambre est formée par un ensemble de murs
• Les murs font partie de la chambre
• Un mur peut être partagé par plusieurs chambres
Chambre Mur
1..*
*
Agrégation : Exemples
Polygone Point
Pays Région Site
3..n
1..n1..n
*
1 1
(1)
(2)
Cercle
1 *
Les relations entre les classes
09/10/2017 54
Agrégation particulière : Composition
 La composition est une forme particulière d’agrégation
 C’est une agrégation avec un couplage plus fort
• Composants non partageables
• Destruction composite implique destruction composants
 Le composant est « physiquement » contenu dans le composite
 La composition implique une contrainte sur la valeur de la multiplicité du coté de
l’agrégat : (0 ou 1)
 La composition se représente par un losange noir (plein).
Composite Composant
0..1
*
 La composition est un cas particulier d’une agrégation dans laquelle la vie des
composants (élément) est liée à celle de l’agrégat (composé) : si l’agrégat est détruit (ou
déplacé), ses composants le sont aussi.
 D’un autre côté, et contrairement à l’agrégation, une instance de composant ne peut être
liée qu’a un seul agrégat :
 Un objet composant ne peut être que dans un seul objet composite
 Un objet composant n’existe pas sans son objet composite
Les relations entre les classes
09/10/2017 55
Composition
Exemples : Voiture Moteur
Roue
Livre Chapitre Section
1
1..5
1..n1..n
1
1
1 1
(1)
(2)
 Une voiture se compose d’un moteur
 Le moteur se compose d’un cylindre et
d’un carburateur
Voiture Moteur
1
Cylindre Carburateur
(3)
Les relations entre les classes
09/10/2017 56
Composition
Exemple :
Agrégat
Agrégés
 la suppression d’un objet agrégat entraîne la suppression des
objets agrégés
1..1
1..*
1..1
1..*
1
1..*
Commune
Mairie Conseil municipal Sevice
Agrégat ne peut pas être multiple
Les relations entre les classes
09/10/2017 57
Association, agrégation, composition
Association
Agrégation
Composition
Les relations entre les classes
09/10/2017 58
Généralisation, Spécialisation
 La relation de généralisation signifie
• est un(e)
• ou est une sorte de
 C’est la notion d’héritage, elle modélise la relation d’héritage
 Elle représente des relations parents / enfants
 Généralisation (classe, classe) ou (classe, interface)
 La classe fille comporte des informations supplémentaires (attributs, opérations,
associations)
 Cette relation est modélisée par une flèche pointant sur la classe mère (triangle)
 C’est une relation entre une classe et une ou plusieurs de ses versions raffinées.
 On appelle la classe dont on tire les précisions la super-classe et les autres classes les
sous-classes.
Animal
Chien Chat
Classe mère
Sous classes
Généralisation
Spécialisation
Les relations entre les classes
09/10/2017 59
Généralisation, Spécialisation
 généraliser = mettre en facteur des classes  « super-classe »
 spécialiser = décrire de nouveaux détails  « sous-classes »
 Comparable à une association de type « est un, is a, kind of »
 Une sous-classe hérite des attributs et opérations de sa super-classe (classe mère)
 La classe spécialisée (sous-classe)
 hérite les méthodes et les attributs de la classe générale (super-classe)
 peut ajouter ses propres attributs et méthodes.
 peut redéfinir le comportement d’une méthode, mais pas des attributs
Les relations entre les classes
09/10/2017 60
Généralisation, Spécialisation
Compte
-
-
N°Compte
Solde
: String
: float
+
+
+
+
<<Constructor>> Compte ()
Déposer (float Somme)
Retirer (float Somme)
AvoirSolde ()
: void
: float
: String
CompteEpargne
- Taux : float
+ AvoirSolde () : String
Remarques :
 La généralisation et la
spécialisation sont deux
façons pour voir la même
relation, top-down
(spécialisation) ou bottom-up
(généralisation).
 L'héritage est
l’implémentation de la
relation de la
généralisation/spécialisation.
 Une classe peut hériter de
plusieurs classes, on parle
alors d’un héritage multiple.
Exemple :
Les relations entre les classes
09/10/2017 61
Généralisation, Spécialisation
mah.abdellah@gmail.com
Spécialisation
Généralisation
Super classe, classe mère
Sous classes
Classes filles
Classes dérivées
Personnes
-
-
Code
Nom
: int
: String
+
+
+
<<Constructor>> Personnes (int Code, String Nom)
getNom ()
getInf ()
: String
: String
Etudiants
- Salaire : float
+
+
+
<<Constructor>> Etudiants (int Code, String Nom, float Salaire)
getInf ()
getSalaire ()
: String
: float
Employes
- Filiere : String
+
+
+
<<Constructor>> Employes (int Code, String Nom, String Filiere)
getInf ()
getFiliere ()
: String
: String
Exemple :
Les relations entre les classes
09/10/2017 62
Héritage
Les relations entre les classes
09/10/2017 63
Héritage multiple
 Une classe peut hériter de plusieurs super-classes = héritage multiple
 Certains langage de programmation orientés objet comme C++ supporte l’héritage
multiple. Ce n’est pas le cas de java qui ne le supporte pas.
Vehicule
Terrestre Marin Aérien
TapisVolant
Tapis
 La classe TapisVolant dérive des deux classe Tapis et Aérien
Les relations entre les classes
09/10/2017 64
Généralisation, Spécialisation
 polymorphisme = opérations de même nom mais comportement spécifique
Exemple :
Les relations entre les classes
09/10/2017 65
Contraintes de généralisation
 Une classe peut être spécialisée selon plusieurs critères
 Certaines contraintes peuvent être posées sur les relations de généralisation
 Par défaut, la généralisation symbolise une décomposition exclusive
Vehicule
Terrestre Marin A voile
{Milieu}
AMoteur
{Motorisation}
Les relations entre les classes
09/10/2017 66
Contraintes de généralisation
 La contrainte {Complète} indique que la généralisation est terminée : tout ajout de sous-
classe est alors impossible
 à l’inverse, la contrainte {Incomplète} indique une généralisation extensible
Compte
CompteCourant CompteEpargne ComptePayant
{incomplète}
Les relations entre les classes
09/10/2017 67
Relation de dépendance
• La dépendance établit une relation d’utilisation entre 2 entités d’un même diagramme.
• Les dépendances n’ont pas de cardinalité
• La plupart du temps il s’agit d’une dépendance d’utilisation :
• Argument d’une méthode par exemple
• On parle alors de « relation d’utilisation »
• Cela permet d’identifier implications possibles des modifications à apporter dans une
entité
• Changement du comportement d’une des classes par exemple
Les relations entre les classes
09/10/2017 68
Relation de 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.
• On utilise souvent une dépendance quand une classe en utilise une autre comme
argument dans la signature d'une opération. Par exemple, le diagramme de la figure ci-
dessous montre que la classe Confrontation utilise la classe Stratégie car la
classe Confrontation possède une méthode confronter dont deux paramètre sont du
type Stratégie. Si la classe Stratégie, notamment son interface, change, alors des
modifications devront également être apportées à la classe Confrontation.
Diagrammes d’Objets
09/10/2017 69
Diagrammes d’Objets : Définitions
 Un objet est instance d’une classe.
 Chaque objet est défini par son état et son comportement.
 L’état représente l’ensemble des variables qui le caractérisent
 Le comportement définit les opérations que cet objet peut effectuer
 Un objet possède également une identité
 Le diagramme d’objet représente les liens structurel entre instances de classes
 Il Facilite la compréhension de structures complexes
 Trois représentations possibles des instances :
Référence Objet
État
comportement
RefObjet:Classe
État
comportement
:Classe
État
comportement
Diagrammes d’Objets
09/10/2017 70
Diagrammes d’Objets : Exemples
• Diagramme de classes
Voiture Moteur
1
Roue
1
4
1
 Diagramme d’objets
c3:Voiture
Couleur=rouge
:Moteur
:Roue
:Roue
:Roue
:Roue
Diagrammes d’Objets
09/10/2017 71
Diagrammes d’Objets : Liens entre les objets
• Diagramme de classes  Diagramme d’objets
Prof
Salle
Etudiant
Cours
P1:Prof
Nom=Mr
S3:Salle
num=3
:Etudiant
m:Cours
Nom=Maths
:Etudiant
:Etudiant
:Etudiant
:Etudiant
Nom=x
Diagrammes d’Objets
09/10/2017 72
Diagrammes d’Objets : Liens entre les objets
 Les objets composés de sous objets peuvent être représentés comme suit:
Objet composite:Classe Composite
:Composant :Composant :Composant
Fenetre Ascenseur
2
ZoneTravail
1
f1:Fenetre
:Ascenseur :Ascenseur :ZoneTravail
Diagrammes d’Objets
09/10/2017 73
Diagrammes d’Objets : Structures complexes
 Les diagrammes d’objets facilitent la compréhension et l’élaboration d’un diagramme de
classes :
:Bus
Num=11
Personne
Passagers
Conducteur *
1
Destination
1
:Destination
Nom=Maarif
:Personne
nom=hasan
:Personne
nom=x
:Personne
nom=x
:Personne
nom=x
:Personne
nom=x
:Personne
nom=x
conducteur
Bus
Diagrammes de classes et d’Objets
09/10/2017 74
Exemples :
Elaborer les diagrammes de classes et d’objets en choisissant le type de relation
appropriée pour les situations suivantes :
1. Un répertoire contient des fichiers
2. Un répertoire contient des répertoires ou des fichiers
3. Une chambre contient des murs
4. Les modems et claviers sont des périphériques d’entrée / sortie
5. Une transaction boursière est un achat ou une vente
6. Un compte bancaire peut appartenir à une personne physique ou morale
7. Un client peut passer plusieurs commandes. Chaque commande concerne
plusieurs produits avec une quantité de produit.
8. Un client peut avoir plusieurs comptes qui peuvent être soit des comptes
courants ou des comptes épargne. Chaque compte peut subir plusieurs
opérations. Il existe deux types d’opérations : opération de versement ou de
retrait
Diagrammes de classes et d’Objets
09/10/2017 75
Exemples :
Diagrammes de classes et d’Objets
09/10/2017 76
Exemples :
Diagrammes de classes et d’Objets
09/10/2017 77
Etapes pour établir un diagramme :
A partir d’une description du système :
1. Identifier un premier ensemble de classes candidates
2. Identifier les associations et les attributs
3. Identifier les généralisations
4. Lister les traitements, choisir les opérations
5. Vérifier le modèle obtenu
6. Itérer jusqu’à satisfaction …
a. Supprimer les transitivités
b. S’assurer que le schéma répond à la demande
Diagrammes de classes et d’Objets
09/10/2017 78
FIN DU COURS
Diagrammes de classes et d’Objets
09/10/2017 79
Exercices :
Dessiner les diagrammes de classes et d’objets correspondant
aux situations suivantes :
1. La France est frontalière de l’Espagne. L.Algérie est frontalière du
Maroc.
2. Un polygone est constitué de points. Un point possède une abscisse
et une ordonnée.
3. Une médiathèque possède des médias, empruntables par les
abonnés de la médiathèque.
4. Un client demande une réparation. Une réparation est effectuée par
un mécanicien. Elle nécessite des compétences. Un mécanicien
possède des compétences.
5. Une galerie expose des Oeuvres, faites par des artistes, et
représentant des thèmes. Des clients, accueillis par la galerie,
achètent des oeuvres.
Diagrammes de classes & diagrammes d’objets
09/10/2017 80
Activité 1
Une bibliothèque compte les exemplaires des titres
suivants parmi les livres dont elle dispose : « Histoire de la
2ème guerre mondiale », « Les Aventures de Robin Hood »,
et deux exemplaires de « Ali baba».
Felix et Alain sont des utilisateurs abonnés. Alain a
emprunté «Les Aventures de Robin Hood» tandis que Felix
a emprunté deux livres: « Histoire de la 2ème guerre
mondiale » et un exemplaire de « Ali baba ».
Représenter le diagramme de classes et le diagramme
d’objets modélisant ce cas de figure.
Normalisation
09/10/2017 81
•Un modèle naïf peut avoir un mauvais problème de couplage:
•Les données sont liées entre elles
•Il est difficile de gérer les éléments de données individuellement
•normalisation:
•Un ensemble de stratégies de conception
•Assure la conception faiblement couplé
•Origine: base de données relationnelle
Nous ne disposons pas des clés primaires dans le diagramme de
classe
Normalisation
09/10/2017 82
Activité 2 (Gestion des prêts d’une bibliothèque)
numSystem: long
titre: String
auteur: String
ordre_auteur:int
categorie: String[]
num_copie:long
nom_detenteur:String
date_retour:Date
localisation:Stirng
id_cours:String
nom_cours:String
Livre
Normaliser la classe suivante
Equivalences
• Parfois, l'information véhiculée par une classe-association peut être
véhiculée d'une autre manière
Deux modélisations modélisant la même information.
Les relations entre les classes
09/10/2017 84
• Propriétaire de terminaison d’une association
• La possession de la terminaison est spécifiée par un petit cercle plein entre la
terminaison de l’association et la classe
• la présence d'un point implique que la terminaison d'association appartient à la
classe située à l'autre extrémité
• l'absence du point implique que la terminaison d'association appartient à
l'association.
• En cas d’absence de ce point, la possession est ambigüe
Les associations
Polygone Point
Défini par
1 3..*
Polygone Sommet
Terminaison d’association
Les relations entre les classes
09/10/2017 85
• Terminaison d’une association
• Une terminaison d’une association est une propriété
• Une propriété est une caractéristique structurelle, et constituée d’attributs et des
terminaisons d’association
• Une terminaison d’association est caractérisée par:
• Nom
• Visibilité: mentionnée à proximité de la terminaison, et plus précisément, le cas
échéant, devant le nom de la terminaison
• Multiplicité: mentionnée à proximité de la terminaison
Les associations
mah.abdellah@gmail.com 86
Contraintes sur les associations
Exercices
Modéliser sous forme de diagrammes de classes
:
1. Le président d’un comité doit être membre
du comité
2. Une personne qui soumit un article à un
journal ne peut pas évaluer son propre
article
mah.abdellah@gmail.com 87
Exemple de diagramme de classes
(Distributeur Automatique de Banque : DAB)

Contenu connexe

Tendances

Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisationAmir Souissi
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoinsIsmahen Traya
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objetAmir Souissi
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Mehdi Hamime
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classeIlhem Daoudi
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriMansouri Khalifa
 
Merise
MeriseMerise
Merisebasy15
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiqueOussama Yoshiki
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREGhizlane ALOZADE
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisationNassim Amine
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 

Tendances (20)

Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objet
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classe
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouri
 
Cours uml
Cours umlCours uml
Cours uml
 
Merise
MeriseMerise
Merise
 
UML Diagrammes Dynamiques
UML Diagrammes DynamiquesUML Diagrammes Dynamiques
UML Diagrammes Dynamiques
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Uml
UmlUml
Uml
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
MEMOIRE DE STAGE
MEMOIRE DE STAGEMEMOIRE DE STAGE
MEMOIRE DE STAGE
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIRE
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 

Similaire à UML Part 4- diagrammres de classes et d'objets mansouri

Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objetsAbdoulaye Dieng
 
Diagramme de Classe
Diagramme de ClasseDiagramme de Classe
Diagramme de ClasseabdoMarocco
 
Csharp2 : classes et objets
Csharp2 : classes et objetsCsharp2 : classes et objets
Csharp2 : classes et objetsAbdoulaye Dieng
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)Mahfoud EL HOUDAIGUI
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1Yassine Badri
 
fdocuments.fr_chap-03-poo-en-java-partie1.pptx
fdocuments.fr_chap-03-poo-en-java-partie1.pptxfdocuments.fr_chap-03-poo-en-java-partie1.pptx
fdocuments.fr_chap-03-poo-en-java-partie1.pptxTarikElMahtouchi1
 
Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeurAbdelwahab Naji
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scalaSOAT
 
Classes et Objets.pdf
Classes et Objets.pdfClasses et Objets.pdf
Classes et Objets.pdfAabidiHafid
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfYasushiTsubakik
 
11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciel11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciellauraty3204
 

Similaire à UML Part 4- diagrammres de classes et d'objets mansouri (20)

Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
Diagramme de Classe
Diagramme de ClasseDiagramme de Classe
Diagramme de Classe
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
Csharp2 : classes et objets
Csharp2 : classes et objetsCsharp2 : classes et objets
Csharp2 : classes et objets
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)
 
POO
POOPOO
POO
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
 
fdocuments.fr_chap-03-poo-en-java-partie1.pptx
fdocuments.fr_chap-03-poo-en-java-partie1.pptxfdocuments.fr_chap-03-poo-en-java-partie1.pptx
fdocuments.fr_chap-03-poo-en-java-partie1.pptx
 
Modèle navigationnel (Mnav)
Modèle navigationnel (Mnav)Modèle navigationnel (Mnav)
Modèle navigationnel (Mnav)
 
Cours1 2 gdmm
Cours1 2 gdmmCours1 2 gdmm
Cours1 2 gdmm
 
Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeur
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
 
Classes et Objets.pdf
Classes et Objets.pdfClasses et Objets.pdf
Classes et Objets.pdf
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
 
11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciel11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciel
 
Cours_Java.pdf
Cours_Java.pdfCours_Java.pdf
Cours_Java.pdf
 
Qualité de code et bonnes pratiques
Qualité de code et bonnes pratiquesQualité de code et bonnes pratiques
Qualité de code et bonnes pratiques
 
Generateur de code java (GenJAVA)
Generateur de code java (GenJAVA)Generateur de code java (GenJAVA)
Generateur de code java (GenJAVA)
 

Plus de Mansouri Khalifa

Cours bases de données partie 2 Prof. Khalifa MANSOURI
Cours bases de données partie 2 Prof. Khalifa MANSOURICours bases de données partie 2 Prof. Khalifa MANSOURI
Cours bases de données partie 2 Prof. Khalifa MANSOURIMansouri Khalifa
 
Cours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURICours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURIMansouri Khalifa
 
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURIMansouri Khalifa
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURIMansouri Khalifa
 
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURIMansouri Khalifa
 
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURIMansouri Khalifa
 
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURIMansouri Khalifa
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
UML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouriUML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouriMansouri Khalifa
 
UML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouriUML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouriMansouri Khalifa
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
 
Systèmes d'Information dans les organisations
Systèmes d'Information dans les organisationsSystèmes d'Information dans les organisations
Systèmes d'Information dans les organisationsMansouri Khalifa
 
Analyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIAnalyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIMansouri Khalifa
 

Plus de Mansouri Khalifa (16)

Cours bases de données partie 2 Prof. Khalifa MANSOURI
Cours bases de données partie 2 Prof. Khalifa MANSOURICours bases de données partie 2 Prof. Khalifa MANSOURI
Cours bases de données partie 2 Prof. Khalifa MANSOURI
 
Cours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURICours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURI
 
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
 
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
 
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
 
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI
 
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
 
UML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouriUML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouri
 
UML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouriUML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouri
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
Systèmes d'Information dans les organisations
Systèmes d'Information dans les organisationsSystèmes d'Information dans les organisations
Systèmes d'Information dans les organisations
 
Analyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIAnalyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURI
 

Dernier

Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 

Dernier (20)

Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 

UML Part 4- diagrammres de classes et d'objets mansouri

  • 1. Université Hassan II de Casablanca ENSET de Mohammedia Département Mathématiques et Informatique COURS INGENIERIE SYSTEMES 4ème Partie : Diagrammes de classes & diagrammes d’objets Professeur : M. Khalifa MANSOURI
  • 2. Introduction 09/10/2017 2 Les phases de développement logiciel Spécification des besoins Conception Implémentation Tests & intégration
  • 3. Introduction 09/10/2017 3 Les éléments courants de la modélisation avec UML C C C2 C C1 Symbole : ensemble de symboles standards Syntaxe : méthode pour combiner les symboles Sens : donné à la combinaison des symboles C1 envois message à C2
  • 4. Introduction 09/10/2017 4 Processus de modélisation Expressivité : Qu'est-ce que le langage peut dire Méthodologie : procédures à suivre Directives : Suggestions pour établir un modèle OK : C1 envois messages à C2 1. Modéliser toutes les classes 2. Modéliser toutes les relations 3. Modéliser la généralisation Modéliser les classes avec un nombre de relations équilibré
  • 5. Introduction 09/10/2017 5 Véhicule Bus Voiture PersonneClient Louer * * BDDR Réalité Modèle Ali, 28 ans Renault, 2008, Diesel Base De Données Relationnelle
  • 6. Introduction 09/10/2017 6 • Structure permettant d’organiser et de stocker les données dans des matrices appelées « tables » • Les tables stockent les données sous la forme des types primitifs (nombre, char, texte, booléen, date,…) Qu’est ce qu’une BDDR ? BDDR : Base De Données Relationnelle : • Un objet est : • Un état : Structure • Des comportements : méthodes • Une identité : référence Qu’est ce qu’un objet ?
  • 7. Introduction 09/10/2017 7 • Une classe est un regroupement d’objets similaires • Une classe représente une vue statique du système • Une classe sans instance est : • Une classe abstraite : contenant des méthodes abstraites (virtuelles ou non définies) (cf méthode abstraite) • Une interface : ne contenant pas des attributs et toutes les méthodes sont abstraites • Le nom de la classe doit commencer par Majuscule. Et on peut ajouter d’autres informations supplémentaires (nom auteur, date…) Qu’est ce qu’une classe d’objets ?
  • 8. Introduction 09/10/2017 8 • Une classe passive : • Ces instances sauvegardent les données et offrent des services aux autres classes (données partagés entre les objets des autres classes). • Elle assure un accès à leurs objets d’une manière concurrentielle et non séquentielle. • Pour assurer l’intégrité de leurs données, les objets passifs peuvent forcer un accès séquentiel • Elles ne peuvent pas commencer le flux d’exécution • Une classe est passive par défaut. Classe active et classe passive : • Une classe active : • Ces instances ont leur propres adressages et peuvent eux même contrôler le flux d’exécution. • Les objets actifs sont séquentiels. • Elles peuvent commencer le flux d’exécution • Graphiquement, une classe active a un cadre plus gras.
  • 9. Caractéristiques d’une classe 09/10/2017 9 Représentation graphique d’une classe Nom 1 Attr 1 : type 1 Attr2 : type 2 …. Metode1 (p1:t1,..) Methode2() …. Nom 2 Attr1 Attr2 …. Nom 3 (1) (2) (3) • Un compartiment des responsabilités (op) : énumérer l'ensemble de tâches devant être assurées par la classe, mais pour lesquelles on ne dispose pas encore assez d'informations. • Un compartiment des exceptions (op) : énumérer les situations exceptionnelles devant être gérées par la classe. Extensions possibles : Remarque : On peut ne pas visualiser les attributs et/ou les opérations, afin de ne pas alourdir inutilement le schéma.
  • 10. Caractéristiques d’une classe 09/10/2017 10 Nom et visibilité d’une classe • Visibilité : Public ou + : tout élément qui peut voir la classe courante peut également voir l’élément indiqué. Protected ou # : seul un élément situé dans la classe courante ou un de ses descendants peut voir l’élément indiqué. Private ou – : seul un élément situé dans la classe courante peut voir l’élément. Package ou ~ ou rien : seul un élément déclaré dans le même paquetage peut voir l’élément. • Nom de la classe [ <Nom_du_paquetage_1>:: ... ::<Nom_du_paquetage_N> ] <Nom_de_la_classe> [ { [abstract], [<auteur>], [<date>], ... } ] Exemple : Pack1::Class1 {abstract, Ali}
  • 11. Caractéristiques d’une classe 09/10/2017 11 Stéréotype d’une classe • Le stéréotype est le rôle principal d’une classe • On définit principalement 4 stéréotypes : • Entité • Contrôleur • Interface • Acteur
  • 12. Composants d’une classe 09/10/2017 12 • Format de description d’un attribut : [Visibilité] Nom [Multiplicité] [":" Type Attribut] ["=" Val] [Propriétés] • Visibilité : + (public), - (privé), # (protégé), (package) • Multiplicité : "[" nbElt "]" ou "[" Min .. Max "] » représente le nombre d’élément qu’un attribut peut contenir • Type Attribut : type primitif (Entier, Chaîne, ...) ou classe • Val : valeur initiale à la création de l’objet • Propriétés : {variable}, {ajoutUniquement}, {gelé (final en java ou const en c++)}... • Attributs de classe (statiques), partagé entre tous les objets. Graphiquement soulignés • Attributs dérivés précédés de "/" Représentation UML des attributs
  • 13. Composants d’une classe 09/10/2017 13 Représentation UML des attributs # onOff : Bouton -x : Réel coord[3] : Réel + pi : réel = 3.14 {gelé} inscrits[2..8] : Personne /age : Entier Exemple
  • 14. Composants d’une classe 09/10/2017 14 • Une opération (même nom et mêmes types de paramètres) doit être unique. • Quand le nom d'une opération apparaît plusieurs fois avec des paramètres différents, on dit que l'opération est surchargée. • Il est impossible que deux opérations ne se distinguent que par leur valeur retournée. • Opérations abstraites/virtuelles (non implémentées) en italique • Opérations de classe (statiques) soulignées Représentation UML des méthodes
  • 15. Composants d’une classe 09/10/2017 15 • Format de description d’une méthode : <visibilité><nom_méthode>([<paramètre_1>,...,<paramètre_N>]):[<type_renvoyé>] [{<propriétés>}] <paramètre> est décrit comme peut être suit : • [<direction>] <nom_paramètre>:<type> ['['<multiplicité>']'] [=<valeur_par_défaut>] • La direction peut prendre l'une des valeurs suivantes : • in : Utilisé en entrée. C'est le comportement par défaut. • out : Utilisée en sortie. • inout : utilisé en entrée et en sortie • changeItem([in] key : string, [out] newItem : Item) : int • <propriétés> : correspondent à des contraintes ou à des informations complémentaires comme les exceptions, les préconditions, les postconditions ou encore l'indication qu'une méthode est abstraite (mot-clef abstract), etc. Représentation UML des méthodes
  • 16. Composants d’une classe 09/10/2017 16 • Méthode abstraite : • On connaît sa déclaration, mais pas sa définition. • Classe abstraite : • Elle définit au moins une méthode abstraite ou la classe parent contient une méthode abstraite non encore réalisée. • 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. • Une classe abstraite pure ne comporte que des méthodes abstraites. • En programmation orientée objet, une telle classe est appelée une interface. • Pour indiquer qu'une classe est abstraite, il faut ajouter {abstract} ou <<abstract>> Méthodes abstraites et classe abstraites
  • 17. Les types de classe 09/10/2017 17 • Type particulier de classes • Classe où toutes les méthodes sont abstraites • Stéréotype « interface » • Permet de regrouper un ensemble de propriétés et d’opérations assurant un service cohérent • Doit être réalisée (implémentée) par au moins une classe et peut l’être par plusieurs • Stéréotype « realize» • Une classe peut dépendre d’une interface • Stéréotype « use » Interface
  • 18. Diagramme de classe 09/10/2017 18 Exemple Introductif : Produit numSerie: String intitule: String pu:réel afficher() Client numMat: String nom: String tel:String commander() Facture numFact: String date: Date Total:réel Calcul_total()
  • 19. Diagramme d’objet 09/10/2017 19 Représentation graphique d’un diagramme d’objet En exécution Produit numSerie: String intitule: String pu:réel afficher() Sony p:Produit numSerie= "r4432 " Intitule= " sony " Pu=5400 DH Dell 410:Produit numSerie= « d410" Intitule= " dell lat" Pu=3400 DH :Produit numSerie= « HP10" Intitule= " hp pav" Pu=4670 DH
  • 20. Diagramme de classes et diagramme d’objet 09/10/2017 20 Définitions : • Un diagramme de classes représente la structure du système sous la forme de classes et de relations entre ces classes • Un diagramme d’objets illustre les objets et les liens qui les unissent Diagramme de classes Diagramme d’objets Relation Classe * * Lien Objet * * Relie Relie Instance de Instance de
  • 21. Diagramme de classes et diagramme d’objet 09/10/2017 21 Définitions :  Un DC Permet de donner une vue statique du système en terme de : • Classes d'objets • Relations entre classes o Associations o agrégation/composition o héritage  La description du diagramme de classes est centrée sur trois concepts : • Le concept d’objets • Le concept de classes d’objets comprenant des attributs et des opérations • Les différents types de relations entre classes.
  • 22. Diagramme de classes et diagramme d’objet 09/10/2017 22 Concept d’objet : Objet = un concept, abstraction ou une chose autonome qui a un sens dans le contexte du système à modéliser  une personne : le client « El Alami M. »  un objet concret : le livre intitulé « Initiation à… »  un objet abstrait : le compte bancaire n° 1915233C  un événement : la commande n° 2004-125  … Remarques :  Un objet doit : • Être autonome • Avoir une signification dans le système • En relation avec d'autres objets  Ne pas confondre "autonomie" avec "indépendance"!!  Exemples : • Gestion de stock : Clients, Commandes, Articles, … • Gestion scolaire : Étudiants, Modules, Filières, …
  • 23. Diagramme de classes et diagramme d’objet 09/10/2017 23 Concept d’attribut :  Un attribut est une propriété, caractéristique d’un objet. Par exemple : • un client a un nom, un prénom, une adresse, un code client, … • un compte bancaire a un numéro, un solde, …  Un attribut doit avoir une valeur atomique.  La description d’un attribut comporte : Visibilité attribut:type[= valeur initiale] Où : • Visibilité : + (publique, public) : visible par tous - (privée, private) : visible seulement dans la classe # (protégée, protected) : visible seulement dans la classe et dans les sous-classes directes de la classe. • Nom d’attribut • Type de l’attribut • Valeur initiale (facultative)
  • 24. Diagramme de classes et diagramme d’objet 09/10/2017 24 Concept d’attribut :  Le type d’un attribut peut être : • Un type de base : entier, réel, … • Une expression complexe : tableaux, enregistrements, … • Une classe  Exemples d’attributs : - couleur : enum{Rouge, Vert, Bleu} # b : boolean = vrai - Client : Personne  Lorsqu’un attribut peut être dérivé ou calculé à partir d'autres attributs, il est précédé d’un /. Par exemple, une classe « Rectangle » peut contenir les attributs suivants : longueur : réel, largeur : réel, /surface : réel. Rectangles - - - Largeur Longueur /Surface : float : float : float = 10
  • 25. Diagramme de classes et diagramme d’objet 09/10/2017 25 Concept d’attribut : On distingue deux types d'attributs :  Attribut d'instance : • Chaque instance de la classe possède une valeur particulière pour cet attribut • Notation : Visibilité attribut:type[= valeur initiale]  Attribut de classe : • Toutes les instances de la classe possède la même valeur pour cet attribut • Notation : Visibilité attribut:type[= valeur initiale] • Équivalent en C++, Java : static Opérations d'instances Opérations de classes Window - - - - taille visibilité taille_defaut taille_max : Rectangle : boolean : Rectangle : Rectangle = (100,100) = true + + + + + <<Constructor>> Window () afficher () cacher () getTaille_max () getTaille_defaut () : void : void : Rectangle : Rectangle Attributs d'instances Attributs de classes
  • 26. Diagramme de classes et diagramme d’objet 09/10/2017 26 Concept d'opération et méthode : Une opération est :  un service offert par la classe  une fonction ou une transformation qui peut être appliquée aux objets d’une classe.  permet de décrire le comportement d’un objet. Par exemple, « Embaucher », « Licencier » et « Payer » sont des opérations de la classe « Société ». Une méthode est  l’implémentation d’un service offert par la classe (opération).  de différents types :  accesseurs (get...) : renvoie une information sur l'état d'un objet (fonction)  modifieurs (set...) : modifie l'état de l'objet (procédure)  constructeurs : initialise une nouvelle instance
  • 27. Diagramme de classes et diagramme d’objet 09/10/2017 27 Concept d'opération et méthode : La description d’une opération comporte : Visibilité opération([arguments:type[=valeur initiale]]):type de résultat • Visibilité de l’opération (-, +, #) • Nom de l’opération • Liste des arguments avec leurs types et éventuellement leurs valeurs par défaut • Le type du résultat retourné Exemples d'opérations : Compte - - - N°Compte Solde Client : String : float : Personne + + + + <<Constructor>> Compte () Deposer (float somme) Retirer (float somme) AvoirSolde () : void : float : String
  • 28. Les relations entre les classes 09/10/2017 28 Dépendance Association Composition Agregation • Une relation est une template pour une connection entre des instances. • Hiérarchie des relations: • Dépendance : indicate runtime relation between classes • Associations : relations cohérentes • Composition: relations de tout et partie
  • 29. Les relations entre les classes 09/10/2017 29 • Une association est une relation entre deux ou plusieurs classes au même niveau hiérarchique . • Une relation entre deux classes est dite binaire • Une relation entre plusieurs classes est dites n-aire • Une association a un nom qui peut être vide. • Une association indique qu'il peut y avoir des liens entre des instances des classes associées (les objets). • Une association peut avoir des terminaisons d’association • Le détenant de la terminaison d’association existe dans l’autre extrémité • L’association a un sens de lecture Les associations :  Una association est représentée par une ligne rectiligne :
  • 30. Les relations entre les classes 09/10/2017 30 Les associations : Remarques :  une association fonctionne dans les 2 sens (bidirectionnelle)  termes associés : Nom, Sens de lecture, degré (arité), Multiplicité, Rôle, navigabilité et le qualificateur Nom et sens de lecture :  Décrit la nature (signification) de l’association  Montre la direction de lecture de l’association Société Personne Voiture  Exemple : une société emploie des personnes. Chaque personne possède une voiture.
  • 31. Les relations entre les classes 09/10/2017 31 Nommage des associations : • Nom de l’association en italique au milieu de la ligne • On note en général les association par une forme verbale, soit voie active, soit voie passive Classe A Classe B Société Personne Voiture Nom Travail pour Propriété de Possède
  • 32. Les relations entre les classes 09/10/2017 32 Nommage des rôles : • Décrit le rôle d’une classe dans une association • Toute association binaire possède 2 rôles • Un rôle définit la manière dont une classe intervient dans une relation • Le nommage des associations et le nommage des rôles ne sont pas exclusifs l’un de l’autre Société Personne Travail pour employeur employé • Utile surtout dans deux cas :  Lorsqu’on a plusieurs associations entre deux classes avec des rôles différents  une relation réflexive : relation entre deux instances d’une même classe 0..4 femme 0..1 mari PersonnePilote Passager Avion Personne
  • 33. Les relations entre les classes 09/10/2017 33 Multiplicité des associations:  La multiplicité est une information portée par le rôle, qui quantifie le nombre de fois où un objet participe à une instance de relation  Multiplicité = nombre de participations d’une classe dans une association  indiquée à chaque extrémité d’une association  sous la forme min..max  min, max = 0, 1, *  Les différentes possibilités pour une multiplicité sont : • 1 : un et un seul • 0 .. 1 : zéro ou un • M .. N : de M à N (entiers naturels) • * : de zéro à plusieurs • 0 .. * : de zéro à plusieurs • 1 .. * : de un à plusieurs • N : exactement N (entier naturel) • 1 : Chaque personne travaille pour une et une seule société • 0 .. * : Une société emploie de zéro à plusieurs personnes Société PersonneTravail pour employeur employé1 0 .. * Exemple général Exemple concret
  • 34. Les relations entre les classes 09/10/2017 34 Deux manières pour représenter une association :  Dans la première représentation, l'association apparaît clairement et constitue une entité distincte.  Dans la seconde, l'association se manifeste par la présence de deux attributs dans chacune des classes en relation. C'est en fait la manière dont une association est généralement implémentée dans un langage objet quelconque. Dans ce cas, on déclare un attribut de type Entreprise dans la classe Personne et un tableau de Personne comme attribut dans la classe Entreprise.
  • 35. Les relations entre les classes 09/10/2017 35 Les association :  degré d’une association = nombre de classes participantes  Association unaire : relie 2 instances d'une classe  association binaire : relie 2 classes  association ternaire : relie 3 classes  association n-aire : relie n classes
  • 36. Les relations entre les classes 09/10/2017 36 Les associations Classe 1 Bloc attributs classe1 Bloc méthodes classe1 Classe 2 Bloc attributs classe2 Bloc méthodes classe2 Nom assoc mult1 Role1 Role2 mult2 Nombre d’instances de C1 pouvant être liées à une instance de C2 (ex. : 1, 0..1, *, 1..*, 3, 5..10, ...) nom et sens de l’association Rôle de Classe1 dans l’association Personne nom: String prenom: String CalculeSalaire():float Entreprise raison_sociale: String num_patente:String calculeChiffreAfaire():float Travaille pour * 1 Employé Employeur Exemple Association binaire : Une association binaire est matérialisée par un trait plein entre les deux classes associées
  • 37. Les relations entre les classes 09/10/2017 37 Les associations Classe 1 Classe 2 Classe 3 Client Magasin Produit * * * * ** Exemples : Association n-aire Une association n-aire lie plus de deux classes. Les relations entre les classes peuvent être reliées par un losange.
  • 38. Les relations entre les classes 09/10/2017 38 Les associations Groupe enseignant Classe * * * Exemples : Associations ternaires enseignant Classe Groupe * * * 1 1 1 < == > Cours  Pour un couple d’instances de la classe A et de la classe B, il y a au min. r1 instances de la classe C et au max. r2 instances,  …  …
  • 39. Les relations entre les classes 09/10/2017 39 Classes d’association :  Parfois, une association peut/doit être porteuse d’information : posséder des propriétés = classe-association  Par exemple, l'association Emploie entre une société et une personne possède comme propriétés le salaire et la date d'embauche.  En effet, ces deux propriétés n'appartiennent ni à la société, qui peut employer plusieurs personnes, ni aux personnes, qui peuvent avoir plusieurs emplois.  Il s'agit donc bien de propriétés de l'association Emploie.  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.
  • 40. Les relations entre les classes 09/10/2017 40 • Les propriétés n’appartiennent à aucune classe participant à l’association • L’association ne peut pas posséder ces propriétés : limite  Introduction du concept d’association pour prendre en compte cette limite Une classe association possède des propriétés utiles pour compléter la description de l’association entre les classes participantes à cette association Classe d’association Exemple : Classe- association n-aire enseignant Classe Groupe * * * 1 1 1 < == > NbHeure: int Date: Date Cours Groupe enseignant Classe * * * NbHeure: int Date: Date Cours
  • 41. Les relations entre les classes 09/10/2017 41 Association réflexive  Il est possible de définir une hiérarchie en utilisant une association réflexive.  Exemple : un employé peut avoir un autre employé comme supérieur hiérarchique. L’employé peut être supérieur hiérarchique de plusieurs employés. Employé subordonnées 0..* 0..1 Sup hiérarchique Classe association réflexive (exemple Général) Société Personne Emploi dateEmbauche: Date Slaire: float * * Supérieure de 0..1 *
  • 42. Les relations entre les classes 09/10/2017 42 Contraintes sur les associations :  Concepts avancés des associations  Permettent d’imposer des règles à respecter lors du passage à l’implémentation  Il est possible d’attribuer toutes sortes de contraintes à une association  Les contraintes sont représentées par un label entre accolades  Contrainte d’association : porte sur une relation ou sur un groupe de relations (notée {contrainte })  Par exemple, placée sur un rôle, la contrainte {ordonnée} définit une relation d’ordre entre les objets de la collection (lesComptes) qui sont liés à une personne  Les contraintes (prédéfinies) souvent utilisées : • {ordonné} • {sous ensemble} • {xor}
  • 43. Les relations entre les classes 09/10/2017 43 Contraintes sur les associations contrainte {ordonné} :  Indique que les objets seront ordonnés à chaque opération de création, modification, suppression, … Personne Comptepossède propriétaire {ordonnée}1 0 .. N Exemples : 1 0..* {Ordonné} Personne Compte Les comptes d’une personne sont ordonnés
  • 44. Les relations entre les classes 09/10/2017 44 Contraintes sur les associations contrainte {sous-ensemble}:  Indique qu’une collection est incluse dans une autre  Nécessite la présence d’au moins deux relations Exemple : 1..* 1..* {sous-ensemble} Ecole Personnes Les personnes qui jouent le rôle de délégué font partie des personnes qui jouent le rôle de parents d’élèves Parent d’élève Délégué
  • 45. Les relations entre les classes 09/10/2017 45 Contraintes sur les associations contrainte {xor} : • Indique que parmi un groupe d’associations, une seule est valide à la fois Exemple : 1 {xor} 1 1 1 PC Portable Batterie Secteur Un PC Portable est alimenté soit à partir d’une batterie, soit à partir d’un secteur
  • 46. Les relations entre les classes 09/10/2017 46 Restriction des associations: Une restriction réduit le nombre d’instances qui participent à une association : :A :B :B :B :B :B :B :B :B :B :B :B :B :B Sans clé Avec clé
  • 47. Les relations entre les classes 09/10/2017 47 Restriction des associations:  La restriction (dite qualification en UML) d’une association consiste à sélectionner un sous-ensemble d’objets parmi l’ensemble des objets qui participent à une association  La qualification d’une association permet de restreindre la multiplicité d’une association.  Elle se représente par un rectangle placé au niveau de la classe source du qualificatif.  Elle est réalisée au moyen d’une clé, ensemble d’attributs particuliers. La clé appartient à l’association et non aux classes associées  Chaque instance de la classe A accompagnée de la valeur de la clé, identifie un sous ensemble des instances de B qui participent à l’association Classe A Classe B Clé Université Etudiantville 1 * Exemple : une banque contient plusieurs comptes, d'où le diagramme : Banque Compte 1 1..* Par contre, si on connaît le N°Compte, il y a un et un seul compte Banque Compte NCompte 1 1
  • 48. Les relations entre les classes 09/10/2017 48 • Elle permet de restreindre la porté de l’association en un ou une liste d’attributs de l’une de ses extrémité. • Ces attributs sont appelés un qualificatif • Un qualificatif agit toujours sur une association dont la multiplicité est plusieurs • Le qualificatif limite la multiplicité des objets de la destination répondant aux attributs du qualificatif. Restriction des associations : Qualification Exemple Banque Personne FeuilleExcel Cellule Banque Personne #Compte FeuilleExcel Cellule col: colonne Lin:Ligne * * * * * 0..2 1 1 Associations qualifiés Associations Le couple {Banque,Compte} est associée à 0 ou 2 personnes
  • 49. Les relations entre les classes 09/10/2017 49 • La navigabilité d’une association c’est la capacité d’une instance d’une classe C1 de participer aux instances d’une classe C2 et vice versa. La navigabilité d’une association entre les classes Par défaut, la navigabilité est dans les deux sens C1 C2 Le sens de la navigabilité est spécifié C1 C2X Commande ProduitX Classe Etudiant * * * * La terminaison du côté de C1 n’est pas navigable X X Signifient la même chose  Une association est par défaut bidirectionnelle.  Cependant, il peut être utile de se limiter à une seule direction  association navigable 1..* 1 Commandes Clients
  • 50. Les relations entre les classes 09/10/2017 50 La navigabilité : Exemples Etudiant Classe * * cne: String Nom:String classe: Classe Num: Int Capacité: int liste_et:Etudiant[] cne: String Nom:String classe: Classe Num: Int Capacité: int liste_et:Etudiant[]  Quel est le problème de cette relation?  Spécification : on doit être en mesure de savoir le client qui a fait la commande et non toutes les commandes d’un client  Conception : 1..* 1 Commandes Clients  Implémentation : la classe « commandes » doit avoir un champ faisant référence à la classe client
  • 51. Les relations entre les classes 09/10/2017 51 Association particulière : Agrégation  Définit une relation hiérarchique entre les entités  Définit la relation : « se compose de » et modélise la notion de « possession » ou de « tout et partie »  Une agrégation est une association à fort couplage  C’est est une association non symétrique : l’une des extrémités joue un rôle prédominant par rapport à l’autre  Elle se justifie dans les cas suivants : • Une classe B « fait partie » intégrante d’une classe A • Une action sur la classe A implique une action sur la classe B • Les objets de la classe B sont subordonnés aux objets de la classe A  La présence d’une agrégation n’implique pas obligatoirement tous ces critères Agrégat A Agrégé B  Classe agrégat (composé), classes agrégée (composant)  Entre les deux, il existe une relation de type « est composé de » Agrégat Agrégée Exemples :
  • 52. Les relations entre les classes 09/10/2017 52 Association particulière : Agrégation  Les parties (les composants) sont séparables de L’agrégat (le tout)  La suppression d’une équipe n’implique pas la suppression des personnes qui la composent 1..* * 0..* 0..* 1..1 0..1 1..1 0..1 Destinataire Fichier Titre Texte E-Mail Ici, on exprime qu'un fichier peut être attaché à un email (ou a plusieurs, ou même à aucun) et qu'un email peut (ou non) attacher (contenir une copie) une ou plusieurs fichiers. Un agrégat (composé) peut être multiple.
  • 53. Les relations entre les classes 09/10/2017 53 Agrégation  L’agrégation peut être multiple comme une association classique : • Une chambre est formée par un ensemble de murs • Les murs font partie de la chambre • Un mur peut être partagé par plusieurs chambres Chambre Mur 1..* * Agrégation : Exemples Polygone Point Pays Région Site 3..n 1..n1..n * 1 1 (1) (2) Cercle 1 *
  • 54. Les relations entre les classes 09/10/2017 54 Agrégation particulière : Composition  La composition est une forme particulière d’agrégation  C’est une agrégation avec un couplage plus fort • Composants non partageables • Destruction composite implique destruction composants  Le composant est « physiquement » contenu dans le composite  La composition implique une contrainte sur la valeur de la multiplicité du coté de l’agrégat : (0 ou 1)  La composition se représente par un losange noir (plein). Composite Composant 0..1 *  La composition est un cas particulier d’une agrégation dans laquelle la vie des composants (élément) est liée à celle de l’agrégat (composé) : si l’agrégat est détruit (ou déplacé), ses composants le sont aussi.  D’un autre côté, et contrairement à l’agrégation, une instance de composant ne peut être liée qu’a un seul agrégat :  Un objet composant ne peut être que dans un seul objet composite  Un objet composant n’existe pas sans son objet composite
  • 55. Les relations entre les classes 09/10/2017 55 Composition Exemples : Voiture Moteur Roue Livre Chapitre Section 1 1..5 1..n1..n 1 1 1 1 (1) (2)  Une voiture se compose d’un moteur  Le moteur se compose d’un cylindre et d’un carburateur Voiture Moteur 1 Cylindre Carburateur (3)
  • 56. Les relations entre les classes 09/10/2017 56 Composition Exemple : Agrégat Agrégés  la suppression d’un objet agrégat entraîne la suppression des objets agrégés 1..1 1..* 1..1 1..* 1 1..* Commune Mairie Conseil municipal Sevice Agrégat ne peut pas être multiple
  • 57. Les relations entre les classes 09/10/2017 57 Association, agrégation, composition Association Agrégation Composition
  • 58. Les relations entre les classes 09/10/2017 58 Généralisation, Spécialisation  La relation de généralisation signifie • est un(e) • ou est une sorte de  C’est la notion d’héritage, elle modélise la relation d’héritage  Elle représente des relations parents / enfants  Généralisation (classe, classe) ou (classe, interface)  La classe fille comporte des informations supplémentaires (attributs, opérations, associations)  Cette relation est modélisée par une flèche pointant sur la classe mère (triangle)  C’est une relation entre une classe et une ou plusieurs de ses versions raffinées.  On appelle la classe dont on tire les précisions la super-classe et les autres classes les sous-classes. Animal Chien Chat Classe mère Sous classes Généralisation Spécialisation
  • 59. Les relations entre les classes 09/10/2017 59 Généralisation, Spécialisation  généraliser = mettre en facteur des classes  « super-classe »  spécialiser = décrire de nouveaux détails  « sous-classes »  Comparable à une association de type « est un, is a, kind of »  Une sous-classe hérite des attributs et opérations de sa super-classe (classe mère)  La classe spécialisée (sous-classe)  hérite les méthodes et les attributs de la classe générale (super-classe)  peut ajouter ses propres attributs et méthodes.  peut redéfinir le comportement d’une méthode, mais pas des attributs
  • 60. Les relations entre les classes 09/10/2017 60 Généralisation, Spécialisation Compte - - N°Compte Solde : String : float + + + + <<Constructor>> Compte () Déposer (float Somme) Retirer (float Somme) AvoirSolde () : void : float : String CompteEpargne - Taux : float + AvoirSolde () : String Remarques :  La généralisation et la spécialisation sont deux façons pour voir la même relation, top-down (spécialisation) ou bottom-up (généralisation).  L'héritage est l’implémentation de la relation de la généralisation/spécialisation.  Une classe peut hériter de plusieurs classes, on parle alors d’un héritage multiple. Exemple :
  • 61. Les relations entre les classes 09/10/2017 61 Généralisation, Spécialisation mah.abdellah@gmail.com Spécialisation Généralisation Super classe, classe mère Sous classes Classes filles Classes dérivées Personnes - - Code Nom : int : String + + + <<Constructor>> Personnes (int Code, String Nom) getNom () getInf () : String : String Etudiants - Salaire : float + + + <<Constructor>> Etudiants (int Code, String Nom, float Salaire) getInf () getSalaire () : String : float Employes - Filiere : String + + + <<Constructor>> Employes (int Code, String Nom, String Filiere) getInf () getFiliere () : String : String Exemple :
  • 62. Les relations entre les classes 09/10/2017 62 Héritage
  • 63. Les relations entre les classes 09/10/2017 63 Héritage multiple  Une classe peut hériter de plusieurs super-classes = héritage multiple  Certains langage de programmation orientés objet comme C++ supporte l’héritage multiple. Ce n’est pas le cas de java qui ne le supporte pas. Vehicule Terrestre Marin Aérien TapisVolant Tapis  La classe TapisVolant dérive des deux classe Tapis et Aérien
  • 64. Les relations entre les classes 09/10/2017 64 Généralisation, Spécialisation  polymorphisme = opérations de même nom mais comportement spécifique Exemple :
  • 65. Les relations entre les classes 09/10/2017 65 Contraintes de généralisation  Une classe peut être spécialisée selon plusieurs critères  Certaines contraintes peuvent être posées sur les relations de généralisation  Par défaut, la généralisation symbolise une décomposition exclusive Vehicule Terrestre Marin A voile {Milieu} AMoteur {Motorisation}
  • 66. Les relations entre les classes 09/10/2017 66 Contraintes de généralisation  La contrainte {Complète} indique que la généralisation est terminée : tout ajout de sous- classe est alors impossible  à l’inverse, la contrainte {Incomplète} indique une généralisation extensible Compte CompteCourant CompteEpargne ComptePayant {incomplète}
  • 67. Les relations entre les classes 09/10/2017 67 Relation de dépendance • La dépendance établit une relation d’utilisation entre 2 entités d’un même diagramme. • Les dépendances n’ont pas de cardinalité • La plupart du temps il s’agit d’une dépendance d’utilisation : • Argument d’une méthode par exemple • On parle alors de « relation d’utilisation » • Cela permet d’identifier implications possibles des modifications à apporter dans une entité • Changement du comportement d’une des classes par exemple
  • 68. Les relations entre les classes 09/10/2017 68 Relation de 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. • On utilise souvent une dépendance quand une classe en utilise une autre comme argument dans la signature d'une opération. Par exemple, le diagramme de la figure ci- dessous montre que la classe Confrontation utilise la classe Stratégie car la classe Confrontation possède une méthode confronter dont deux paramètre sont du type Stratégie. Si la classe Stratégie, notamment son interface, change, alors des modifications devront également être apportées à la classe Confrontation.
  • 69. Diagrammes d’Objets 09/10/2017 69 Diagrammes d’Objets : Définitions  Un objet est instance d’une classe.  Chaque objet est défini par son état et son comportement.  L’état représente l’ensemble des variables qui le caractérisent  Le comportement définit les opérations que cet objet peut effectuer  Un objet possède également une identité  Le diagramme d’objet représente les liens structurel entre instances de classes  Il Facilite la compréhension de structures complexes  Trois représentations possibles des instances : Référence Objet État comportement RefObjet:Classe État comportement :Classe État comportement
  • 70. Diagrammes d’Objets 09/10/2017 70 Diagrammes d’Objets : Exemples • Diagramme de classes Voiture Moteur 1 Roue 1 4 1  Diagramme d’objets c3:Voiture Couleur=rouge :Moteur :Roue :Roue :Roue :Roue
  • 71. Diagrammes d’Objets 09/10/2017 71 Diagrammes d’Objets : Liens entre les objets • Diagramme de classes  Diagramme d’objets Prof Salle Etudiant Cours P1:Prof Nom=Mr S3:Salle num=3 :Etudiant m:Cours Nom=Maths :Etudiant :Etudiant :Etudiant :Etudiant Nom=x
  • 72. Diagrammes d’Objets 09/10/2017 72 Diagrammes d’Objets : Liens entre les objets  Les objets composés de sous objets peuvent être représentés comme suit: Objet composite:Classe Composite :Composant :Composant :Composant Fenetre Ascenseur 2 ZoneTravail 1 f1:Fenetre :Ascenseur :Ascenseur :ZoneTravail
  • 73. Diagrammes d’Objets 09/10/2017 73 Diagrammes d’Objets : Structures complexes  Les diagrammes d’objets facilitent la compréhension et l’élaboration d’un diagramme de classes : :Bus Num=11 Personne Passagers Conducteur * 1 Destination 1 :Destination Nom=Maarif :Personne nom=hasan :Personne nom=x :Personne nom=x :Personne nom=x :Personne nom=x :Personne nom=x conducteur Bus
  • 74. Diagrammes de classes et d’Objets 09/10/2017 74 Exemples : Elaborer les diagrammes de classes et d’objets en choisissant le type de relation appropriée pour les situations suivantes : 1. Un répertoire contient des fichiers 2. Un répertoire contient des répertoires ou des fichiers 3. Une chambre contient des murs 4. Les modems et claviers sont des périphériques d’entrée / sortie 5. Une transaction boursière est un achat ou une vente 6. Un compte bancaire peut appartenir à une personne physique ou morale 7. Un client peut passer plusieurs commandes. Chaque commande concerne plusieurs produits avec une quantité de produit. 8. Un client peut avoir plusieurs comptes qui peuvent être soit des comptes courants ou des comptes épargne. Chaque compte peut subir plusieurs opérations. Il existe deux types d’opérations : opération de versement ou de retrait
  • 75. Diagrammes de classes et d’Objets 09/10/2017 75 Exemples :
  • 76. Diagrammes de classes et d’Objets 09/10/2017 76 Exemples :
  • 77. Diagrammes de classes et d’Objets 09/10/2017 77 Etapes pour établir un diagramme : A partir d’une description du système : 1. Identifier un premier ensemble de classes candidates 2. Identifier les associations et les attributs 3. Identifier les généralisations 4. Lister les traitements, choisir les opérations 5. Vérifier le modèle obtenu 6. Itérer jusqu’à satisfaction … a. Supprimer les transitivités b. S’assurer que le schéma répond à la demande
  • 78. Diagrammes de classes et d’Objets 09/10/2017 78 FIN DU COURS
  • 79. Diagrammes de classes et d’Objets 09/10/2017 79 Exercices : Dessiner les diagrammes de classes et d’objets correspondant aux situations suivantes : 1. La France est frontalière de l’Espagne. L.Algérie est frontalière du Maroc. 2. Un polygone est constitué de points. Un point possède une abscisse et une ordonnée. 3. Une médiathèque possède des médias, empruntables par les abonnés de la médiathèque. 4. Un client demande une réparation. Une réparation est effectuée par un mécanicien. Elle nécessite des compétences. Un mécanicien possède des compétences. 5. Une galerie expose des Oeuvres, faites par des artistes, et représentant des thèmes. Des clients, accueillis par la galerie, achètent des oeuvres.
  • 80. Diagrammes de classes & diagrammes d’objets 09/10/2017 80 Activité 1 Une bibliothèque compte les exemplaires des titres suivants parmi les livres dont elle dispose : « Histoire de la 2ème guerre mondiale », « Les Aventures de Robin Hood », et deux exemplaires de « Ali baba». Felix et Alain sont des utilisateurs abonnés. Alain a emprunté «Les Aventures de Robin Hood» tandis que Felix a emprunté deux livres: « Histoire de la 2ème guerre mondiale » et un exemplaire de « Ali baba ». Représenter le diagramme de classes et le diagramme d’objets modélisant ce cas de figure.
  • 81. Normalisation 09/10/2017 81 •Un modèle naïf peut avoir un mauvais problème de couplage: •Les données sont liées entre elles •Il est difficile de gérer les éléments de données individuellement •normalisation: •Un ensemble de stratégies de conception •Assure la conception faiblement couplé •Origine: base de données relationnelle Nous ne disposons pas des clés primaires dans le diagramme de classe
  • 82. Normalisation 09/10/2017 82 Activité 2 (Gestion des prêts d’une bibliothèque) numSystem: long titre: String auteur: String ordre_auteur:int categorie: String[] num_copie:long nom_detenteur:String date_retour:Date localisation:Stirng id_cours:String nom_cours:String Livre Normaliser la classe suivante
  • 83. Equivalences • Parfois, l'information véhiculée par une classe-association peut être véhiculée d'une autre manière Deux modélisations modélisant la même information.
  • 84. Les relations entre les classes 09/10/2017 84 • Propriétaire de terminaison d’une association • La possession de la terminaison est spécifiée par un petit cercle plein entre la terminaison de l’association et la classe • la présence d'un point implique que la terminaison d'association appartient à la classe située à l'autre extrémité • l'absence du point implique que la terminaison d'association appartient à l'association. • En cas d’absence de ce point, la possession est ambigüe Les associations Polygone Point Défini par 1 3..* Polygone Sommet Terminaison d’association
  • 85. Les relations entre les classes 09/10/2017 85 • Terminaison d’une association • Une terminaison d’une association est une propriété • Une propriété est une caractéristique structurelle, et constituée d’attributs et des terminaisons d’association • Une terminaison d’association est caractérisée par: • Nom • Visibilité: mentionnée à proximité de la terminaison, et plus précisément, le cas échéant, devant le nom de la terminaison • Multiplicité: mentionnée à proximité de la terminaison Les associations
  • 86. mah.abdellah@gmail.com 86 Contraintes sur les associations Exercices Modéliser sous forme de diagrammes de classes : 1. Le président d’un comité doit être membre du comité 2. Une personne qui soumit un article à un journal ne peut pas évaluer son propre article
  • 87. mah.abdellah@gmail.com 87 Exemple de diagramme de classes (Distributeur Automatique de Banque : DAB)