Vous êtes sur la page 1sur 30

Partie II: Introduction l orient-objet

Rfrences: C++ from the Beginning, Jan Skansholm, Addison Wesley, 1997 Chapitres couverts
Chapitre 6 Chapitre 7 Chapitre 8 Chapitre 12 Object-oriented Program Development Classes More about Classes Dynamic Data Structures
1

Contenu
Chapitre 12 : Programmation orient-objet
Analyse Conception Programmation

Chapitre 13: Classes


Dclaration, dfinition, utilisation Constructeurs, destructeurs Oprateurs

Chapitre 14: Structures de donnes dynamiques


Allocation de mmoire Listes Applications : piles, files, listes gnralises
2

Chapitre 12 : Programmation orient-objet


Lexcution dun programme OO est effectu par des objets Chaque objet
a sa propre identit a ses propres donnes (des variables ou dautres objets) fait des requtes aux autres objets en leur envoyant des messages a ses propres fonctions (appeles mthodes)

Chaque objet est une instance dune classe: une classe groupe les objets qui ont le mme comportement (~ types et variables) Les classes sont organises en une structure arborescente, appele hirarchie d hritage (non 3 explique dans ce cours)

Exemple simple: une rservation de train


Alice dsire avoir une rservation pour aller par train Paris dimanche prochain. Alice demande Tom (qui travaille pour une agence de voyage) deffectuer une rservation pour un train pour Paris. Tom demande Sally (qui travaille pour la compagnie ferrovire) lhoraire et informe Alice Alice marque son accord pour lhoraire Tom Tom confirme Sally ...
4

Exemple simple: une rservation de train Interactions entre agents


Alice Tom
Agence de voyage
5 Note: dautres agents peuvent tre impliqus

DB des horaires

Sally
Compagnie de train

Elements de programmation OO
Lexcution (exemple le scenario rservation) est ralis par des Objets
Exemple: Alice, Tom, Sally, DB, ...

Les objets se font des requtes travers lenvoi de Messages.


Exemple : Alice demande Tom deffectuer une rservation pour un train pour Paris

Le recepteur du message peut laccepter et effectuer laction en utilisant ses propres donnes et renvoie un rsultat. Les comportements possibles dun objet est donn par les mthodes dfinies pour cet objet (~ procdures associes).
6

Encapsulation
Lencapsulation OO est le groupement de donnes et de procdures traitant ces donnes.

Donnes

Comportement

Information Hiding (Masquage dinformation)


Technique de masquage des dtails internes Seul un objet est peut modifier ses donnes (noninterfrence)

Interface

DATA

BEHAVIOR

Que peut modliser une classe ?


Choses tangibles:
Avion Voiture Forme Document Personne Imprimante

Incidents (Evnements)
Dcision Dcollage, , Crash

Intractions
Contrat Mariage

Rles
Employ, Employeur Pilote, Passager Joueur, Supporter, Journaliste

Exemple
Objets Classe Ascenseur Direction Etage Aller_vers( ) Stop ( ) Quel_tage ( )
Asc1BatUA:ascenseur

Haut 2
Asc2BatNO:ascenseur

Stationnaire 8

10

Objet
Un objet a:
Un tat (ensemble des valeurs des attributs) Un comportement Une identit

La structure et le comportement des objets similaires est dfini par une classe.

11

Classe (Notation UML)

