Title: Analyse et conception orient
1Analyse et conception orientée objetRéalisation
des transparents M. Exbrayat, I. Todinca
- Approche fonctionnelle la modélisation est
réalisée à partir de fonctions que doit réaliser
le système. - Approche orientée objet on identifie les objets
manipulés par le système, avec leurs états et
leurs comportements.
2Approche objet
- Lidée est connue depuis 1976
- Programmation orientée objet 1980, version
industrielle de SmallTalk - Langages de programmation Ada, C, Java
- Les outils de POO existent, quen est-il de
lanalyse et de la conception?
3Historique
- Méthodes fonctionnelles et Systémiques
- Années 60 ? 90
- Apparitions de méthodes objets 90
- Booch, OMT (Rumbaugh), Objectory (Jacobson)
- Insuffisances
- Méthodes partielles, cantonnées à des domaines
distincts - Â Abondance de biens nuitÂ
4Naissance dUML
UML 2
Soumission OMG
juin 1999
UML 1.3
UML 1.2
juin 1998
Standardisation OMG Soumission OMG
UML 1.1
Novembre 1997 Septembre 1997
Soumission OMG
UML 1.0
Janvier 1997
OOPSLA Â 96
UML 0.9
Juin 1996
Méthode Unifiée 0.8
Octobre 1995
OOPSLA Â 95
Booch  93
OMT-2
Objectory
OMT-1
Partenaires
Autres méthodes
Booch 91
5UML ?
- Cest
- Une notation, un langage de modélisation objet
- Une description complète, évolutive, publique
- Un standard, utilisé par des AGL
- Ce nest pas
- Une méthodologie
6Généralités sur lapproche objet
- Dans la vie courante on manipule des objets.
- Un objet possède un état et réagit selon un
comportement. - Létat évolue au cours du temps, en fonction du
comportement - Les objets échanges des messages.
7Les classes
- Objets Alice, Pierre, Paul université
dOrléans, université Paris 7, université Lyon 1. - Classe regroupement d objets de même type.
- Personne
- Université
- Lobjet est une instance de sa classe.
8Les attributs
Pierre Personne 25 ans Pierre Durand 40 rue
ZOLA
Personne Age int Nom string Adresse string
9Les méthodes
Personne
Age int Nom, Adresse string
renvoie Nom
SePrésenter() Vieillir() ChangerNom()
Age Age1
10Encapsulation
- Regroupement des attributs et des méthodes
- Modularité
- protège les données d une utilisation erronée
- cache les détails des méthodes
- Evolutivité, fiabilité
Personne
Age int Nom, Adresse string
SePrésenter() Vieillir() ChangerNom()
11Héritage
- Relation entre classes
- Oiseaux est un cas particulier de Animaux
- Animaux généralise Oiseaux
- La classe fille
- hérite les attributs et les comportements
- peut avoir des attributs et des méthodes
nouvelles - peut avoir un comportement modifié
Animaux
Reptiles
Oiseaux
12Polymorphisme
Animaux SeDeplacer()
- Tout animal peut se déplacer
- Il le fait différemment sil sagit dun oiseau
ou dun serpent
Reptiles
Serpents
SeDeplacer() en volant
SeDeplacer() en glissant
13Les diagrammes UML
Diagramme
Diagramme structurel
Diagramme comportemental
Vue statique
Vue dynamique
14Les diagrammes
- Diagramme structurel
- dobjets
- de classes
- de composants
- de déploiement
- Diagramme comportemental
- de cas dutilisation
- de collaboration
- de séquence
- dactivités
- détats-transitions
15Diagramme de classes
Nom de classe
Nom de classe
attributs
Attributs attr1 attr2
méthodes
Opérations op 1 op 2...
dautres séparateurs peuvent être rajoutés pour
mieux regrouper des attributs ou des méthodes
Exceptions ex1 ex2
16Attributs
- ltVisibilitégtltnom d attributgtnom de type ou
de classegtltvaleur initialegt - Visibilité
- Publique
- Privée -
- Protégée
- Attribut de classe ou d instance
- sa valeur est la même pour tous les objets de la
classe (ex TVA) - on souligne la définition de l attribut
- Attribut référençant un autre objet
- Par valeur
- Par référence
17Attributs (suite)
Par valeur losange noir du cote du conteneur
Boissons
Boissons
- nbrBoissonsint 100 - produitsEnsemble
boissonPrepareeBoisson
Produits 1
1 boissonPreparee
Ensemble
Boisson
Par référence losange blanc du cote de la
classe référençante
Affecter
Camion
Chauffeur
18Attributs dérivés
Rectangle
Rectangle
longueur largeur /Surface
longueur largeur Surface ( )
Conception
Surfacelongueurlargeur
19Méthodes
- ltnom_operationgt(nom_paramtype_paramvaleur-par-
defaut,)type_retour - Exemple
- ChangerNom(nouveauNom String)
- SePrésenter()String
- Méthode abstraite
- indique une méthode non implémentée dans cette
classe - Définition en Italique ou précédée de abstrait
20Classes utilitaires
- On ne crée pas d instance de la classe
- Equivalent en C classe ayant uniquement des
mambres statiques
 utilitaire Maths
