Conception Objet Chapitre 3 Les diagrammes de classes.

57
Conception Objet Chapitre 3 Les diagrammes de classes

Transcript of Conception Objet Chapitre 3 Les diagrammes de classes.

Page 1: Conception Objet Chapitre 3 Les diagrammes de classes.

Conception Objet

Chapitre 3

Les diagrammes de classes

Page 2: 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

Page 3: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

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.

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.

Modèle graphique

Graphisme classe

Page 7: Conception Objet Chapitre 3 Les diagrammes de classes.

Modèle graphique

Page 8: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

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.

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.

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.

Exemples de relations

Page 13: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

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.

Exemple de classe associative

Page 16: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

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.

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.
Page 20: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

Exemple de composition

Page 22: Conception Objet Chapitre 3 Les diagrammes de classes.

Plusieurs modélisation de la composition

Page 23: Conception Objet Chapitre 3 Les diagrammes de classes.

Exemple de composition

Page 24: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

Exemple de qualifieur

Page 26: Conception Objet Chapitre 3 Les diagrammes de classes.

Exemples de qualifieur

Page 27: Conception Objet Chapitre 3 Les diagrammes de classes.

Exemples de qualifieur

Exemple

Page 28: Conception Objet Chapitre 3 Les diagrammes de classes.

Résumé du diagramme de classes

Page 29: Conception Objet Chapitre 3 Les diagrammes de classes.

Premiers exercices

Photocopie TD1

Page 30: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

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.

Exemple de généralisation

Page 33: Conception Objet Chapitre 3 Les diagrammes de classes.

Exemple de généralisation

Page 34: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

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.

Exemple de réalisation

Page 37: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

Exemple de dépendance

talon
Utilise
talon
réalise
Page 39: Conception Objet Chapitre 3 Les diagrammes de classes.

Exercices

Photocopie TD2

Page 40: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Package

Page 54: Conception Objet Chapitre 3 Les diagrammes de classes.

PackageUne modification du package Interface entraîne des modifications du package Utilitaire

Page 55: Conception Objet Chapitre 3 Les diagrammes de classes.

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.

Exemple

Page 57: Conception Objet Chapitre 3 Les diagrammes de classes.

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