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

Preview:

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

email

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}