Conception Objet Chapitre 3 Les diagrammes de classes.
-
Upload
godelieve-dubost -
Category
Documents
-
view
119 -
download
3
Transcript of Conception Objet Chapitre 3 Les diagrammes de classes.
Conception Objet
Chapitre 3
Les diagrammes de classes
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
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
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)
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
Modèle graphique
Graphisme classe
Modèle graphique
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
Visibilité
+ Attribut public# Attribut protégé- Attribut privé
+ Opération publique()# Opération protégée- Opération privée
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
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)
Exemples de relations
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
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.
Exemple de classe associative
Exemple de classe associative
Personne Société1 0..2
employé employeur
Emploi
salaire
augmenter ()
Exemple de classe associative
Personne Société1 0..2
employé employeur
Emploi
salaire
augmenter ()
Fichedepaie11..*
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..*
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
Exemple de composition
Plusieurs modélisation de la composition
Exemple de composition
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.
Exemple de qualifieur
Exemples de qualifieur
Exemples de qualifieur
Exemple
Résumé du diagramme de classes
Premiers exercices
Photocopie TD1
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
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
Exemple de généralisation
Exemple de généralisation
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)
Réalisation
La source prend en charge les opérations de l’élément cible
Exemple de réalisation
Dépendance
La source utilise la cible Si la cible change, la source risque
d’être affectée
Exemple de dépendance
Exercices
Photocopie TD2
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
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.
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.
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).
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
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
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
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)
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
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
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
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
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
Package
PackageUne modification du package Interface entraîne des modifications du package Utilitaire
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
Exemple
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