0% ont trouvé ce document utile (0 vote)
94 vues54 pages

Partie I

Le document décrit les diagrammes de classes UML, y compris les concepts de classe, d'attribut, d'opération, de visibilité, de généricité, d'héritage, de polymorphisme, d'association, de cardinalité, d'énumération et d'interface.

Transféré par

Yassine Ksibi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
94 vues54 pages

Partie I

Le document décrit les diagrammes de classes UML, y compris les concepts de classe, d'attribut, d'opération, de visibilité, de généricité, d'héritage, de polymorphisme, d'association, de cardinalité, d'énumération et d'interface.

Transféré par

Yassine Ksibi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Diagramme de classes

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 1


Introduction
• Le diagramme le plus exploité pour la génération de code
• Roundtrip engineering :
Modéliser  Générer  Modifier  Modéliser ...
• Maintenir la cohérence entre le modèle et le source est un
problème difficile
• Veillez à respecter les règles du langage au niveau du
modèle (nom de classe, constructeurs, types de bases,...)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 2


Rappels
• Objet
– Identité
– Etat
– Comportement
• Encapsulation
• Abstraction
• Classes
• Héritage
• Polymorphisme
– Surcharge
– Généricité
– Liaison dynamique

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 3


Classes

Personne Personne Personne Personne


Nom CalculerAge Nom
NeLe : Date
CalculerAge
Un objet ne peut
pas être un attribut

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 4


Diagrammes de classes : Classes
Nom
{propriétés}
Vis Nom Attribut[Multip]: Type=Valeur {propriétés}

Stéréotype Vis Opération(Paramètres) : Type Retour {propriétés}

‘::’ : opérateur de portée


