Conception Objet

Conception Orientée Objet
sbennani07@gmail.com
10:46
S. Bennani
1
Introduction
L’entreprise : s’adapter à son
environnement
Services informatiques : accompagner
cette dynamique.
revoir leurs démarches informatiques
afin d’avoir une meilleure réactivité
10:46
S. Bennani
2
Expression du besoin plus exigeante par les
utilisateurs
temps de développements réduits,
attente d’une interface graphique élaborée,
Les techniques et méthodes informatiques
actuelles de moins en moins bien adaptées.
Une solution :
la refonte totale de l’organisation
informatique de l’entreprise vers un monde
objet.
10:46
S. Bennani
3
technologie pas encore répandue dans
l’univers des entreprise. Pourquoi?
la reconversion du personnel informatique
une nouvelle façon de penser pour
aborder les concepts objets: révolution
culturelle.
investissement financier considérable,
10:46
S. Bennani
4
contre ces réticences, plusieurs arguments :
La COO repose sur une assise théorique.
La rapidité de développement et surtout
de maintenance.
La COO permet la maîtrise du processus
– au niveaux modélisation et conduite de
projet,
– définition des activités,
– règles de production,
– démarche qualité, réutilisabilité des modèles.
10:46
S. Bennani
5
Introduction
Modélisation
Produire une représentation simplifiée du monde
réel pour :
• accumuler et organiser des connaissances,
• décrire un problème,
• trouver et exprimer une solution,
• raisonner, calculer.
10:46
S. Bennani
6
Introduction
En informatique,
Résoudre la transition entre :
le réel
le monde informatique
• Évolutif
• Langages codifiés
• Ambiguïté
• Sémantique unique
10:46
S. Bennani
7
Difficultés de la modélisation
Problèmes des spécifications
– parfois imprécises, incomplètes, ou
incohérentes
Taille et complexité des systèmes importantes
et croissantes
– les besoins et les fonctionnalités augmentent
– la technologie évolue rapidement
– les architectures se diversifient
– assurer l’interface avec le métier (domaine
d’application)
10:46
8
S. Bennani
Difficultés de la modélisation
Évolution des applications
– évolution des besoins des utilisateurs
– réorientation de l'application
– évolution de l'environnement technique (matériel
et logiciel)
Problèmes liés à la gestion des équipes
– taille croissante des équipes
– spécialisation technique
– spécialisation métier
10:46
S. Bennani
9
Introduction
Les méthodes = des guides structurants
• Décomposition
du travail
• Organisation des phases
• Concepts fondateurs
• Représentations semi-formelles
Assurent une démarche reproductible
pour obtenir des résultats fiables
10:46
S. Bennani
10
Introduction**
Décomposition du travail
• Phases
analyse, conception, codage, validation, etc.
• Niveaux d’abstraction
conceptuel (besoins)
logique (solution informatique abstraite)
physique (solution informatique concrète)
10:46
S. Bennani
11
Introduction
Organisation du travail
• Processus de développement
Phases séquentielles
Itération sur les phases
Concepts fondateurs
• Fondent l’approche du problème et
l’expression de la solution
Classe, signal, état, fonction, etc.
10:46
S. Bennani
12
Introduction
Représentations semi-formelles
• Représentations partiellement codifiées basées
sur les concepts fondateurs
diagrammes, formulaires, etc.
• Support de différentes activités
réflexion, spécification, communication,
documentation, mémorisation (trace)
10:46
S. Bennani
13
Pour résumer …
Une méthode d’analyse et de conception
– propose démarche avec les étapes du
développement (modularité, réduction de la
complexité, réutilisabilité éventuelle,
abstraction)
– s’appuie sur formalisme de représentation
qui facilite la communication, l’organisation
et la vérification
Le langage de modélisation
– produit des documents (modèles) qui
facilitent les retours sur conception et
l’évolution des applications
10:46
S. Bennani
14
LES CONCEPTS OBJETS
sbennani07@gmail.com
****
S. Bennani
15
INTRODUCTION
Historique : projet missile MINUTEMAN -1957.
fonctionnement:
Échange de messages d'information entre les
composants.
Chaque composant logiciel conçu par un
spécialiste et possédait données privées.
Le composant virtuellement isolé du reste du
programme par ses méthodes servant
d'interface.
10:46
S. Bennani
16
LES CONCEPTS DE MODELISATION
L' OBJET : Entité du Monde Réel (ou
virtuel) défini à la fois par
–
–
informations : données ou attributs ou
variables d’instances ; et
comportements : traitements ou méthodes
ou opérations
donc :
1. Identité
2. États significatifs
3. Comportement
10:46
S. Bennani
17
10:46
S. Bennani
18
LES CLASSES
Classe : modèle de construction d'un objet.
description abstraite en terme de données et de
comportements d'une famille d'objets.
constituée 1 partie statique + partie dynamique
Partie statique : LES ATTRIBUTS
la description des données propres à chaque
classe.
Les attributs d'une classe : propriétés
Partie dynamique : LES METHODES
Actions, procédures, fonctions ou opérations
associés à une classe.
Les méthodes de la classe :COMPORTEMENT
10:46
S. Bennani
19
Exemples
CLASSE VOITURE
ATTRIBUTS
METHODES
Marque
Modèle
Immatriculation
Vitesse
Niveau de
carburant
Puissance fiscale
Puissance DIN
Etc ...
Démarrer
Accélérer
Freiner
Stopper
Vidanger
Etc ....
CLASSE Etudiant
nom
capital UV
diplôme
VérifierNom
MajUV
10:46
S. Bennani
ChangerDiplôme
20
INSTANCES DE CLASSES
un élément construit selon le modèle de sa classe :
"OBJET".
Une classe produit plusieurs instances : l'instanciation
CLASSE VOITURE
ATTRIBUTS
Marque
Modèle
Immatriculation
Vitesse
Niveau de
carburant
Puissance
fiscale
Puissance DIN
Etc ...
10:46
EXEMPLES D'INSTANCES
DE LA CLASSE VOITURE
METHODES
Démarrer
Accélérer
Freiner
Stopper
Vidanger
Etc ....
FORD
54S
3412 SM 59
130 Km /h
54 l
15 CV
120 DIN, ...
SEAT
TOLEDO V6
4954 VD 59
190 Km /h
62 l
23 CV
160 DIN, ...
S. Bennani
21
Exemple Etudiant
Nom : Hamid
•
Nom : Aabir
Capital UV : capital1
•
Capital UV :
•
•
•
10:46
Diplôme : maîtise
capital2
•
Informatique
Diplôme :
Ingénieur
Mcanique.
VérifierNom
VérifierNom
MajUV
MajUV
ChangerDiplôme
ChangerDiplôme
S. Bennani
22
CONCEPTS D'ACTIVATION
Seul mode de communication entre objets:
envoi de messages
messages : requêtes.
– Son arrivée provoque l'exécution d'une
méthode d'un objet.
– Chaque message précise la méthode à
appliquer (paramètres).
– Destinataire : spécifié ou implicite si (appelle
une de ses méthodes)
10:46
S. Bennani
23
Exemple
Message
AFFICHE(vide)  OBJET CERCLE 
Ou Message
AFFICHE(plein)  OBJET CERCLE 
Continuation : un objet réémet un message qui ne
lui est pas destiné
Message pour B  OBJET A  OBJET B
10:46
S. Bennani
24
Multi-receveurs :
même message - plusieurs objets
OBJET
BULLETIN DE PAIE Yassine
Message
PRIME(1000,00)
OBJET
BULLETIN DE PAIE
Aabir
10:46
S. Bennani
25
L'encapsulation **
".. processus qui consiste à empêcher d'accéder
aux détails d'un objet qui ne contribuent pas à
ses caractéristiques essentielles" (BOOCH 1991-).
Intégrer le code et les données d'une entité au
sein d'un objet.
Empêcher les clients de connaître les détails de
son implémentation
Seule l'interface d'un objet doit être visible aux
yeux d'un client.
10:46
S. Bennani
26
Premier Cas : Encapsulation de données
Exemple :
Méthode : Calcul de la clé d'un numéro de CNSS
Objet : Individu (Assuré Social par exemple)
Donnée protégée : Valeur du modulo pour le calcul de
clé
10:46
S. Bennani
27
Deuxième Cas : Encapsulation de méthodes
Message = Débiter(somme, compte,
code_confident).
Objet = compte bancaire.
Méthode A (Visible depuis l'interface) =
Débiter_carte_de_crédit.
Méthode B (non visible par l'utilisateur mais
appelée par la méthode A) = Algorithme de
validation du code confidentiel.
10:46
S. Bennani
28
LE POLYMORPHISME
Définir plusieurs formes pour une méthode
commune à une hiérarchie d'objets.
A l'exécution on détermine quelle forme appeler
suivant la classe.
Exemple :
Un code sans polymorphisme va utiliser une
instruction à choix multiple suivant la classe des
objets rencontrés.
Un tel code serait donc à modifier à chaque
ajout ou suppression de classe
10:46
S. Bennani
29
Exemple
Triangle 
Afficher (Objet)
Cercle 
10:46
S. Bennani
30
Les associations
Des relations structurelles entre classes d’objets.
La plupart des associations sont binaires.
Les parités supérieures sont représentées par un
losange.
Il est possible de représenter une association n-aires par
une classe.
10:46
S. Bennani
31
Les classes associations
Une association peut être représentée par une classe
pour ajouter des attributs et des opérations dans
l’association existante
Ex ; L’auditeur suit des cours pour une année universitaire
10:46
S. Bennani
32
Qu'est-ce que l'héritage
mécanisme destiné à exprimer les similitudes
entre classes.
Principes de généralisation et de spécialisation
en partageant explicitement les attributs et
méthodes communs au moyen d'une hiérarchie
de classes
10:46
S. Bennani
33
La classe fille hérite des caractéristiques de sa
classe mère (attributs et méthodes) mais elle se
distingue par ses caractéristiques propres ***
10:46
S. Bennani
34
DIFFERENTS TYPES D'HERITAGE
héritage simple, héritage multiple et
héritage à répétition.
Héritage simple : une classe fille n'a
qu'une seule classe mère et hérite d'une
partie de ses attributs et méthodes.
Héritage multiple : une classe fille hérite
de plusieurs classes mères.
10:46
S. Bennani
35
AVION
BATEAU
HYDRAVION
10:46
S. Bennani
36
la classe Etudiant :
la classe Etudiant-Elu :
nom
nom
capital UV
capital UV
diplôme
diplôme
Mandat
Syndicat
VérifierNom
VérifierNom
MajUV
MajUV
ChangerDiplôme
ChangerDiplôme
DémissionnerMandat
ChangerSyndicat
10:46
S. Bennani
37
– L’objet etudiant-elu a les propriétés de l’objet
étudiant mais en plus possède d’autres
propriétés.
– La classe etudiant-elu est une specialisation
de la classe etudiant. Sous classe
– Les objets de la sous classe etudiant-elu
héritent des attributs et des méthodes de
la classe étudiant. La sous classe peut
redéfinir une méthode héritée
10:46
S. Bennani
38
COMPOSITION OU AGREGATION
Composition : réunir des objets pour en former
un autre
VOITURE
1
CARROSSERIE
4
1
ROUES
1
DIRECTION
MOTEUR
Dans le cas d'une composition (ou agrégation),
on s'attachera à préciser le cardinal de cette
relation.
10:46
S. Bennani
39
On peut dire qu’une agrégation est une association de
type “ Composé–Composant ”. Où, l’instance composé
est l’agrégat et les composants sont les instances
agrégées
10:46
S. Bennani
40
Une agrégation  une association. Mais
association ne peut être une agrégation.
Une association avec les caractéristiques :
– L’association du style “ est composée de ... ”
– Forte différence de granularité entre classe
(l’agrégat) et d’autres classes (les agrégés).
– La suppression d’un objet agrégat ferait
disparaître les objets agrégés.
– Modification d’un attribut d’un objet agrégat
porte aussi sur attributs des objets agrégés.
– La définition d’une méthode de l’objet agrégat
repose sur celles des objets agrégés.
10:46
S. Bennani
41
Héritage et composition
confusion fréquente entre héritage et
composition.
Héritage : la classe fille hérite des
caractéristiques de la classe mère, en
affinant ses propriétés.
Composition : la classe est composée
d'autres classes, pour constituer une
nouvelle entité
10:46
S. Bennani
42
Exercice : Formes géométriques **
10:46
S. Bennani
43
10:46
S. Bennani
44