Conception Objet Chapitre 3 Les diagrammes de classes.

Post on 04-Apr-2015

119 views 3 download

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

talon
Utilise
talon
réalise

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