Pi Réel e Réel
sin(Degré)Réel sqrt(Réel)Réel
21Classe paramétrable
Paramètres formels
Classe paramétrable
Eléments
Table générique
Deux notations possibles
 lie (Entreprise)
Table générique ltEntreprisegt
Annuaire d entreprises
22Relations entre classes
- Association
- Composition / agrégation
- Utilisation ou délégation
- Dépendance
- Héritage
23Associations
Très semblable au modèle entité-association
Classe A
Classe B
Cardinalité 1 0..1 N M..N 0..1 0.. 1.
.
employeur
Société
Personne
employé
lt travaille pour
Société
Personne
1
0..
24Associations (suite)
Association n-aire
Classe 4
1..
1
1
Classe 1
Classe 3
0..1
nom
1 instance de 3 correspond a plusieurs de 5
Navigabilité
1
1..
Classe 5
Classe 2
25Association attribué
Elève
Matière
Elève
Matière
Résultat
Note
Note
26Qualification
A
B
Qualif.
Réseau
B
B
B
B
email
B
B
B
0..1
A
Personne
27La Navigation
Classe A
Classe B
Classe A
Classe B
- Idée voire une association comme un canal de
navigation entre objets - A priori on peut aller de A Ã B ou de B Ã A
- Flèche seulement la classe A  voit la classe
B - implémentation seulement les objets de la
classe A ont un pointeur vers des objets de la
classe B
28Contraintes sur les associations
Société
Personne
- Les employés sont triés par leur numéro
- Les délégués font partie des parents
- On ne peut que rajouter des faits à un historique
ordonné
lt Parents élèves
Classe d école
Personne
sous-ensemble
lt Délégués
Historique
Fait
ajout uniquement
29Composition / agrégation
Classe 1
Classe 1
Classe 3
o1
Classe 2
O2.1
Classe 4
o1
o2
O2.2
Classe 5
Classe 3
Classe 2
Nom
o2
0..
O2.2
O2.1
Classe 4
Classe 5
Structure multivaluée
Classe 1
o1
o2
Par référence
Classe 3
Classe 2
O2.1
O2.2
Par valeur
Classe 4
Classe 5
30Héritage
Heritage contraint disjoint / complet /
incomplet chevauchement
Animaux
disjoint
Héritage simple
Reptiles
Oiseaux
Mammifères
Héritage multiple
- Plus délicat à gérer!
- certaines langages de programmation n'acceptent
pas l'héritage multiple - provient quelquefois dune erreur de
classification...
Classe A
Classe B
Un peu de chaque
31Diagrammes dobjets
- Visualisation dinstances
- Montrer un contexte
- Influence des interactions
- Faciliter la compréhension
- Structures récursives
- Structures complexes
- Illustrer, tout simplement
32Diagrammes d objets
Classe C
Attention, ne pas confondre avec  instancieÂ
 instance deÂ
On souligne le nom
Une instance de C
JeanPersonne
JeanGestionPersonne
Personne
 Exception Erreur I/O
Voiture
marqueRenault puissance120
33Liens entre objets
NicolasPersonne
Voiture
stagiaire
1
4
MatthieuPersonne
Passagers
Roues
directeur
LionelPersonne
34Et encore...
Tout
Objet composite
Partie
Partie
Partie
Etudiant
ObjetActif
Si réussi exams
 devientÂ
Diplômé