Chapitre - 1 - POO Avancée
Chapitre - 1 - POO Avancée
Chapitre - 1 - POO Avancée
1 Introduction
2 Diagramme de classes
Présentation de diagramme de classes
Héritage
Classes abstraites et interfaces
Classe paramétrée
Paquetage ou package
3 Diagramme des objets
Présentation de diagramme d’objets
Transition entre diagrammes de classes et d’objets
Les objets composites
4 Exercices corrigés
5 Références
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation 2
orientée
/ 87 objet
Introduction
Exemples d’objets
Un objet est fabriquée (créé) à partir d’un modèle appelé classe (on
parle d’instanciation).
On définit l’objet comme l’instance d’une classe.
Une classe est un ensemble d’objets qui ont en commun les mêmes
méthodes et les mêmes types d’attributs.
Une classe définit un type qui peut être vue comme une fabrique
d’objets et qui comporte la déclaration des attributs et la déclaration
et la définition des méthodes.
Classe = attributs + méthodes + instanciations
Instances de classe
Plan
1 Introduction
2 Diagramme de classes
Présentation de diagramme de classes
Héritage
Classes abstraites et interfaces
Classe paramétrée
Paquetage ou package
3 Diagramme des objets
Présentation de diagramme d’objets
Transition entre diagrammes de classes et d’objets
Les objets composites
4 Exercices corrigés
5 Références
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation14
orientée
/ 87 objet
Diagramme de classes Présentation de diagramme de classes
Exemple
On peut accéder à ses voitures à partir d’une personne ; pas à ses
propriétaires à partir d’une voiture.
Association bidirectionnelle
Association réflexive
Une classe peut être associée à elle-même.
Une classe peut contenir une référence à des objets de même classe.
Association multiple
Les classes ont plusieurs relations distinctes entre elles ; auquel cas, on
prend alors soin de préciser le nom de chaque association et pour
chacune d’entre elles le rôle de chaque classe, afin de distinguer
l’utilité des différentes relations.
Attributs d’association
Un attribut d’association est un attribut qui caractérise l’association et
pas seulement une de ses classes extrémités.
Dans le cas d’une multiplicité 1, il est possible mais non souhaitable
d’attacher l’attribut d’association à la classe (salaire sur Personne si
elle ne peut travailler que dans une seule entreprise).
Exemple
Le salaire sur Personne si elle ne peut travailler que dans une seule
entreprise.
Association n-aire
Association n-aire= une association parmi 3 classes ou plus. Chaque
instance de l’association est un n-tuple de valeurs des classes
respectives.
Agrégation
Remmarque
L’agrégation signifie qu’un objet en contient d’autres.
Agrégation : exemples
Composition
Composition : exemples
Composition
La composition peut être vue comme une relation “fait partie de” (“part
of”), c’est à dire que si un objet B fait partie d’un objet A alors B ne peut
pas exister sans A. Ainsi si A disparaît alors B également.
Agrégation
L’agrégation quant à elle est vue comme une relation de type “a un” (“as
a”), c’est à dire que si un objet A a un objet B alors B peut vivre sans A.
Agrégation : Implémentation
Composition : Implémentation
Composition
1 public final class Voiture {
2 private final Chassis chassis;
3 private Voiture() { chassis = new Chassis(); }
4 ... }
5 public final class Chassis { }
Plan
1 Introduction
2 Diagramme de classes
Présentation de diagramme de classes
Héritage
Classes abstraites et interfaces
Classe paramétrée
Paquetage ou package
3 Diagramme des objets
Présentation de diagramme d’objets
Transition entre diagrammes de classes et d’objets
Les objets composites
4 Exercices corrigés
5 Références
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation38
orientée
/ 87 objet
Diagramme de classes Héritage
Relation d’héritage
L‘héritage : exemple 2
Terminologie de l’héritage
Exemple
Plan
1 Introduction
2 Diagramme de classes
Présentation de diagramme de classes
Héritage
Classes abstraites et interfaces
Classe paramétrée
Paquetage ou package
3 Diagramme des objets
Présentation de diagramme d’objets
Transition entre diagrammes de classes et d’objets
Les objets composites
4 Exercices corrigés
5 Références
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation47
orientée
/ 87 objet
Diagramme de classes Classes abstraites et interfaces
Classes abstraites
Une méthode est dite abstraite lorsqu’on connaît son entête mais pas
la manière dont elle peut être réalisée.
Il appartient aux classes dérivées de définir les méthodes abstraites.
Une classe est dite abstraite lorsqu’elle définit au moins une méthode
abstraite ou lorsqu’une classe parent contient une méthode abstraite
non encore réalisée.
Une classe abstraite est représentée comme une classe avec un nom en
italique ou avec le mot clé {abstract}.
Interface
Une interface n’est pas une classe, c’est une liste d’opérations.
Une interface, comme une classe abstraite, ne peut pas servir à créer
un objet.
Le rôle d’une interface est de regrouper un ensemble d’opérations
assurant un service cohérent offert par un classeur et une classe en
particulier.
Une interface est définie comme une classe, avec les mêmes
compartiments. On ajoute le stéréotype interface avant le nom de
l’interface.
On utilise une relation de type réalisation entre une interface et une
classe qui l’implémente.
Les classes implémentant une interface doivent implémenter toutes les
opérations décrites dans l’interface.
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation50
orientée
/ 87 objet
Diagramme de classes Classes abstraites et interfaces
Exemple d’interface
Implémentation-héritage
Plan
1 Introduction
2 Diagramme de classes
Présentation de diagramme de classes
Héritage
Classes abstraites et interfaces
Classe paramétrée
Paquetage ou package
3 Diagramme des objets
Présentation de diagramme d’objets
Transition entre diagrammes de classes et d’objets
Les objets composites
4 Exercices corrigés
5 Références
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation53
orientée
/ 87 objet
Diagramme de classes Classe paramétrée
Classe paramétrée/générique *
Classe paramétrée/générique = paramétrée par des types.
Attributs génériques = typés avec le type en paramètre.
Opérations génériques = arguments et / ou type de retour génériques.
Plan
1 Introduction
2 Diagramme de classes
Présentation de diagramme de classes
Héritage
Classes abstraites et interfaces
Classe paramétrée
Paquetage ou package
3 Diagramme des objets
Présentation de diagramme d’objets
Transition entre diagrammes de classes et d’objets
Les objets composites
4 Exercices corrigés
5 Références
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation57
orientée
/ 87 objet
Diagramme de classes Paquetage ou package
Package
Notation
Un paquetage est représenté par un dossier contenant un nom.
Le nom du paquetage peut être préfixé par le nom du paquetage qui le
contient.
Le contenu du paquetage peut être exposé.
Les éléments constituant le paquetage donne la visibilité (privée,
publique, protégée) qu’ils affichent vis-à-vis de l’extérieur.
Paquetage : exemple
Encapsulation
Exemple d’encapsulation
Paquetage (Recommandations)
Plan
1 Introduction
2 Diagramme de classes
Présentation de diagramme de classes
Héritage
Classes abstraites et interfaces
Classe paramétrée
Paquetage ou package
3 Diagramme des objets
Présentation de diagramme d’objets
Transition entre diagrammes de classes et d’objets
Les objets composites
4 Exercices corrigés
5 Références
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation67
orientée
/ 87 objet
Diagramme des objets Présentation de diagramme d’objets
Remarque
Le diagramme de classes modélise des règles et le diagramme d’objets
modélise des faits.
Les objets sont reliés par des instances d’associations : les liens.
Un lien représente une relation entre objets à un instant donné.
La multiplicité des extrémités des liens est toujours de 1.
Exemple
Plan
1 Introduction
2 Diagramme de classes
Présentation de diagramme de classes
Héritage
Classes abstraites et interfaces
Classe paramétrée
Paquetage ou package
3 Diagramme des objets
Présentation de diagramme d’objets
Transition entre diagrammes de classes et d’objets
Les objets composites
4 Exercices corrigés
5 Références
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation72
orientée
/ 87 objet
Diagramme des objets Transition entre diagrammes de classes et d’objets
Exemple de transition
Plan
1 Introduction
2 Diagramme de classes
Présentation de diagramme de classes
Héritage
Classes abstraites et interfaces
Classe paramétrée
Paquetage ou package
3 Diagramme des objets
Présentation de diagramme d’objets
Transition entre diagrammes de classes et d’objets
Les objets composites
4 Exercices corrigés
5 Références
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation77
orientée
/ 87 objet
Diagramme des objets Les objets composites
Exemple
Exercice 1
Corrigé
Exercice 2
Un hôtel est composé d’au moins deux chambres. Chaque chambre dispose
d’une salle d’eau qui peut être une douche ou une salle de bain. L’hôtel
héberge des personnes. Il peut employer du personnel et est dirigé par un
des employés. L’hôtel a les caractéristiques suivantes : une adresse, le
nombre de pièces, la catégorie. Une chambre est caractérisée par le nombre
et le type de lits, le prix et le numéro. On peut calculer le chiffre d’affaires
et le prix de la chambre en fonction du nombre d’occupants. On gère aussi
la réservation des chambres. On peut connaître à tout moment la
disponibilité des chambres.
Proposer le diagramme de classe qui vous paraît la plus adaptée.
Corrigé
Exercice 3
Représenter le diagramme d’objets correspondant au diagramme de
classes suivant :
Le système gère un seul bâtiment contenant trois portes.
Le système peut être géré par une personne nommée Tolkien.
Deux utilisateurs peuvent accéder au bâtiment :
Gandalf a accès à la première (8h-18h) et seconde porte (12h-24h).
Bilbon a accès à la troisième porte toute la journée.
Corrigé
Références
1 Pascal Roques, UML 2 par la pratique: études de cas et exercices
corrigés, Groupe Eyrolles.
2 Pierre Gérard, Introduction à UML 2: Modélisation Orientée Objet de
Systèmes Logiciels, Cours DUT Informatique S2D, Université de Paris
13 IUT Villetaneuse.
3 G. BOOCH, J. RUMBAUGH et Y. JACOBSON, Le guide de
l’utilisateur UML , (Eyrolles, 2000).
4 P. A. MULLER et N. GAERTNER, Modélisation objet avec UML ,
(Eyrolles, 2000).
5 Pierre-Alain Muller and Nathalie Gaertner. Modélisation objet avec
UML. Eyrolles, 2è edition, 2003.
6 James Rumbaugh et al. Modélisation et conception orientée objet.
Masson, 1994.
7 OMG. UML Resource Page. http ://www.omg.org/uml/.
8 Martin Fowler. UML 2.0. CampusPress Référence, 2004.
Année Universitaire : 2024/2025
Prof. Said El Kafhali Chapitre 1 : Concepts de la programmation87
orientée
/ 87 objet