Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

49
L’approche Objet Séminaire IOS-AT 1996

Transcript of Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Page 1: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

L’approche Objet

Séminaire IOS-AT1996

Page 2: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Chapitre IIntroduction

Page 3: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Les entreprises dépendent de plus en plus des données (reçues, traitées ou envoyées) Elles se noient dans cette avalanche d’informations Les matériels (hardware) ne cessent de progresser Les programmes (software) sont le problème La plupart sont livrés hors délais et hors budgets Besoins :

•Disposer de meilleurs programmes•Avoir des délais plus courts

La crise du Software

Page 4: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Construire de meilleurs programmes est un challenge majeur

Comment ?Plusieurs réponses ont été données par le passé

La construction des programmes

Page 5: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

1ère approche : le programme mono procédure

•Une seule procédure ou séquence d’instructions•En général, écrits par un seul programmeur•Peuvent être faits par un petit nombre de programmeurs à condition que la communication et les échanges d’informations soient fréquents•Convient pour les petits programmes

La construction des programmes :Les réponses apportées

Page 6: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

2ème approche : la programmation modulaire

•Principe : découper en sous-ensembles le système à développer•Est apparue avec l’invention des «subroutines»•Inconvénients : chaque programmeur réalise son sous-programme à sa façon

- Nécessite RIGUEUR- Nécessite DISCIPLINE

La construction des programmesLes réponses apportées

Page 7: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

3 ème approche : la programmation structurée

•C’est une évolution de la programmation modulaire•Cela apporte la discipline nécessaire•Rôle central : la décomposition fonctionnelle•Inconvénient majeur : ne permet pas d’appréhender le système final avant de l’avoir implémenté

- Retours arrières fréquents et coûteux

La construction des programmesLes réponses apportées

Page 8: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

4ème approche : les outils CASE (AGL’s)

•Computer-Aide-Software-Engineering•Avantage : automatise la programmation structurée•Inconvénients :

- N’apporte pas de valeur ajoutée sur le fond- Est plutôt consommatrice de temps de ressources- N’automatise qu’une partie de la programmation

La construction des programmesLes réponses apportées

Page 9: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

5ème approche : les langages de 4ème génération

•Les L4G peuvent générer des programmes directement•Ils peuvent être utilisés par différents niveaux de programmeurs•Mais ne s’appliquent qu’aux problèmes simples et aux programmes restreints

La construction des programmesLes réponses apportées

Page 10: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

40 ans après l’invention de la subroutine, on construit encore les systèmes à la main, instruction après instruction.

-Nécessité d’une nouvelle approche

La technologie « orienté-objet » est cette nouvelle approche

La construction des programmes : Conclusion

Page 11: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Chapitre IILes clés de la Technologie Orienté-objet

Page 12: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Dix termes essentiels :Objet, Méthode, Message, Classe, Sous-Classe, Instance, Héritage, Encapsulation, Abstraction et Polymorphisme.

Trois clés pour comprendre l’Orienté-Objet :•Objet•Message•Classe

Le vocabulaire

Page 13: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Le concept objet dans les programmes est n du besoin de modéliser des objets réels

Un objet est composé de •Procédure ou fonctions•Données

En langage objet, les procédures ou fonctions sont appelées Méthodes. Les données sont assimilables à des variables en programmation classique.

Introduction à la notion d’Objet

Page 14: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Les objets peuvent inter-agir de multiples façons

Le message permet de représenter cette inter-action entre les objets

Il est émis un objet émetteur et reçu par un objet récepteur

C’est un Nom d’objet suivi d’une méthode et éventuellement de un ou plusieurs paramètres

Introduction à la notion de message

Page 15: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Une classe définit un groupe d’objets similaires.

La description des méthodes et des données(variables) communes à ces objets ne se fait qu’une seule fois : dans la description de la classe.

Les objets d’une même classe sont appelés instances.

Introduction à la notion de classe

Page 16: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

L’héritage est un mécanisme qui permet à une classe d’objets d’être définie à partir d’une autre classe, plus générale, en incluant automatiquement ses méthodes et variables

Cette classe est appelée sous-classe

