0% ont trouvé ce document utile (0 vote)
20 vues41 pages

Modélisation UML : Diagrammes de Classes

Le chapitre 4 traite de la modélisation statique en génie logiciel, en se concentrant sur les diagrammes de classes et d'objets. Il explique les concepts de classes, attributs, opérations, ainsi que les relations entre classes comme l'association, l'héritage, et la composition. Le chapitre souligne également l'importance de la cohérence entre le diagramme de classes et le diagramme d'objets.

Transféré par

djadchetiba
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)
20 vues41 pages

Modélisation UML : Diagrammes de Classes

Le chapitre 4 traite de la modélisation statique en génie logiciel, en se concentrant sur les diagrammes de classes et d'objets. Il explique les concepts de classes, attributs, opérations, ainsi que les relations entre classes comme l'association, l'héritage, et la composition. Le chapitre souligne également l'importance de la cohérence entre le diagramme de classes et le diagramme d'objets.

Transféré par

djadchetiba
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

Chapitre 4

Modélisation selon l’axe statique:


Diagramme de classes et
d’objets

1
• Introduction au Génie Logiciel (GL)
• Définitions
• Qualités d’un logiciel
• Crise du logiciel
• Processus de développement
• Modélisation orientée objet
• Concepts du paradigme orientée objet
• Présentation du langage UML
• Types de diagrammes UML
• Modélisation fonctionnelle
• Diagramme de cas d’utilisation
• Modélisation statique
• Diagramme de classe
• Diagramme d’objet
• Modélisation dynamique
• Diagramme d’activité
• Diagramme de séquence
• …
2

Rappel sur les diagrammes UML
Axe de Modélisation Statique
(ce que le système EST)
Diagramme de Classes
Diagramme d’Objets
Diagramme de Composants
Diagramme de Déploiement

Fonctionnel Dynamique
(ce que le système FAIT) (Comment le système EVOLUE)
Diagramme d'Etats-Transitions
Diagramme de cas d’utilisation Diagramme d'Activité
Diagramme de Séquence
Diagramme de Collaboration
3
Diagramme de Classes
• Représentation de la structure interne du logiciel et
des liens entre les entités qui le composent
• Utilisé principalement en phase de Conception

DCL = Classes + Relations

4
Diagramme de Classes
• Classe: Famille d’objets de même nature (mêmes
caractéristiques & même comportement)

Nom de la classe

attributs

opérations

Possibilité d’ajouter des compartiments (e.g., Exceptions)


5
Diagramme de classes

Plusieurs niveaux de détails


 Possibilité d’omettre attributs et/ou opérations

6
• Déclaration des attributs d’une classe:
<visibilité> [/] <nom attribut> :
<type> [ '['<multiplicité>']' [{<contrainte>}] ] [ = <valeur init> ]

<Visibilité> : + (public), # (protégé), ∼ ou rien (package), - (privé)


[/] : précède un attribut dérivé
<nom_attribut> : nom de l’attribut
<type>: nom de classe, nom d’interface, type de donnée
<multiplicité>: nombre de valeurs que l’attribut peut contenir (Par défaut: 1,1 i.e. 1 et 1
seule valeur). Exp: matieresL2[1,7]  peut indiquer de 1 à 7 noms de matières.
<contrainte> : préciser si les valeurs sont ordonnées ({ordered}) ou pas ({list})

maClasse
Remarque:
Attribut souligné = Variable de classe -compteur: int = 0
+date_naissance: date
#salaire: float
+/moyenne: float
+nbrPersonne: int

7
Exemples de classes

Personne

Nom : String
Adresse: String
Date_naissance: Date
Email: String
/ Age: Integer

Age = Date actuelle – Date naissance

8
Déclaration des opérations d’une classe
<visib> <nom méth> ([<param 1>, ... , <param N>]) :
[<type renvoyé>] [{<propriétés>}]
• <visibilité> : + (public), # (protégé), ∼ ou rien (package), - (privé)
• <nom méthode> : nom de l’opération
• <param_1>, ... , <param_N>: liste des paramètres
• <type renvoyé>: type du résultat renvoyé
• <propriétés>: contraintes, exceptions, préconditions…
Remarque:
Opération soulignée = méthode de classe
Possibilité de surcharger une opération : même nom mais paramètres différents

Syntaxe de définition d’un paramètre


[<direction>] <nom param>:<type> ['['<multipl>']'] [=<val par déf>]

Compte
in, out, inout
-solde: float

