Vous êtes sur la page 1sur 37

La programmation orientée

Objet / UML

Laurent Pérochon
Outils à utiliser

•Langage de •Méthode •Langage


modélisation d’analyse et de
de conception programmation
Pourquoi ?

Système réel Objectifs

Méthode
d’analyse et UP
de
conception

Langage de
modélisation
Langage de
Système programmation
UML Logiciel
modélisé
Orienté objet
L ’orientation Objet

C ’est une technique de modélisation de


système, associée à un langage de
programmation.
Le système

Un système est composé d ’objets en relation


Exemples :
• Une compagnie aérienne (avions, pilotes …)
• Un amphithéâtre (élèves, professeur, tables …)
Les objets

Les objets du système amphithéâtre

Paul
Table n°
n°1
Lucie
Chaise n°
n°2

Pascal
Table°
Table°2 Chaise n°
n°1
Les objets

Objet = attributs + Méthodes (Opérations)

Pascal Table°
Table°2

• 23 ans Attributs • 4 pieds


• célibataire • marron

• mange Opérations • ouverture tiroir


• dors Méthodes • tirer rallonge
• étudie
Les classes

Elles regroupent les objets ayant des


caractéristiques communes
(informations/comportements).
Même « moule »
Les classes

Objets
Paul
Table n°
n°1 Chaise n°
n°1

Pascal
Table°
Table°2 Chaise n°
n°2

Lucie

Classes
Personne Table Chaise
Les classes et les instances

Pascal Paul Lucie

• 23 ans • 25 ans • 20 ans


• célibataire • marié • célibataire
Objet
• mange • mange • mange Instance
• dors • dors • dors
• étudie • étudie • étudie

Personne
• âge
• statut marital
Classe
• mange
• dors
• étudie
Les classes et les instances

Chaque instance est forcément associée à


une classe.
Résumé : Entités de
l ’approche orientée objet

Objets Valeurs particulières

•Attributs
Classes
« Cases »
•Méthodes
vides
Les associations
(liens entre classes)

• Héritage
• Agrégation
• Association
• ...
L ’héritage
Généralisation/Spécialisation

•Lorsque des classes ont des caractéristiques


communes, ont peut mettre en commun ces
informations/comportements dans une classe
spécifique.
•Les classes d ’origine hériteront des
caractéristiques de celle-ci.
L ’héritage • âge
Personne

• statut marital
• mange
• dors
• étudie
Personne
• âge

• dors

Homme Bébé

• statut marital

• mange
• étudie • mange
L ’héritage • âge
Personne

• statut marital
• mange
• dors
• étudie
Personne
• âge

Modification
• dors
• mange
de ‘Mange’

Homme Bébé

• statut marital

• étudie
• mange
L ’héritage

Personne
• âge

• dors
Parent
• mange

Homme Bébé

• statut marital

• étudie
Descendants
• mange
Agrégation
Composition

l ’objet contient, regroupe, possède

Pied n°
n°1 Plateau Pied n°
n°3

rallonge
Table°
Table°2

Pied n°
n°2 Pied n°
n°4
tiroir

Exemple de relation « regroupe «


Association

Communication entre objets. Un objet


envoi un message/stimulus à un autre

Lucie
Demande rapport
Demande rapport
Envoi partie n°1
Professeur
Binôme n°
n°1
Martin
Envoi partie n°2

Remise rapport
Demande rapport
Pascal
Résumé

• Un objet/instance contient les données


(attributs) et les traitements (méthodes)
• Chacun d ’eux est associé à une classe
(moule)
• Les classes sont associées entre elles par
des relations
Exemple
Lucie
Demande rapport
Demande rapport
Envoi partie n°1
Professeur
Binôme n°
n°1
Martin
Envoi partie n°2

Remise rapport
Demande rapport
Pascal

Schéma logique
Les classes ?
•Qu’est ce qui agit, pense, fourni un service …?

Professeur Lucie
Martin Pascal

Personnes physiques qui ne font


pas la même chose

Et binôme n°1 ? …….


Les classes ?
•Sans objectifs plus précis, sans spécifications
supplémentaires, il y a plusieurs représentations
possibles

•simple •complexe
Les classes ?
Simple
instance
classe
-Élève
Personne -Lucie
-Statut
-Nom -Élève
Demande rapport() -Pascal
Envoie partie()
-Professeur
-Martin
Les classes ?
instance
Trop Simple -Élève
classe -Lucie
Personne
-Élève
-Statut -Pascal
-Nom
Demande rapport() -Professeur
Envoie partie() -Martin

