34
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.

Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

  • 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

Page 1: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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.

Page 2: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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?

Page 3: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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 »

Page 4: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 5: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 6: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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.

Page 7: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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.

Page 8: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

8

Les attributs

Objet Classe

Pierre : Personne

25 ans

Pierre Durand

40 rue ZOLA

Personne

Age : int

Nom : string

Adresse :string

Page 9: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

9

Les méthodes

Personne

Age : intNom, Adresse : string

SePrésenter()

Vieillir()

ChangerNom(…)

renvoie Nom

Age = Age+1

Page 10: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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(…)

Page 11: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 12: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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}

Page 13: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

13

Les diagrammes UML

Diagramme

Diagramme structurel Diagramme comportemental

Vue statique Vue dynamique

Page 14: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 15: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 16: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 17: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 18: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

18

Attributs dérivés

Rectangle

longueurlargeur/Surface

Conception

Rectangle

longueurlargeurSurface ( )

{Surface=longueur*largeur}

Page 19: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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}

Page 20: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 21: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 22: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

22

Relations entre classes

• Association

• Composition / agrégation

• Utilisation ou délégation

• Dépendance

• Héritage

Page 23: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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..*

Page 24: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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é

Page 25: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

25

Association attribué

Note

Elève Matière Elève MatièreNote

Résultat

Page 26: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

26

Qualification

A BQualif.

:A

:B

:B:B :B

:B:B:B

Réseau

email

Personne

0..1

Page 27: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 28: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 29: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 30: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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...

Page 31: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 32: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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

Page 33: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

33

Liens entre objets

:Voiture

:Passagers:Roues

4

1

Matthieu:Personne

Nicolas:Personne

stagiaire

Lionel:Personne

directeur

Page 34: Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

34

Et encore...

:Partie :Partie :Partie

:Tout

Objet composite

:ObjetActif Etudiant

Diplômé

« devient » {Si réussi exams}