La classe plus générale est une super-classe

Une sous-classe peut avoir ses propres méthodes et variables, en plus de celles de sa super-classe

L’héritage

Page 17: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Il y a maintenant de nombreux langages «orienté-objet»

Par exemple : - Smalltalk est totalement orienté-objet, conçu sur les principes même de cette technique- C++ est « Hybride » dans la mesure où des concepts orienté-objet ont été greffés au langage C traditionnel.

Programmer avec des objets

Page 18: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Chapitre IIILes Objets

Page 19: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

L’objet est assimilable à une cellule :

•Une cellule comprend des données•Une cellule comprend des comportements (assimilables aux fonctions ou procédures appelées Méthodes en Orienté-Objet)•Les cellules communiquent entre elles par des flux électriques (assimilables à des messages)

L’objet : élément de construction naturel

Page 20: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Mettre en relation des données et des comportements(méthodes) s’appelle, en orienté-objet : l’encapsulation

L’encapsulation permet de cacher les informations.Elles ne sont accessibles qu’à travers les méthodesCeci protège les données des objets environnants (et vice versa) et garantit leur intégrité

L’encapsulation

Page 21: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

L’encapsulation est vraiment utile en cas de changements

Elle permet une expérimentation facile

Les modifications ne sont à apporter que dans un seul objet

L’encapsulation

Page 22: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

En orienté-objet, on raisonne à un niveau d’abstraction élevé puisque l’on représente les objets réels souhaités

Ceci est possible puisque l’on peut définir de nouvelles structures de données et de comportements : les classes d’objets

Les anciens langages limitent les données à des types (integer, string,…)

L’abstraction au niveau des

données

Page 23: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Les objets peuvent aussi contenir d’autres objets

On les appelle alors objets composites

Ceci augmente leur pouvoir de représentation du monde réel

Les objets contenus peuvent aussi contenir d’autres objets, et ainsi de suite

L’abstraction au niveau des données

Page 24: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Chapitre IVLes messages

Page 25: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Les objets inter-agissent par le biais de Messages

A la base, un message comporte 3 parties :

•Le nom d’un objet récepteur•Le nom d’une méthode que l’objet récepteur sait exécuter•Un ou plusieurs paramètres nécessaires à l’exécution de cette méthode

Définition

Page 26: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

La syntaxe varie d’un langage à l’autre

L’ordre est quasi systématiquement :Objet Récepteur+Méthode+Paramètres

Seuls les séparateurs varient :Ex : Vehicule104Tourner :90 en SmallTalk

Vehicule104.Tourner(90) en C++

Syntaxe des messages

Page 27: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Les messages requièrent le plus souvent des réponses (feedback)

La réponse est appelée : return value en anglais ou valeur de retour en français

Dans les langages pur orienté-objet (comme smalltalk), la réponse est un objet

Dans les langages hybrides (comme C++), la réponse est un objet ou une simple variable.

Réponse aux messages

Page 28: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Chapitre VLes Classes

Page 29: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Les objets et les messages peuvent suffire à produire un langage orienté-objet (ex ADA)

Mais le concept de classe est celui qui permet encore une plus grande efficacité

Les classes organisent l’approche orienté-objet

De même que le monde est organisé en ordres (mammifères, carnivores, humains, plantes,…), le concept de classes permet une représentation idéale des systèmes

Définition

Page 30: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Les classes définissent les caractéristiques communes des objets

Les instances contiennent uniquement les valeurs des variables

Définition

Page 31: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Un objet qui reçoit un message avec pour ordre d’exécution d’une méthode :

• Cherche une méthode dans sa classe• Si pas présente, dans sa superclasse• Si pas présente, encore au niveau au dessus• Ainsi de suite• Si trouvée, exécution• Sinon, message d’erreur

Parcourir les classes

Page 32: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Les méthodes peuvent être définies à plusieurs niveaux dans la hiérarchie des classes (pour un objet c’est la première trouvée qui sera exécutée).

Cette technique est très utile pour définir des exceptions

C’est beaucoup plus efficace que de modifier les superClasses

Relation entre les classes

