Introduction aux méthodes orientées objet

Transcription

Introduction aux méthodes orientées objet
Introduction aux méthodes
orientées objet
Samira Si-said Cherfi
Cnam Paris
[email protected]
Situation de la qualité des SI
Why Big Software Projects Fail: The 12 Key
Questions
Watts S. Humphrey,
The Software
Engineering Institute
In spite of the improvements in software project management over the last several years,
software projects still fail distressingly often, and the largest projects fail most often. ….
The principal questions concern why large software projects are hard to manage, the kinds
of management systems needed, and the actions required to implement such systems.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
1
Situation de la qualité des SI
1992
London Ambulance System
1993
1996
Taurus
Ariane5
1998
1992
Denver Baggage Handling System
1999
Email Buffer Overflow
Mars Orbiter
1999
USS Yorktown
Ariane 5 (1996)
Mars Climate Orbiter (September 23rd, 1999)
Le vol
501,
vol
inaugural
de la fusée Ariane 5, a eu lieu le 4 juin 1996 et s'est
USS
Yorktown
(1998)System
London
Ambulance
E-mail
buffer
overflow
(1998)s'est(1992)
Mars
Climate
Orbiter
(anciennement
Mars
Orbiter)
l'une desaprès
deux
soldé
par
un
échec.
La
fusée
brisée
etSurveyor
a explosé
en
vol, était
40(1992)
secondes
Système de gestion de bagages
à l’aéroport
de
Denver
Taurus
(1993)
sondes
spatiales
du
programme
Mars
Surveyor
98.
Le
23 septembre
1999,
Mars
le décollage,
à
la
suite
d'une
panne
du
système
de
navigation.
L'incident,
dû
à
Un
membre
de
l'équipage
du
lance-missiles
USS
Yorktown
a
entré
par
erreur
Plusieurs erreurs
de gestion
comises
lors dud’erreur
développement
ont causé
deux
Les
systèmes
de
messagerie
souffrent
souvent
de dépassement
de
Climate
Orbiter
futappareils
détruite
à
cause
d'une
erreur
de
navigation
pendant
sa
mise
en
un bug
dans
les
informatiques
utilisés
par
le
pilote
automatique,
a
Le
Système
de
gestion
de
bagages
à
l’aéroport
de
Denver
était
si
complexe
un
zéro
pour
une
valeur
de
donnée,
ce
qui
a
entraîné
une
division
par
zéro.
défaillances
graves
durant
l’exploitation
de des
ceautomatisées
système.
On
raconte
capacité
buffer
lorsque
des
messages
avec
adresses
longues
sont
envoyés.
Taurus,
ledu
système
de règlement
des normalement
transactions
prévue
pour
le qui a
orbite
autour
de
Mars
à
une
altitude
prévue
de
140-150
km,
erreur
provoqué
la
destruction
de
la
fusée
ainsi
que
la
charge
utile
–
4
sondes
de
(impliquant
300 ordinateurs)
que
les jusqu’à
dépassements
demais
délai
ont
retardé
L'erreur
en cascade
a attentes
causé une
défaillance
du système
en le
arrêtant
son est
anecdotiquement
des
allant
11heures
plus
grave
Cette
faille
est
souvent
exploitée
par
les
pirates
informatiques
pour
introduire
desle
London
Stock
Exchange
a été
annulée
après
5 ans
deseulement
développement.
Les
pertes
provoqué
son
entrée
dans
l'atmosphère
martienne
à
57etce
km
de
la
surface,
la mission
Cluster
–
d'une
valeur
totale
370
dollars,
en
fait
l’ouverture
de
l’aéorport.
correction
des àmillions
erreurs
de
ce
système
ont
système
de
propulsion
et La
le navire
ade
sombré
au
fond
de
l’eau
y qui
est
resté
que
des
pertes
de
vie
humaines
(estimées
30)
ont
probablement
été
causées
logiciels
espions
ou
malveillants
qui
s’exécutent
pendant
la
défaillance
de
la
sont
estimées
à
75
millions
£
pour
le
projet
et
450m
£
pour
les
clients.
(Pooley
&
puis
sa
destruction
par
les
turbulences
et
les
frottements
atmosphériques.
bugpendant
informatique
le du
plus
coûteux
l'histoire.
Après
enquête,
ingénieurs
du
nécessité
50%
budget
initial
s’élevant
à
200ambulances.
millions
deles
dollars.
plusieurs
heures.
Une
simple
vérification
de la division
évité
par
des
erreurs
d’aiguillage
etde
d’affectation
des
Leaurait
coût de
messagerie.
Stevens,
1999)
L'enquête
a
mis
en
évidence
que
certains
paramètres
avaient
été
calculés
en
unités
CNES
se
sont
aperçus
que
par
mesure
d'économie,
le
logiciel
de
navigation
de
la
cette
défaillance.
( Scientific
American,
correction
des erreurs
a été estimé
à 9 November
millions de 1998)
£.
de
mesure
anglo-saxonnes
etavait
transmises
telles
quelles
à l'équipe
de navigation, qui
fusée
Ariane
5 était celui qui
été conçu
pour
Ariane
4.
attendait
ces1999)
données en unités du système métrique. Cette perte a coûté 125 millions
. (Kernighan,
de dollars à la NASA.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
http://mars.jpl.nasa.gov/msp98/orbiter/
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
2
Apparition des méthodes objet
•Les premières méthodes d'analyse (années 70)
•Décomposition (fonctionnelle et hiérarchique)
d'un système.
•L'approche systémique (années 80)
•Modélisation des données + modélisation des
traitements (Merise, Axial).
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Les méthodes objet
L'émergence des méthodes objet (1990-1995)
Prise de conscience de l'importance d'une méthode
spécifiquement objet :
Encapsulation des données (la structure) et des
traitements (le comportement)
Plus de 50 méthodes objet sont apparues durant cette
période (Booch, Classe-Relation, Fusion, HOOD, OMT,
OOA, OOD, OOM, OOSE...)
Confusion autour de l’analyse et de la conception
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
3
Pourquoi l’approche objet ?
But:
modélisation des propriétés statiques et
dynamiques de l’environnement dans lequel sont
définis les besoins (domaine du problème),
formalisation de la perception du monde et des
phénomènes qui s ’y déroulent,
mise en correspondance de l’espace du problème
et de l’espace de la solution en offrant des notations
et des principes pour toutes les étapes ( le domaine
du sujet, l'analyse, la conception, l'implémentation
et les tests)
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Pourquoi l’approche objet ?
Avantages:
capacité à
Réduire l'écart sémantique entre la réalité et
les modèles,
capacité à regrouper ce qui a été séparé,
à construire le complexe à partir de
l’élémentaire,
apporter des modifications locales aux
modèles.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
4
Les concepts
Les principes de base de l'approche orientéeobjet
les Objets
Les Classes d'objets
L'encapsulation
L'héritage
Le polymorphisme
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
L'objet
La définition d'un objet dépend la phase du cycle
de vie pour laquelle il est destiné
Définition Générale:
ce sur quoi porte notre connaissance
Pour l’analyse du domaine:
c’est une entité pertinente du domaine technique
Dans un langage de programmation OO:
c’est une structure de données et un ensemble
de fonctions associées à cette structure de
données
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
5
L'objet
D'après [Coad &Yourdon, 1991]
"C'est l'abstraction de quelque chose du domaine du
problème qui reflète les capacités d'un système à
mémoriser des informations ou à interagir avec le
domaine"
D'après [Jacobson, 1992]
"Une entité capable de mémoriser un état (information) et
qui offre des opérations (comportement) pour à la fois
explorer et modifier cet état"
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
L'objet
Ce qu'il faut retenir
Unité formée de l’union d’un état interne (des
attributs) et d’un comportement (des opérations) qui
a une origine dans le monde réel et a sa propre
identité.
Exemples:
Objets matériels (table, chaise, crayon, avion…)
Objets immatériels, concepts (compte en banque,
équation, match de boxe…)
Objets virtuels (groupe de travail, division…)
…
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
6
L'objet et l'abstraction
L'objet est l'abstraction, faite par l'analyste, du phénomène
réel observé.
Cette abstraction est ensuite modélisée en utilisant les
concepts appropriés.
Deux personnes différentes peuvent avoir deux perception
différentes et donc deux modèles différents du même
phénomène réel.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
L'objet et l'abstraction
Type: Animal préhistorique
Catégorie: Carnivore
Taille: 13m long; 5m haut
Époque: période du crétacé
Type: Jouet amusant
Catégorie: à désarticuler
Taille: idéale pour le cartable
Époque: récré ou pendant le
cours de Maths
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
14
7
L'objet: Identité
L’identité caractérise l’existence propre de l’objet:
Immuable
Permanente (permet de distinguer tout objet de façon
non ambiguë indépendamment de son état)
Concept différent de l'égalité dans les approches
orientée-objet (contrairement aux BD relationnelles)
Deux objets peuvent être égaux (attributs et
associations) et correspondre à deux objets différents
ayant chacun son identité.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
L'objet : Les attributs et l'état
Les attributs représentent les caractéristiques
d'un objet
Un attribut est constitué du couple (nom, valeur)
Exemple une voiture est caractérisée par
Couleur
Masse
Puissance fiscale
Quantité de carburant
Pouvant avoir les valeurs respectives:
Bleu
979 kg
12 CV
30 litres
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
8
L'objet : Les attributs et l'état
Les valeurs prises par les attributs les associations
déterminent l'état d'un objet à un instant donné.
L'état peut être une simple valeur comme il peut
représenter un autre objet.
Par exemple l'état "indisponible" d'un distributeur de billets
signifier que l'objet réserve qui est un objet différent est
"vide"
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
L'objet: Comportement
Regroupe toutes les compétences d'un objet, l ’ensemble
des opérations applicables à cet objet
Décrit les actions et les réactions de l'objet.
Concept d'opérations (méthodes)
Une opération est déclenchée suite à une stimulation externe:
message envoyé par un autre objet.
• Exemple d'objet
Attributs
Nom:Dupont
Grade:senior
Age:45
salaire
Opérations
Modifer_salaire
Modifier_grade
associations
Supérieur
Emploi_du_temps
…
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
9
Les liens entre les objets
Les associations représentent les liens d'un objets vers les
autres objets.
Les association peuvent être des agrégations ou des
références.
Elles peuvent aussi être :
Statiques : liens durables entre objets
Dynamiques : liens établis par les opérations (liées au
comportement)
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
L'objet: l'encapsulation
"L'encapsulation est le processus qui consiste à
compartimenter des éléments d'une abstraction
pour constituer sa structure et son
comportement" (Booch 1995)
L'abstraction se focalise sur les caractéristiques
observalbles et le comportement de l'objet,
L'encapsulation se focalise sur la représentation
de ces caractéristiques
L'encapsulation nécessite la délimitation
explicite des abstractions.
Encapsulation (occultation des détails de la réalisation):
masquer la structure sous-jacente et l ’implémentation des
opérations
les plus gros bénéfices obtenus par une approche orientée
objets proviennent du respect du principe d’encapsulation
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
10
Les classes: La démarche
d’abstraction
Regroupent les objets qui se ressemblent (abstraction)
Identification des caractéristiques (structure et
comportement) communes à un ensemble d'éléments.
Description condensée de ces caractéristiques.
Moyen de transport
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Les classes:Description
Spécification
décrit le domaine de définition et les propriétés des
instances de cette classe (notion de type dans les
langages de programmation classiques).
Réalisation
décrit comment la spécification est réalisée et qui
contient le corps des opérations et les données
nécessaires à leur fonctionnement.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
11
Les objets, instances de classes
Chaque objet est une instance d'une classe.
La classe définit les comportements et les structures
possibles de ses instances qui sont les objets.
Différentes instances (objets) peuvent avoir leurs opérations
invoquées à différents moments et de différentes manières
comme ils peuvent être dans différents états.
Le mécanisme d'instanciation permet de générer des objets
(instance) d'une classe.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Les relations entre les
classes:l’association
Connexion sémantique bidirectionnelle entre classes
Abstraction des liens qui existent entre les objets instances
des classes associées (en général, un objet ne peut pas
agir seul, il a besoin de l ’aide d ’autres objets).
Dés lors qu’un objet a un lien vers un autre objet, il peut lui
envoyer un message pour déclencher une de ses
opérations
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
12
Les relations entre les classes:L’agrégation
Connexion bidirectionnelle dissymétrique
Un train est composé de wagons, un wagon contient
des sièges...
Une voiture possède quatre roues, un châssis, un
moteur…
Les relations exprimées ici sont des relations de
composition (ou d’agrégation)
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Les hiérarchies de classes:L'héritage
Dans une démarche d ’analyse ou de conception orientées
objets, la spécialisation et la généralisation conduisent à
définir des relations de sous-typage et à mettre en évidence
l’héritage
Si une classe B hérite d'une classe A, alors aussi bien les
opérations que la structure de A deviennent ceux de la
classe B" [Jacobson 1992)
Sous-classe
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Spécialisation
est_un
hérite_de
Généralisation
Super-classe
13
Généralisation et spécialisation
La généralisation signifie toujours: est un ou est une
sorte de.
Elle permet la création de l'ancêtre
Exemple:
Personnel
Administratif
Médical
Permanent
Vacataire
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Généralisation et spécialisation
La généralisation est une relation non
réflexive
A
Impossible!!
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
14
Généralisation et spécialisation
La généralisation est une relation non symétrique.
A
Impossible!!
B
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Généralisation et spécialisation
La généralisation est une relation transitive
Personne
Enseignant
Intervenant extérieur
L’ « intervenant extérieur » est enseignant : puisqu’il hérite de « Enseignant »
L’ « intervenant extérieur » est une « Personne » par transitivité
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
15
Des ensembles aux classes
Les objets instances d’une classe partagent des
caractéristiques générales, exprimées sous forme d’attribut,
d’opération et de contrainte. C’est la propriété
caractéristique de l’ensemble des instances.
La propriété caractéristique de X est notée P(X).
L’ensemble X peut être divisé en sous-ensembles.
Dans une hiérarchie, l’ensemble des instances d’un sous
type sont incluses dans l’ensemble des instances du super
type.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Des ensembles aux classes
La généralisation des classes correspond à la relation
d’inclusion des ensembles.
Les objets instances d’une classe donnée sont décrits par
la propriété caractéristique de leur classe, mais également
par les propriétés caractéristiques de toutes les classes
parents de leur classe.
Livre
Exemple:
Auteur
Nombre de pages
Livre pour les enfants
Fourchette
des âges
Livre pour l’enseignement
Discipline
Niveau
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
16
Des ensembles aux classes
La généralisation - sous sa forme multiple - existe également
entre arbres de classes disjoints.
Elle permet à une classe d'hériter de deux classes ou plus.
Y
Z
Propriété caractéristique de Y
Propriété caractéristique de Z
T
Propriété caractéristique de T
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Des ensembles aux classes
Notion de classe abstraite:
Tous les objets instances d’une classe abstraite donnée
appartiennent à l’une de ses sous-classes.
Une classe abstraite ne donne pas directement des objets.
Spécification plus abstraite pour des objets instances de ses
sous-classes.
Classe abstraite
Classe concrète A
Classe concrète B
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
17
Le polymorphisme, principe général
Le terme polymorphisme décrit un élément qui peut prendre
plusieurs formes. En Informatique, cela décrit un nom d ’objet
qui peut désigner des instances de classes différentes issues
d’une même arborescence.
Principe général: Les interactions entre objets sont écrites
selon les termes des spécifications définies dans leurs superclasses.
Dans ce cas, on parle de polymorphisme d’opération:
déclencher des opérations différentes en réponse à un
même message. Une sous-classe peut modifier localement
le comportement d’une opération héritée d’une super-classe.
Mécanisme de découplage qui agit dans le temps.
N’influence pas l’analyse, mais dépend de l’analyse.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Le polymorphisme, Application
Exemple:
CollectionF[3] = {
Carré( "un carré"),
Cercle( "un cercle"),
Triangle( "un triangle")
};
for (int i = 0; i < 3; i++)
{
CollectionF[i].Dessiner();
}
forme
Carré
Dessiner ()
{ dessiner un carré }
Dessiner ()
{}
Cercle
Dessiner ()
{ dessiner un cercle }
Triangle
Dessiner ()
{ dessiner un triangle }
Collection polymorphe et spécialisation d’une opération.
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
18
Le polymorphisme et surcharge
Ne pas confondre le polymorphisme avec la
surcharge des opérations:
Profil de paramètres différent pour des opérations de
mêmes noms
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
Conclusion
objet: entité qui combine les caractéristiques essentielles
abstraites à partie du domaine du système.
classe: expression de caractéristiques communes aux
objets
encapsulation: combinaison des attributs et des opérations
dans un même objet.
héritage: relation entre sous classes et super classes
décrivant des degrés de ressemblances
polymorphisme: facilité permettant l'invocation d'opérations
en ignorant la classe destinataire du message.
L'application de ces concepts permet:
La modélisation de la structure
La modélisation du comportement
Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris
19