Attributs de donnes
Visibilit (+ : public; # : protected; - : private) Nom Window Type + position : Coordinate = (0,0) # lenght : Integral Valeur initiale # height : Integral
- visibility : Boolean + display () : Boolean + create (position : const Point&)

Mthodes (oprations)
Visibilit Nom Arguments (paramtres) Type de retour
12

Signature

Attributs // champs en C++


Exemple sans mthode : tableau avec cl et information satellite: typedef char TypeOfKey; typedef int TypeOfElem; class Entree { public: Attributs de la classe TypeOfElem e; TypeOfKey k; }; typedef Entree Vecteur[max]; Entree x; Vecteur v; x.e x.k v[3].e v[3].k = 47; = 'a'; = 16; = 'h';

13

Relations entre objets


Alice Tom Sally
Compagnie de train

DB des horaires

Agence de voyage

Plusieurs types de relations peuvent exister entre des objets (classes) Exemples: Anne est la mre de Julie Un bateau est un vhicule Anne est la propritaire de cette voiture Ma voiture a 4 roues 14

4 types de relations
Association Aggrgation Composition Gnralisation (Hritage) (pas dans ce cours)
Remarque: lexemple prcdant est un diagramme dobjets UML Gnralement on regarde le diagramme de classe qui montre les liens entres les classes dfinies dans lapplication

15 (UML est un langage graphique utiliser pour analyser les systmes OO concevoir)

Association Reprsente la Relation connat entre les classes (aussi appel lien)
Exemples Est mari Travaille pour Est le propritaire de

16

Association : notation UML


Diagramme de classe
Rle Nom

employ Personne *

Travaille pour

employeur Socit 0..1

Multiplicit Multiplicity
17

Association
Caractristiques :
Association nom Pour chque extrmit
Multiplicit
rien * 0..1 1 : non spcifi : zro ou plus : optionel : 1 et un seul 1

Nom de rles Navigabilit Note: on aura les mmes caractristiques pour les Aggrgation & Composition (voir plus bas)

18

Association: notation UML


Diagramme dobjet

John : Personne

OA Group : Socit

Isabelle : Personne

Alain : Personne

Anne : Personne
19

IBM : Socit

Association: UML Notation


Diagramme de classe

Ordre

Client

Navigabilit

20

Association: other example


Diagramme de classe

0..1 patron

Personne

0..*
employ

Diagramme dobjet

employ

patron

John:Personne

Mary:Personne

21

Agrgation & Composition


Represente la relation est compos de ou fait partie de entre instances de classes
Examples Une voiture a un moteur Un segment est form de 2 points Un polygone est dessin dans un certain style Avec la composition lobjet faisant partie peut appartenir qu un seul contenant (dure de vie plus petite ou gale)

22

Aggrgation & Composition : Notation


Diagramme de classe
Composition {ordered} Contrainte

Points

3..*

Polygone
* 1
Agrgation
23

Style
couleur

Relation est (hritage)


Une (sur)classe possde des caractristiques communes d autres (sous)classes Une hirarchie peut tre construite Hritage => rutilisation, librairies, Exemple dhritage
Attributs communs vhicule hritage

voiture

bateau
24

train

vlo

Attributs spcifiques

Analyse OO - Relation est Exemple d hritage


Attributs: nom, prnom Personne

Attributs: ceux de la personne, n inscription anne


*

Etudiant
*

Professeur
*

*
25

Cours *

Analyse OO
Objectif : analyser et spcifier les besoins, comprendre et dcrire ce que le programme doit faire Dmarche (itrative; partie structure statique )
Trouver les objets faisant partie du modle Dfinir leurs attributs Etablir les relations qui les relient

26

Analyse OO
Comment trouver les objets ?
Considrer les entits relles de lenvironnement Partir de scnarios reprsentatifs (partie dynamique et comportementale) et vrifier que tous les services que doivent rendre les objets sont disponibles

Relations : est compos de (agrgation et composition), connat (association), est (hritage)

27

Conception OO
Le modle de lanalyse est rendu plus concret, et le comment les problmes doivent tre rsolus? est abord Deux parties
Conception du systme : modularisation du systme en sous-systmes, communication avec lenvironnement Conception dtaille des objets : ajouter les dtails ncessaires la couverture des fonctions dsires et des messages traiter entre clients et classes - choix des algorithmes (oprations effectuer) et des structures de donnes (construction interne)

28

Programmation OO - Un bon programme


Correct : ne pas contenir derreurs par rapport ce qui a t spcifi (mais la spcification est-elle correcte ?) Efficace : utiliser les ressources au mieux Rutilisable : permettre dautres programmes dtre composs sur base de modules dj prts et tests ; ncessite une conformit de conception, des donnes, des appels systmes, et des interfaces bien dfinies
Diminue le cot de dveloppement Diminue le temps de dveloppement Amliore la qualit des logiciels produits

Adaptable : permettre la maintenance (correction derreurs, ajout ou modification de fonctionnalits) ; bas sur une grande cohsion interne, un faible couplage externe, et le principe dinformation hiding
29

Programmation OO - 3 concepts cls


Encapsulation et information hiding
Cacher tout ce qui dfinit les proprits des objets en un seul endroit, de telle sorte que d autres objets ne puissent ni voir ni accder ces informations

Hritage
Partir d objets existants et leur ajouter / supprimer / modifier des attributs en vue de crer de nouveaux objets

Gnricit
Crer des codes qui puissent tre utiliss avec diffrentes classes dobjets, telles que les containers (liste, ensemble)

30