Notation
Principaux diagrammes
Exercices
Abstraction
Abstraction
Définition
Un objet est un élément du domaine étudié possédant des
frontières bien définies
L’objet « ma voiture »
Etat :
Numéro = 74b 56 211
Couleur= blanche
Marque = renault
Comportement :
Rouler
Notation d’un
Transporter objet en UML
Etc …
liens
Abstraction
Définition
Une classe est l’abstraction d’un ensemble d’objets ayant des
états et des comportements similaires
Une classe est un type et permet de créer des objets
(« moule » à objet)
Un classe est caractérisée par
Des attributs simples (type de base)
Des associations (attributs référençant d’autres classes)
Des opérations (comportement)
Une classe = un deuxième niveau d’abstraction
monde réel objets (niveau 1) classes (niveau 2)
attributs
associations
opérations
MSIAG 2007-2008 UML & POO – Section 2 10
Exercice 1 : objet ou classe ?
Indiquer parmi cette liste qui est un objet et qui est une classe
Une chaise
Joel Costigliola
Le tableau
Dieu
Une voiture
Un professeur
La F1 de Schumacher
Définition
La visibilité d’un attribut ou d’une opération permet de
déterminer qui pourra y accéder.
Notion fondamentale pour le concept objet d’encapsulation
3 types de visibilité
« + » ou public : tout le monde peut y accéder
« # » ou protected : seules la classe possédant l’élément et les
classes filles peuvent y accéder (voir notion d’héritage)
« - » ou private : seule la classe possédant l’élément peut y
accéder
Raisonnement en 2 étapes
Abstraction
Définition
Formalisme
Abstraction
Définition
Abstraction
Définition
Agrégation
Association particulière spécifiant une relation
composite (agrégat) – composant
Définition
ou des opérations
Énoncé
Définition
Exemple
Abstraction
Définition
L’héritage est une relation entre classes dont l’une (la classe
fille ou sous classe) partage la structure et le comportement
de l’autre (la classe mère ou super classe)
Spécialisation
Consiste à ajouter une nouvelle classe qui hérite d’une
classe existante
La sous classe peut spécialiser un comportement défini
dans la super classe (mais ce n’est pas obligatoire)
Spécialisation Généralisation
Principe de substitution
Une instance d’une sous classe doit pouvoir être utilisée là
où l’on requiert une instance de la super classe
Spécialisation Généralisation
Définition
Classe dont les instances sont obligatoirement des instances
d’une de ses sous classes
On ne peut pas instancier une classe abstraite !
Une classe abstraite peut implémenter ou non des opérations
Les classes filles doivent obligatoirement implémenter les
opérations abstraites de la classe abstraite
Une classe abstraite peut avoir des attributs
3ème niveau d’abstraction :
monde réel objet classe classe abstraite
Définition
Flèche signifiant
« implémente »
composition ou héritage
Abstraction
Définition
Évolution de la
classe voiture
Abstraction
Définition
Capacité des objets d’une même hiérarchie de classe à
répondre différemment à la même demande (opération)
Les classes filles peuvent implémenter différemment les
opérations de la classe mère
Intérêt
Hériter d’une classe mais pouvoir redéfinir/spécialiser un
comportement
Pouvoir gérer des listes d’objets en sachant qu’ils répondront
au même message mais avec leur comportement spécifique
Abstraction
Monde réel
Pas d’abstraction
Objet
Classe
Définition
Décrit la vue statique d’un système en termes de classes
et de relations entres ces classes
Contenu
Classes, associations, héritage, attributs opérations
Conseils
Avoir un objectif : que veut on expliquer grâce à ce
diagramme ?
Ne pas surcharger ses diagrammes de classes, en faire
plusieurs si nécessaires pour faciliter la compréhension
Un diagramme doit être commenté pour mettre en évidence
les éléments peu explicites
Ne pas chercher à exprimer la dynamique du système, il existe
d’autres diagrammes adaptés à cela
Préférer un commentaire à une notation UML avancée (ceux
qui vont vous lire ne sont pas toujours des experts UML !)
Définition
Décrit la vue dynamique d’un système en termes d’objets et
de messages
Montre comment les objets collaborent entre eux pour
réaliser une fonctionnalité
La collaboration entre objets se fait au travers de messages,
un message étant une demande d’exécution d’une opération
sur l’objet recevant le message
Montre l’enchaînement des messages en insistant sur la
chronologie
Contenu
Des objets (et non des classes !)
Les messages échangés entre objets (appels de méthodes)
Les lignes de vie des objets
Les activations de l’objet représentant quand il est en train
d’effectuer une opération
A quoi sert il ?
à trouver les opérations des classes permettant de réaliser
une fonctionnalité donnée
À décrire un scénario particulier (ex : un scénario d’erreur)
Conseils