in (par défaut): passage par valeur (modifications du +créditer(m:float)


param ne sont pas disponibles pour l'appelant) +débiter(m:float)
out : pas de valeur d'entrée et la valeur finale est +getSolde(): float
disponible pour l'appelant +fixeTauxTVA(float) 9
Classe/Méthode abstraite
Méthode abstraite  on connaît sa
signature mais pas la manière dont elle peut être
réalisée Ecrire son nom en italique
ou rajouter le stéréotype
Classe abstraite  peut contenir des <<abstract>>
méthodes abstraites ou lorsqu’une classe parent
contient une méthode abstraite non encore
implémentée

-Impossible d’instancier une classe abstraite


-Pour les interfaces  <<Interface>>

10
Correspondances UML – Code

11
Correspondances UML - Code

12
Relations entre classes: Association
• Association binaire
• Rôle: Nomme l’extrémité d’une association, permet d’accéder aux
objets liés par l’association à un objet donné
• Multiplicité: Contraint le nombre d’objets liés par l’association

13
Relations entre classes: Association
• Multiplicité ou cardinalité: Nombre d’objets de la classe B
associés à un objet de la classe A

14
Relations entre classes: Association
Association réflexive

Association multiple

15
Relations entre classes: Association

• Association n-aire = reliant plus de deux classes

NB. Les associations n-aires ne sont pas recommandées, il est préférable


d’utiliser des classes-association et relations binaires
16
Relations entre classes: Association
Classe association
• Se connecte à deux ou plusieurs classes
• Peut posséder des attributs et des opérations

17
Relations entre classes: Association
Classe association

18
Relations entre classes: Association
Classe association

Equivalence

19
Relations entre classes: Association
Classe association

Equivalence

20
Relations entre classes: Héritage
• Factoriser les propriétés/opérations communes entre classes
• Organiser en arborescence (super classe et sous-classes)
• Classe spécialisée  comporte des attributs/méthodes supplémentaires

super-classes

spécialisation généralisation

sous-classes

21
L’héritage multiple est possible en UML (une classe
possède plusieurs classes parents)

Véhicule

Bateau Avion

Hydravion

22
Relations entre classes: Agrégation/Composition

• Objectif  Eviter la répétition des associations « Contient »


• Indicateurs: est une partie de, se compose, contient, comporte, inclut,
comprend …
• « se compose/est composé de » n’implique pas forcément une
composition
• Composition = Agrégation forte

23
-La destruction de l’objet composé
entraine celle des composants
-L’objet composant ne peut pas exister
(n’est pas utile) sans l’objet composite
-Un objet appartient à au plus un
composite à la fois
Ou 0..1

-A un instant donné, un objet agrégé peut


appartenir à plusieurs agrégats

- Création/destruction de l’agrégat est


indépendante de la création/destruction
de ses éléments
24
Agrégation/Composition
• Est-ce que la destruction de l'objet composite implique nécessairement la
destruction des objets composants (les composants n'ont pas d'autonomie
vis-à-vis des composites) ?

• Lorsque l'on copie le composite, doit-on aussi copier les composants ?

Si on répond par OUI à ces deux questions  Composition

25
26
27
28
29
Passage vers le relationnel
Association 1 à *  Mettre une référence dans la table placée dans l’extrémité *

Association * à * (avec ou sans classe association)  Création d’une nouvelle table


qui a une clé composée + les attributs de l’éventuelle classe association
Passage vers le relationnel
Fusionner les deux classes dans une seule table

Association 1 à 1

Garder deux tables en référençant une par l’autre


Passage vers le relationnel
Composition/Agrégation : Mettre une référence dans les classes composantes
Passage vers le relationnel
-Les classes filles n’ont pas beaucoup d’attributs  Garder la classe mère
et remplacer les classes filles par un attribut
Héritage
-Les classes filles ont beaucoup d’attributs  Garder les classes filles en
dupliquant les attributs
Elaboration d’un DCL

• Identifier les classes

• Etablir les associations

• Définir les attributs/méthodes

• Simplifier et optimiser le modèle (classes


redondantes, associations ternaires, héritages…)

34
Diagramme d’objet (DOB)
• Objets (instances de classes) + Liens (instances d’associations)
• Liens : nom souligné et pas de multiplicité

-Donner une vue sur l’état du système à un moment donné


Objectifs
-Illustrer un exemple du diagramme de classe

Diagramme évoluant avec l’exécution du logiciel :


• Création/suppression des objets
• Modification de l’état des objets (valeurs des attributs)
• Modification des relations entre objets

35
Représentation des objets
• L’objet est représenté par un rectangle, contenant le nom de
l’objet suivi du signe « : » et du nom de sa classe, le tout
étant souligné d’un trait

• Il est également possible de représenter un objet sans lui


donner de nom

• On peut également faire apparaître des valeurs d’attributs

• Le compartiment des opérations n’est pas utile

• Groupes d’objets instances d’une même classe:


36
Diagramme d’objets (DOB)
• Le DCL modélise les règles et le DOB modélise des faits.

DCL DOB

37
Représentation des liens entre objets
DCL DOB

38
Cohérence DCL / DOB

39
Cohérence DCL / DOB

40
Exemples
Considérons les phrases suivantes :

1. Une personne peut avoir plusieurs voitures.


2. Un répertoire contient des fichiers.
3. Une pièce contient des murs.
4. Les imprimantes et claviers sont des périphériques
d’entrée/sortie.

Déterminez la relation appropriée (généralisation, composition,


agrégation ou association) dans chaque phrase.

41

Vous aimerez peut-être aussi