Upload
sarah
View
31
Download
0
Embed Size (px)
DESCRIPTION
Analyse et conception orientée objet Ré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. - PowerPoint PPT Presentation
Citation preview
1
Analyse et conception orientée objet
Ré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.
2
Approche objet
• L’idé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, qu’en est-il de l’analyse et de la conception?
3
Historique
• 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 »
4
Autres méthodes Booch ’91 ObjectoryOMT-1 Partenaires
Booch ’93 OMT-2
Standardisation OMGSoumission OMG
juin 1999
Méthode Unifiée 0.8
UML 0.9
UML 1.0
UML 1.1
UML 1.2
UML 1.3
UML 2
Novembre 1997Septembre 1997
Janvier 1997
Juin 1996
Octobre 1995
juin 1998
Soumission OMG
Soumission OMG
OOPSLA ‘ 96
OOPSLA ‘ 95
Naissance d’UML
5
UML ?
• C’est:– Une notation, un langage de modélisation objet– Une description complète, évolutive, publique– Un standard, utilisé par des AGL
• Ce n’est pas :– Une méthodologie
6
Généralités sur l’approche 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.
7
Les classes
• Objets : Alice, Pierre, Paul; université d’Orléans, université Paris 7, université Lyon 1.
• Classe : regroupement d ’objets de même type.
– Personne– Université
• L’objet est une instance de sa classe.
8
Les attributs
Objet Classe
Pierre : Personne
25 ans
Pierre Durand
40 rue ZOLA
Personne
Age : int
Nom : string
Adresse :string
9
Les méthodes
Personne
Age : intNom, Adresse : string
SePrésenter()
Vieillir()
ChangerNom(…)
renvoie Nom
Age = Age+1
10
Encapsulation
• 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 : intNom, Adresse : string
SePrésenter()
Vieillir()
ChangerNom(…)
11
Hé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
12
Polymorphisme
• Tout animal peut se déplacer
• Il le fait différemment s’il s’agit d’un oiseau ou d’un serpent
Animaux
SeDeplacer()
Reptiles Serpents
SeDeplacer(){ en volant}
SeDeplacer(){ en glissant}
13
Les diagrammes UML
Diagramme
Diagramme structurel Diagramme comportemental
Vue statique Vue dynamique
14
Les diagrammes
• Diagramme structurel
– d’objets
– de classes
– de composants
– de déploiement
• Diagramme comportemental
– de cas d’utilisation
– de collaboration
– de séquence
– d’activités
– d’états-transitions
15
Diagramme de classes
Nom de classe Nom de classeAttributs
attr1attr2
Opérationsop 1op 2...
Exceptionsex1ex2
attributs
méthodes
d’autres séparateurs peuventêtre rajoutés pour mieuxregrouper des attributs oudes méthodes
16
Attributs• [<Visibilité>]<nom d ’attribut>[:nom de type ou de classe>[=<valeur
initiale>]]
• 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
17
Attributs (suite)
- nbrBoissons:int =100- produits:Ensemble# boissonPreparee:Boisson
Boissons Boissons
Ensemble Boisson
Produits 1 1 boissonPreparee
Par valeur :losange noirdu cotedu conteneur
Camion ChauffeurAffecter
*
Par référence :losange blanc du cotede la classe référençante
18
Attributs dérivés
Rectangle
longueurlargeur/Surface
Conception
Rectangle
longueurlargeurSurface ( )
{Surface=longueur*largeur}
19
Méthodes
<nom_operation>([nom_param:type_param[=valeur-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}
20
Classes utilitaires
« utilitaire »Maths
+sin(Degré):Réel+sqrt(Réel):Réel
+Pi: Réel+e: Réel
• On ne crée pas d ’instance de la classe
• Equivalent en C++ : classe ayant uniquement des mambres statiques
21
Classe paramétrable
Classe paramétrable
Paramètres formels
• « templates » du C++
Table génériqueEléments
Annuaire d ’entreprises
« lie » (Entreprise)
Table générique <Entreprise>
Deux notationspossibles
22
Relations entre classes
• Association
• Composition / agrégation
• Utilisation ou délégation
• Dépendance
• Héritage
23
Associations
Classe A Classe BTrès semblable au modèleentité-association
Société Personneemployeur
employé
Société Personne< travaille pour
1 0..*
Cardinalité :10..1NM..N*0..10..*1..*
24
Associations (suite)
Classe 1
Classe 4
Classe 3
Classe 2 Classe 5
1
1..*
1
0..1
1
*
Association n-aire
1..**
1 instance de 3 correspond a plusieurs de 5
nom
Navigabilité
25
Association attribué
Note
Elève Matière Elève MatièreNote
Résultat
26
Qualification
A BQualif.
:A
:B
:B:B :B
:B:B:B
Réseau
Personne
0..1
27
La 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
28
Contraintes sur les associations
Société Personne{ordonné}
Classe
d ’école
Personne< Parents élèves
< Délégués
{sous-ensemble}
Historique Fait{ajout uniquement}
• 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
29
Composition / agrégationClasse 1
Classe 2 Classe 3
Classe 4
Classe 5
O2.1
O2.2
o1
Nom
Classe 3
Classe 1
Classe 2
Classe 4 Classe 5Par valeur
Classe 3
Classe 1
Classe 2
Classe 4 Classe 5
0..* O2.2O2.1
o1 o2
O2.1
o1
O2.2
o2
Par référence
Structuremultivaluée
o2
30
Héritage
Animaux
Classe A
MammifèresReptilesOiseaux
Un peu de chaque
Classe B
{disjoint}
Heritage contraint{disjoint} / {complet} / {incomplet}{chevauchement}
Héritage simple
Héritage multiple Plus délicat à gérer!• certaines langages de programmation n'acceptent pas l'héritage multiple• provient quelquefois d’une erreur de classification...
31
Diagrammes d’objets
• Visualisation d’instances
• Montrer un contexte– Influence des interactions
• Faciliter la compréhension– Structures récursives– Structures complexes– Illustrer, tout simplement
32
Diagrammes d ’objets
Classe C
Une instance de C
On souligne le nom
Attention,ne pas confondreavec « instancie »
« instance de »
Jean:Personne Jean:Gestion::Personne
« Exception »: Erreur I/O
:Voiture
marque=’’Renault ’’puissance=120
:Personne
33
Liens entre objets
:Voiture
:Passagers:Roues
4
1
Matthieu:Personne
Nicolas:Personne
stagiaire
Lionel:Personne
directeur
34
Et encore...
:Partie :Partie :Partie
:Tout
Objet composite
:ObjetActif Etudiant
Diplômé
« devient » {Si réussi exams}