conception objet chapitre 3 les diagrammes de classes
TRANSCRIPT
![Page 1: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/1.jpg)
Conception Objet
Chapitre 3
Les diagrammes de classes
![Page 2: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/2.jpg)
Présentation générale
Point central du développement objet Décrit la structure d’un système Lors de l’analyse et conception
Comprendre les objets manipulés Exprimer la manière de satisfaire leur rôle
Commence quand les exigences sont arrivées à maturité
On continue en // la modélisation des interactions
![Page 3: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/3.jpg)
Définitions
Classe Description abstraite d’un ensemble d’objets aux
mêmes caractéristiques (Voiture, Personne) Rectangle compartimenté
Objet Entité possédant une identité et encapsulant un
état et un comportement (MaTwingo, Dupont) Un objet est une instance d’une classe
![Page 4: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/4.jpg)
Définitions
Attribut Type d’information contenue dans une classe
(couleur, cylindrée, etc) Opération
Ce qu’une classe peut faire Spécification d’un service offert par la classe
Association Relation sémantique durable entre 2 classes
(Personne possède Voiture)
![Page 5: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/5.jpg)
Modèle graphique
Graphisme général
Personne Voiture1 0..*
Possède
Personne Voiture
1 0..*
Possède
IdPersonne
Nom
Prénom
Date de Naissance
ImmatriculationMarqueModèleDate d’immatriculation
![Page 6: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/6.jpg)
Modèle graphique
Graphisme classe
![Page 7: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/7.jpg)
Modèle graphique
![Page 8: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/8.jpg)
Attribut et opération
attribut Syntaxe : Visi nom [mult ordre] : type = valinit
opération Syntaxe : Visi nom (listePar) : typeRetour Constructeur : opération qui crée un objet Destructeur : opération qui détruit un objet
![Page 9: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/9.jpg)
Visibilité
+ Attribut public# Attribut protégé- Attribut privé
+ Opération publique()# Opération protégée- Opération privée
![Page 10: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/10.jpg)
Relations
Relations entre classes Relation de dépendance
Bidirectionnelle ou Unidirectionnelle Relation d’utilisation Correspond à l’envoi d’un message paramétré d’un objet
à un autre
![Page 11: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/11.jpg)
Relations
Une relation porte un nom Peut être accompagnée d’un sens de
lecture Peut être amenée à spécifier le rôle que
joue chaque classe (à côté de la classe qui joue le rôle)
Peut porter des cardinalités (1, 1..*, 2..5); Lecture inverse des MCD
Peut être n-aire (relier plus de 2 classes)
![Page 12: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/12.jpg)
Exemples de relations
![Page 13: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/13.jpg)
Multiplicité d’associations
Multiplicité des associations (cardinalités)
1 Un et un seul
0..1 Zéro ou un
M..N De M à N (entiers)
* De zéro à plusieurs
0..* De zéro à plusieurs
1..* De un à plusieurs
![Page 14: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/14.jpg)
Classes associatives
Pour associer des attributs et/ou des méthodes aux associations
=> classes associatives Les classes associatives sont des
associations mais aussi des classes. Elles ont donc les mêmes propriétés et
peuvent par exemple être liées par des associations.
![Page 15: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/15.jpg)
Exemple de classe associative
![Page 16: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/16.jpg)
Exemple de classe associative
Personne Société1 0..2
employé employeur
Emploi
salaire
augmenter ()
![Page 17: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/17.jpg)
Exemple de classe associative
Personne Société1 0..2
employé employeur
Emploi
salaire
augmenter ()
Fichedepaie11..*
![Page 18: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/18.jpg)
Agrégation
Agrégation Cas d’association particulière non
symétrique. Exprime une relation de contenance (contient).
Pas de concensus sur la signification exacte de l'aggrégation
Utiliser avec précautions (ou ne pas utiliser...)
Agrégat Elément1..* 0..*
![Page 19: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/19.jpg)
![Page 20: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/20.jpg)
Composition
Agrégation plus forte. Composition tout ou partie Contraintes liées à la composition :
1. Un objet composant ne peut être que dans 1 seul objet composite
2. Un objet composant n’existe pas sans son objet composite
3. Si un objet composite est détruit, ses composants aussi On peut emboîter les classes pour une composition
(classes et associations incluses dans la classe)
Composite Elément0..*1
![Page 21: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/21.jpg)
Exemple de composition
![Page 22: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/22.jpg)
Plusieurs modélisation de la composition
![Page 23: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/23.jpg)
Exemple de composition
![Page 24: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/24.jpg)
Qualifieur
Un qualifieur est un attribut ou un ensemble d'attributs dont la valeur sert à déterminer l'ensemble des instances associées à une instance via une association. Les attributs du qualifieur sont des
attributs de l'association.
![Page 25: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/25.jpg)
Exemple de qualifieur
![Page 26: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/26.jpg)
Exemples de qualifieur
![Page 27: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/27.jpg)
Exemples de qualifieur
Exemple
![Page 28: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/28.jpg)
Résumé du diagramme de classes
![Page 29: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/29.jpg)
Premiers exercices
Photocopie TD1
![Page 30: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/30.jpg)
Interfaces
Peut contenir des opérations, pas d’attributs, pas d’associations ni de méthodes
Définit un service ou un contrat Collection d’opérations publiques Lors analyse et conception : identifier les services
qu’offrent les classes et leurs objets
IGestionnaireProjet
![Page 31: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/31.jpg)
Généralisation et spécialisation
Classe plus générale reliée à 1 ou plusieurs autres classes spécialisées (sous-classes) par généralisation.
Les sous-classes héritent des propriétés des super-classes et peuvent comporter des propriétés spécifiques.
Exemples : Voiture, Bateau, Avions sont des Moyens de transport (Marque, Modèle, Vitesse)Bateau est le seul à avoir un tirant d’eau
![Page 32: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/32.jpg)
Exemple de généralisation
![Page 33: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/33.jpg)
Exemple de généralisation
![Page 34: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/34.jpg)
Classe abstraite
Classe qui ne s’instancie pas directement
Représente une pure abstraction afin de factoriser des propriétés communes
Exemple : Moyen de transport (noté en italique)
![Page 35: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/35.jpg)
Réalisation
La source prend en charge les opérations de l’élément cible
![Page 36: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/36.jpg)
Exemple de réalisation
![Page 37: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/37.jpg)
Dépendance
La source utilise la cible Si la cible change, la source risque
d’être affectée
![Page 38: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/38.jpg)
Exemple de dépendance
![Page 39: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/39.jpg)
Exercices
Photocopie TD2
![Page 40: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/40.jpg)
Réaliser un diagramme de classes
Comment identifier les classes ? Entités autonomes reliées entre elles
par des relations Autonomie essentielle pour
réutilisabilité Technique ascendante permet d’utiliser
les composants existants
![Page 41: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/41.jpg)
Réaliser un diagramme de classes
Les principes de la conception reposent sur quatre principes essentiels : réification ou comment faire un objet de
quelque chose. L'autonomie et la localité, ou comment penser
dans les propres termes de l'objet. La composition et l'affinage, ou comment
structurer les objets. La généricité, ou comment développer des
applications de manière abstraites.
![Page 42: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/42.jpg)
Réaliser un diagramme de classes
Un cycle de conception s'effectue en cinq étapes :
1. Identifier les entités du domaine. 2. Structurer le domaine en analysant les
propriétés des entités et des relations3. Identifier les opérations que savent effectuer
ces entités.4. Décrire précisément ces opérations en les
reliant à des messages. 5. Décrire le lancement du programme.
![Page 43: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/43.jpg)
Réaliser un diagramme de classes
A partir d’un cahier des charges (ou document de spécification) Mot clé Ne pas choisir comme nom le rôle Les classes peuvent évoluer (incrémental)
Attention à la surabondance de classes Classes d’objets du monde modélisé Plus difficile pour une appli abstraite (SE)
qu’une appli qui gère des objets physiques (livres, CD, etc).
![Page 44: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/44.jpg)
Réaliser un diagramme de classes
Comment identifier les attributs ? A partir d’un cahier des charges
Propriétés des objets Pour l’analyse ne retenir que les importants
![Page 45: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/45.jpg)
Réaliser un diagramme de classes
Comment identifier les relations ? A partir d’un cahier des charges
Verbes Dépendances entre classes modélisées
par des relations et non des attributs
![Page 46: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/46.jpg)
Réaliser un diagramme de classes
Identifier les entités Classes principales (principaux concept
du domaine) Difficulté : les bonnes classes Noyau minimal qu’on enrichira Liste exhaustive sur la fin de la
conception
![Page 47: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/47.jpg)
Réaliser un diagramme de classes
Structurer le domaine Organiser et relier les classes Relations taxonomiques Relation méronomiques (même
hiérarchie ou hiérarchie différente)
![Page 48: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/48.jpg)
Réaliser un diagramme de classes
identifier les opérations Aspects dynamiques Identifier ce qu’on peut effectuer avec les
objets S’intéresser aux messages
![Page 49: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/49.jpg)
Exercice de conception
Selon le modèle que l’on vient de voir Gestion des examens à l’IUT :
réservation des salles, établissement du planning, mise en place de la surveillance, saisie et diffusion des notes
![Page 50: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/50.jpg)
Paquetage et sous-système
Organisation du système qui possède beaucoup d’objets
Prendre en compte Les compromis techniques Les éléments à développer en // Les éléments à acheter Les éléments à réutiliser
![Page 51: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/51.jpg)
Package
Élément de groupement et d’organisation dans lequel se trouvent des éléments qui doivent être nommés de façon unique
Représenté par un dossier (proche répertoire SE)
Un paquetage peut en inclure d’autres
![Page 52: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/52.jpg)
Package
Viser la cohérence et l’indépendance S’efforcer de minimiser les relations entre
packages Principalement utilisé lors des phases
d’analyse et conception
![Page 53: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/53.jpg)
Package
![Page 54: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/54.jpg)
PackageUne modification du package Interface entraîne des modifications du package Utilitaire
![Page 55: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/55.jpg)
Package
Relation de dépendance entre paquetages Au moins 1 classe du paquetage client
utilise les services offert par une classe du paquetage fournisseur
Toutes les classe ne sont pas forcément visibles
![Page 56: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/56.jpg)
Exemple
![Page 57: Conception Objet Chapitre 3 Les diagrammes de classes](https://reader033.vdocuments.site/reader033/viewer/2022051314/551d9da5497959293b8d6a9c/html5/thumbnails/57.jpg)
Sous-système
Collection organisée d’éléments que l’on peut composer en systèmes plus petits et finalement en éléments primitifs non décomposables : classes
Éléments qui ensemble offrent des services Le package n’est qu’un groupement logique Le système offre des services Les dépendances entre systèmes se basent
sur ces services