•L’instance Lucie ne connaît quelle même


•L’instance de professeur ne connaît pas de binôme ni d’élève
•Et le binôme ? C’est le seul qui fait une remise de rapport
•Seul Professeur et binôme peuvent demander un rapport
•Seul les élèves remettent des parties de rapport
Les classes ?

•L’instance Lucie ne connaît quelle même


•L’instance de professeur ne connaît pas de binôme ni d’élève

Deux types de problèmes

•Et le binôme ? C’est le seul qui fait une remise de rapport


•Seul Professeur et binôme peuvent demander un rapport
•Seul les élèves remettent des parties de rapport
Les classes ?
•Et le binôme ? C’est le seul qui fait une remise de rapport
•Seul Professeur et binôme peuvent demander un rapport
•Seul les élèves remettent des parties de rapport

Il manque des notions/informations


+
Mélange de fonctions
Les classes ?
•Et le binôme ? C’est le seul qui fait une remise de rapport
Personne •Seul Professeur et binôme peuvent demander un rapport
•Seul les élèves remettent des parties de rapport

-nom
Correspondance

Professeur Élève Binôme


Appartient à
Demande rapport() Envoie partie() -numéro
Demande rapport()
Remise rapport()
Les classes ?
•L’instance Lucie ne connaît quelle même
•L’instance de professeur ne connaît pas de binôme ni d’élève

Personne divergence
-nom

Professeur Élève Binôme


Appartient à
Demande rapport() Envoie partie() -numéro
Demande rapport()
Remise rapport()
Les classes ?
Soit on fait une représentation spécifique
avec un seul binôme, soit on veut représenter
un système plus large

•Un professeur, une classe, des binômes et


Des élèves.

•Les spécifications du système étaient


insuffisantes
Les classes et les associations
?
Une solution possible : Classe
Demande rapport()

Dirige une Est composée de


Personne
Binôme
-nom -numéro
Demande rapport()
Remise rapport()

Est composé de

Professeur Élève
Demande rapport() Envoie partie()
Les classes et les associations
?
Classe

Demande rapport()

Est composé
composée de
Dirige une Personne
Binôme
-numé
numéro
-nom Demande rapport()
Remise rapport()

Est composé
composé de
Professeur Élève

Demande rapport() Envoie partie()

Le professeur connaît la classe qui connaît des binômes qui


savent qui les compose. Avec cette représentation le professeur
peut demander à tous les binômes, ou à un binôme particulier,
via la classe, un rapport.
Les classes et les associations
?
Et si le professeur veut contacter un élève en
Classe
Particulier ? Demande rapport()

Est composé
composée de
Dirige une Personne
Binôme
-numé
numéro
-nom Demande rapport()
Remise rapport()

Est composé
composé de
Professeur Élève

Demande rapport() Envoie partie()

Avec cette représentation il devra fournir le nom recherché à la classe,


qui demandera à chacun des binômes s’il le connaît … avec bien sûr des
méthodes supplémentaires dans professeur, classe, binôme.
Les classes et les associations
Une solution possible ?
Classe Est composée de
Demande rapport()

Dirige une
Binôme
Personne
-numéro
-nom Est composée de Demande rapport()
Remise rapport()

Professeur Élève
Demande rapport() Envoie partie()
Est composé de
Les classes et les associations
? Une autre plus
Personne simple, donc …
-nom MEILLEURE.

Connaît Professeur Élève


Demande rapport()
Connaît
Envoie partie()

Binôme
-numéro
Demande rapport()
Remise rapport() Est composé de
Les classes et les associations
? Une classe pour juste mettre
en commun un nom c’est
Personne
faire compliqué pour rien.
-nom

Connaît Professeur Élève


-Nom
Connaît
-Nom
Demande rapport() Envoie partie()

Binôme
-numéro
Demande rapport()
Remise rapport() Est composé de
Les classes et les associations
?
Connaît Professeur Élève
-Nom
Connaît
-Nom
Demande rapport() Envoie partie()

Binôme
-numéro
Demande rapport()
Remise rapport() Est composé de

Difficile d’arriver à cette solution !


Raisons : problèmes de spécifications et surtout
de méthode et de représentation non normée.