La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction."— Transcription de la présentation:

1 Lapproche Objet Séminaire IOS-AT 1996

2 Chapitre I Introduction

3 Les entreprises dépendent de plus en plus des données (reçues, traitées ou envoyées) Elles se noient dans cette avalanche dinformations 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

4 Construire de meilleurs programmes est un challenge majeur Comment ? Plusieurs réponses ont été données par le passé La construction des programmes

5 1ère approche : le programme mono procédure Une seule procédure ou séquence dinstructions 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 dinformations soient fréquents Convient pour les petits programmes La construction des programmes : Les réponses apportées

6 2ème approche : la programmation modulaire Principe : découper en sous-ensembles le système à développer Est apparue avec linvention des «subroutines» Inconvénients : chaque programmeur réalise son sous-programme à sa façon - Nécessite RIGUEUR - Nécessite DISCIPLINE La construction des programmes Les réponses apportées

7 3 ème approche : la programmation structurée Cest 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 dappréhender le système final avant de lavoir implémenté - Retours arrières fréquents et coûteux La construction des programmes Les réponses apportées

8 4ème approche : les outils CASE (AGLs) Computer-Aide-Software-Engineering Avantage : automatise la programmation structurée Inconvénients : - Napporte pas de valeur ajoutée sur le fond - Est plutôt consommatrice de temps de ressources - Nautomatise quune partie de la programmation La construction des programmes Les réponses apportées

9 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 sappliquent quaux problèmes simples et aux programmes restreints La construction des programmes Les réponses apportées

10 40 ans après linvention de la subroutine, on construit encore les systèmes à la main, instruction après instruction. -Nécessité dune nouvelle approche La technologie « orienté-objet » est cette nouvelle approche La construction des programmes : Conclusion

11 Chapitre II Les clés de la Technologie Orienté-objet

12 Dix termes essentiels : Objet, Méthode, Message, Classe, Sous-Classe, Instance, Héritage, Encapsulation, Abstraction et Polymorphisme. Trois clés pour comprendre lOrienté-Objet : Objet Message Classe Le vocabulaire

13 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 dObjet

14 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 Cest un Nom dobjet suivi dune méthode et éventuellement de un ou plusieurs paramètres Introduction à la notion de message

15 Une classe définit un groupe dobjets similaires. La description des méthodes et des données(variables) communes à ces objets ne se fait quune seule fois : dans la description de la classe. Les objets dune même classe sont appelés instances. Introduction à la notion de classe

16 Lhéritage est un mécanisme qui permet à une classe dobjets dêtre définie à partir dune 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 Lhéritage

17 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

18 Chapitre III Les Objets

19 Lobjet 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) Lobjet : élément de construction naturel

20 Mettre en relation des données et des comportements(méthodes) sappelle, en orienté- objet : lencapsulation Lencapsulation permet de cacher les informations. Elles ne sont accessibles quà travers les méthodes Ceci protège les données des objets environnants (et vice versa) et garantit leur intégrité Lencapsulation

21 Lencapsulation est vraiment utile en cas de changements Elle permet une expérimentation facile Les modifications ne sont à apporter que dans un seul objet Lencapsulation

22 En orienté-objet, on raisonne à un niveau dabstraction élevé puisque lon représente les objets réels souhaités Ceci est possible puisque lon peut définir de nouvelles structures de données et de comportements : les classes dobjets Les anciens langages limitent les données à des types (integer, string,…) Labstraction au niveau des données

23 Les objets peuvent aussi contenir dautres objets On les appelle alors objets composites Ceci augmente leur pouvoir de représentation du monde réel Les objets contenus peuvent aussi contenir dautres objets, et ainsi de suite Labstraction au niveau des données

24 Chapitre IV Les messages

25 Les objets inter-agissent par le biais de Messages A la base, un message comporte 3 parties : Le nom dun objet récepteur Le nom dune méthode que lobjet récepteur sait exécuter Un ou plusieurs paramètres nécessaires à lexécution de cette méthode Définition

26 La syntaxe varie dun langage à lautre Lordre 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

27 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

28 Chapitre V Les Classes

29 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 lapproche 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

30 Les classes définissent les caractéristiques communes des objets Les instances contiennent uniquement les valeurs des variables Définition

31 Un objet qui reçoit un message avec pour ordre dexécution dune 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 derreur Parcourir les classes

32 Les méthodes peuvent être définies à plusieurs niveaux dans la hiérarchie des classes (pour un objet cest la première trouvée qui sera exécutée). Cette technique est très utile pour définir des exceptions Cest beaucoup plus efficace que de modifier les superClasses Relation entre les classes

33 Classe virtuelle : classe purement organisationnelle (en général tout en haut de la hiérarchie), dont on ne définit pas dinstances. Multiple Héritage : Certains langage comme le C++ permettent à un objet davoir plusieurs superclasses. Dans ce cas, lobjet hérite des caractéristiques de toutes ses superclasses. Cas particuliers

34 Les langages purs (smalltack) nautorisent quune 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

35 Chapitre VI Avantages et Inconvénients

36 1 er avantage : Développement plus rapide Utilisation dobjet représentant la réalité Réutilisation dobjets ou de modèles Prototypage rapide Sept avantages

37 2 ème avantage : Meilleure qualité Assemblage dobjets et de classes Modularité Mise au point facilité Sept avantages

38 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

39 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

40 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, lusage des mêmes noms sans confusion (polymorphisme) Sept avantages

41 6 ème avantage : meilleures structures de données Classes virtuelles Hiérarchies de classes Objets composites Gestion des exceptions … Sept avantages

42 7 ème avantage : facilite les adaptations Les modifications ne nécessitent pas de modifier les programmes existants Il « suffit » dajouter de nouveaux objets et de nouvelles classes Sept avantages

43 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 ny a pas de méthodologie de développement « orienté- objet » vraiment éprouvée Sept Inconvénients

44 2ème inconvénient : besoins de standards Il ny a pas de standards pour les langages Le manque de standards rend difficile lacquisition de librairies de classes et surtout lusage mixé de différentes librairies de classes Sept Inconvénients

45 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

46 4 ème inconvénient : rapidité dexé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

47 5 ème inconvénient :manque de compétences Manque de programmeurs Manque de personnel dencadrement Les recyclages réclament un changement de culture, beaucoup de formation et de pratique sur des projets concrets Sept Inconvénients

48 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 dadministration, … Coût des formations Sept Inconvénients

49 7 ème inconvénient : Trop grande modularité La modularité poussée à son extrême peut conduire à un « code ravioli » Labsence de méthode éprouvée peut conduire à cela Les objets externes peuvent menacer lintégrité des données Sept Inconvénients


Télécharger ppt "Lapproche Objet Séminaire IOS-AT 1996. Chapitre I Introduction."

Présentations similaires


Annonces Google