Propriété : Attribut valué ( au métamodèle) {Auteur=A. K} ou
description; contraintes (OCL), pre/post conditions; Exceptions...
Visibilité: Public (+) Protégé (#) Privé(-) Paquetage (~)
Multiplicité : 0..N {Propriété: ordered, unique, required, ...}
Les attributs et opérations de classes sont soulignés
Stéréotype : « create », « request », ...
Paramètres : [in | out | inout] Nom : Type=Valeur Défaut
Attribut ou association dérivé : /Age

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 5


Classes
• D’autres compartiments peuvent être ajoutés

Nom

Attributs

Opérations
Exceptions

• Une classe peut contenir une autre classe

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 6


Stéréotypes issus des Business Process
Entité (Commande, Article,…)
Élément du domaine, état important
Gère sa propre intégrité
Peu de connaissance sur son entourage(réutilisable)

Classe contrôleur
État très simple
régit le comportement de son entourage

Classe correspondant à une interface


« Entité »
Nom_classel

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 7


Classes

• Les notions de classe et d’ensemble sont proches

• La spécification d’une classe est analogue à la


description en compréhension d’un ensemble

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 8


Classes
X

Propriété caractéristique de X

:X :X
P(x)
:X

:X :X :X :X

:X :X
:X :X

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 9


classe utilitaire
• Stéréotype <<utilitaire>> (« utility »)
• Tous les membres (donnés et opérations) sont statiques
• Correspond à une bibliothèque de fonctions

<<utilitaire>>
Math

sin(x:réel):réel
cos(x:réel):réel

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 10


classe énumération
• Stéréotype <<enumeration>>
• Les attributs ne sont définies que par des valeurs
correspondant à des constantes
• Il n’y a pas de comportement
• Correspond au type enum

<<enumeration>>
Feu
Rouge
Jaune
vert

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 11


Classes génériques

Type,Variable
Une Classe

« bind »
(UnType,Unevaleur)

LaClasse

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 12


classes d’interface
« Interface »
Nom Interface Nom Interface
Nom Interface
Client Implantation

Le client requière l’interface


‘Nom Interface’ qui lui est
fournie
Implantation
Implantation

• UML 2.0 autorise des ‘attributs abstraits’ (non implantés)


• Les interfaces peuvent être imbriquées
• Par la Exemple : Interface de pile avec multiple réalisation
• Notation DCOM

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 13


Associations
Relations structurelles entre objets

Association binaire

Emploie Personne
Société

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 14


Association : Rôle
Employeur Employés
Société Personne

Le rôle est particulièrement utile lorsque


l’association est réflexive

Père de

Personne
Fils de

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 15


Association : Rôle (UML 1.4)
•Le rôle peut avoir une visibilité +,- ou #
•Le rôle peut avoir un type, dans ce cas la classe réalise
plusieurs interfaces et le type limite celle qui est utilisée

Souris Clavier

+Gest : Souris
Fenêtre Gestionnaire

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 16


Association : Cardinalités

1..*
Société Personne

• 0..1
• M..N Combien d’occurrences de
• *  0..N personne peuvent être
• V1, V2, V3 associées à une occurrence
de Société ?
Réponse : Au minimum 1
au maximum N

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 17


Associations : contraintes sur les cardinalités

1..*
Hiérarchie Grade
{ordred}

•Il existe une relation d’ordre sur les grades


•Les opérations d’insertion de suppression, etc...
doivent préserver cette relation
•Plus généralement différentes contraintes peuvent être
exprimées

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 18


Association : Qualificateur
*
Société Directeur : bool Personne

Société N° CNSS Personne

• Réduit la cardinalité, permet un accès indexé, société


requière l’accès indexé
• Le qualificateur est un attribut de la classe qui va faire
l’objet de l’accès indexé
• Lorsque la cardinalité réduite équivalent à une clé
• Implantation : table de hashage, map, ...

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 19


Association : Contraintes
Organise
Personne Concours
{xor}

Participe

• On ne peut pas avoir simultanément le lien ‘Organise’ et


le lien ‘Participe’ entre un objet personne et un objet
concours
• Une contrainte sur plusieurs lien passe par une
annotation

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 20


Association dérivée

1..* 1..*
Société Personne Pointage
1..*
/Les pointages

• Correspond à une association transitive

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 21


Association : Navigation
Société Personne

Société x Personne

• Dans le premier cas la navigation société vers personne


doit être supportée, la navigation de personne vers
société est indéfinie
• Dans le deuxième cas la navigation de personne vers
société ne sera pas supportée

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 22


Associations porteuses d’information

* 1..*
Commande Article

LigneCmde
QuantitéCmdée

• L’information portée par l’information est représentée


dans une classe ‘LigneCmde’
• La classe représente un couple (Commande, Article)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 23


Classe association
* 1..*
Commande Article

LigneCmde * * Récapitulatif
Quantité
Ajout()
Suppression()

• L’association a un comportement et participe à d’autres


associations
• Une ligne de commande peut-elle partagée par plusieurs
commandes ?

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 24


Réification
u v * 1..*
C1 C2 Cmde Article
C3
LigneCmde

1 1..*
C1
1 v
C3 Cmde LigneCmde
*
u

1 1
C2 Article

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 25


Associations n-aires

Relations structurelles entre objets

* *
Professeur Etudiant

Salle

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 26


Agrégation

1 *
Paragraphe Ligne

* 2..*
Droite Point

• Composé – composant
• Interfaçage, coordination des composants
• Propagation

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 27


Composition
1 5 1..*
Voiture Roue Vol Dossier

Voiture Voiture
LesRoues[5] : Roue
5 UML 1.4
Roue

• Forme forte d’agrégation physique


• Le composite joue le rôle d’interface pour les éléments agrégés
• L’élément agrégé n’est pas partagé par plusieurs composite (0..1)
• L’élément agrégé n’existe pas en dehors du composite
(création/destruction)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 28


Généralisation

Article Article

Textile Luxe Alimentaire


Textile Luxe ...
•Héritage de propriétés et d’attributs
publiques ou protégés
•Extension, Redéfinition
•Héritage/Redéfinition des associations
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 29
Sous-classes
X
Propriété caractéristique de X

Y Z
Propriété caractéristique de Y Propriété caractéristique de Z

:X :X
:X
:X :Y :z :z

:y
:Y
:y
:z
P(x)
P(y) y z P(z)
X

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 30


Généralisation : discriminant

« PowerType » Véhicule
Motorisation
Milieu

VVoile VMoteur VTerrestre VMarin

Le discriminant (ou powertype) explicite le(s) critère(s) qui


ont permis de dériver une spécialisation

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 31


Généralisation

VMarin VAérien VTerrestre

Hovercraft

Héritage multiple

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 32


Généralisation
X
P ropriété c aractéris tique de X

Y Z
P ropriété cara ctérist iq ue de Y P ropriété c arac téristique de Z

T T P(T)  P(Y)  P(z)


P ropriété c arac téristique de T

:X
:X :X
:X :Y :Z :Z
:T
:Y
:Y
:Z P(x)
P(Y) Y z
P( z )
X

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 33


Collision de noms
T
A

X Y X Y
A A A de T A de T

Z Z
A de X A de T par X
A de Y A de T par Y

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 34


Classe abstraite
Le nom des
Classe abstraite classes abstraites
est en italique

Classe concrète A Classe concrète B

:Y :z :z

:y
:Y
:y
:z
P(x)
P(y) y z P(z)
X

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 35


Généralisation

Liste Tableau

<<implémentation>>

Liste Fixe

Liste Fixe ne publie pas l’interface de Tableau, elle s’en


sert uniquement pour l’implantation de la liste

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 36


Généralisation : Contraintes
Article

{disjoint}
Luxe Alimentaire

{overlapping, incomplete}
Unité Pack Pâtes Conserves

• Overlapping, disjoint, complete, incomplete

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 37


Autres
• Port : moyen de communication entre Deux classes
indépendamment de leurs technologies d’implantation, 2
classes si elles ont des ports compatibles pourront
communiquer même si elles sont implantées dans des
langages différents

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 38


Covariance
A nim al

B ipède Quadrupède

Herbivore Carnivore Herbivore Carnivore

A nim al
Covarian ce

Carnivore Herbivore

B ipède Quadrupède B ipède Quadrupè de

Covarianc e

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 39


Délégation

• Elimination de la covariance

A nim al

S tation Nourriture

B ipède Quadrupède Herbivore Carnivore

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 40


De la difficulté de classer

• Dépendant du point de vue

• Bien discriminer les objets


• Des exceptions
• Stables et extensibles
• Covariance

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 41


Principe de substitution (1)

• Classification ou non ?
« Il doit être possible de substituer n’importe quel
objet instance d’une sous-classe à n’importe quel
objet instance d’une super-classe sans que la
sémantique du programme écrit dans les termes de
la super-classe ne soit affectée. » (Barbara Liskov)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 42


Principe de substitution (2)

CP
:CP :CP

:CP :CP
:CP

:CE :CP
CE

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 43


Non respect du principe de substitution
Oiseau
P lum es
B ec Voler()
{
V oler() M ettre la tête dans le sable Le m oineau
} s 'envole

M és ange M oineau A ut ruche


: M oineau
1: V oler La m és ange
s 'envole

2: V oler
: Sauve teur : M ésan ge

3: V oler

L'autruche se
c ac he la tête

: A utruc he

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 44


Implantation (1)

Class Classe {
Classe private:
Attributs Attributs
Public:
Méthodes Méthodes
}

SousClasse
Class SousClasse : public Classe {…}

Répertoire

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 45


Implantation (2)

C1 C2

class C2 {
Class C1 { private:
private: …
C2 LeC2 }
}

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 46


Implantation (3)

C1 C2

Class C1 { class C2 {
private: private:
C2 LeC2 C1 LeC1
} }

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 47


Implantation (4)

0,1
C1 C2

Class C1 { class C2 {
private: private:
C2 *LeC2 C1 LeC1
} }

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 48


Implantation (5)
*
C1 C2

Class C1 { class C2 {
private: private:
Collection<C2> LesC2 C1 LeC1
} }
ordered unique structure de données
false true Ensemble
true true Ensemble ordonné
false false Multi-ensemble (bag)
true false Séquence

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 49


Implantation
• La composition s’implante par une classe interne privée
en Java

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 50


Implantation (6)

C1 Collection<C2>

C2
UnType
Collection

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 51


Implantation (7)

<<persistant>> <<persistant>>
C1 C2

<<persistant>>
C3

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 52


Implantation (7)
Comme dans E/A :
• C1, C2, C3 Relations
•Associations suivants cardinalités
•Héritage : Reférentiation ou Propagation ou les deux
• Méthodes deviennent des procédures stockées ou des
traitements
 Plus aucun lien avec l’objet

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 53


Implantation (8)
SGBDR + Langage Objet

<<persistant>> C1
C1

ProxyC1

SGBDR

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 54

Vous aimerez peut-être aussi