Page 33: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Classe virtuelle : classe purement organisationnelle (en général tout en haut de la hiérarchie), dont on ne définit pas d’instances.

Multiple Héritage : Certains langage comme le C++ permettent à un objet d’avoir plusieurs superclasses. Dans ce cas, l’objet hérite des caractéristiques de toutes ses superclasses.

Cas particuliers

Page 34: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Les langages purs (smalltack) n’autorisent qu’une seule hiérarchie de classes (donc un ancêtre unique et commun à toutes les classes)

C++ (Hybride) autorise plusieurs hiérarchies de classes.

Dans tous les cas, la conception de (ou des) hiérarchies est primordiales pour représenter le système à réaliser.

Les hiérarchies de classes

Page 35: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

Chapitre VI

Avantages et Inconvénients

Page 36: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

1er avantage : Développement plus rapide

•Utilisation d’objet représentant la réalité•Réutilisation d’objets ou de modèles•Prototypage rapide

Sept avantages

Page 37: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

2ème avantage : Meilleure qualité

•Assemblage d’objets et de classes•Modularité•Mise au point facilité

Sept avantages

Page 38: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

3ème avantage : Maintenance facilitée

•Bugs repérés plus facilement•Debuggage facilité du fait de la modularité (objets isolés et non inter-actifs)

Sept avantages

Page 39: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

4ème avantage : coût moindre

•Programmation plus rapide•Conception plus rapide (= représentation naturelle des systèmes à réaliser)•Administration facilitée (maintenance, évolutions, mises au point,…)

Sept avantages

Page 40: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

5ème avantage : facilite la réalisation des systèmes complexes

•Permet de répartir le travail (modularité)•Permet des tests unitaires et indépendants•Permets la réutilisabilité entre les équipes, l’usage des mêmes noms sans confusion (polymorphisme)

Sept avantages

Page 41: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

6ème avantage : meilleures structures de données

•Classes virtuelles•Hiérarchies de classes•Objets composites•Gestion des exceptions•…

Sept avantages

Page 42: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

7ème avantage : facilite les adaptations

•Les modifications ne nécessitent pas de modifier les programmes existants•Il « suffit » d’ajouter de nouveaux objets et de nouvelles classes

Sept avantages

Page 43: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

1er inconvénient : manque de maturité

•Cette technologie est encore en évolution•Les systèmes actuels doivent évoluer pour profiter pleinement de cette approche•Il n’y a pas de méthodologie de développement « orienté-objet » vraiment éprouvée

Sept Inconvénients

Page 44: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

2ème inconvénient : besoins de standards

•Il n’y a pas de standards pour les langages•Le manque de standards rend difficile l’acquisition de librairies de classes et surtout l’usage mixé de différentes librairies de classes

Sept Inconvénients

Page 45: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

3 ème inconvénient : besoin de meilleurs outils

•Meilleur outils de développement•Meilleur outils de tests•Meilleures librairies de classes• Meilleurs gestionnaires de versions•Meilleurs outils de modélisation•…

Sept Inconvénients

Page 46: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

4 ème inconvénient : rapidité d’exécution

•Moins bonnes performances (même si les derniers outils powerbuilder, delphi ,… sont très proches des performances obtenues en programmation classique)

•Toutefois, permet de programmer des concepts complexes, contrairement aux langages classiques

Sept Inconvénients

Page 47: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

5 ème inconvénient :manque de compétences

•Manque de programmeurs•Manque de personnel d’encadrement•Les recyclages réclament un changement de culture, beaucoup de formation et de pratique sur des projets concrets

Sept Inconvénients

Page 48: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

6 ème inconvénient : coût des conversions

•Achat de nouveaux outils de programmation•Achat de nouveaux outils périphériques : librairies de classes, gestionnaires de batch, gestionnaire de versions, outils de tests, outils d’administration, …•Coût des formations

Sept Inconvénients

Page 49: Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction.

7 ème inconvénient : Trop grande modularité

•La modularité poussée à son extrême peut conduire à un « code ravioli »•L’absence de méthode éprouvée peut conduire à cela•Les objets externes peuvent menacer l’intégrité des données

Sept Inconvénients