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

Slides:



Advertisements
Présentations similaires
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Advertisements

Formation universitaire à .NET: Introduction à C#
Introduction: Concepts de la programmation
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Les Ateliers de Génie Logiciel
Introduction à la POO: Les classes vs les objets
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
FSAB1402: Informatique 2 Techniques de Programmation Orientée Objet
La programmation Orienté Objet
MRP, MRP II, ERP : Finalités et particularités de chacun.
Etude des Technologies du Web services
Programmation orientée objet
Démarche de résolution de problèmes
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Sommaire Objectif de Peakup Principes de fonctionnement
Algorithmique et Programmation
IFT1025, Programmation 2 Jian-Yun Nie
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
La formation des ressources humaines
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
Structures de données IFT-2000
Structures de données IFT-10541
Introduction au paradigme orienté-objet (suite)
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Partie II Sémantique.
Portée, arrimages et intervenants Évolution des méthodes
Programmation non procédurale Le projet ECOLE 2000
Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,
Procédures et fonctions
La formation des ressources humaines
Patrons de conceptions de créations
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Introduction à la programmation orientée objets
ANALYSE METHODE & OUTILS
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Algorithmique et programmation (1)‏
Programmation objet La base.
La formation des ressources humaines
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Modèle de conception et de production à la SOFAD Journée d’échange du CLIFAD Trois-Rivières, le 3 décembre 2004 Jean-Simon Labrecque, Chargé de projets.
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Initiation à la conception des systèmes d'informations
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
MOCK.
Entity/Facet/Pattern Une application qui en a…
La programmation par objets Principes et concepts Etude de Smalltalk.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Campus-Booster ID : Copyright © SUPINFO. All rights reserved La programmation objet, un fondement de la programmation évènementielle.
La gestion des bases de données
La programmation par objets
Introduction à la Programmation Orientée Objet
Initiation aux bases de données et à la programmation événementielle
Introduction Module 1.
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Chapitre III Les Objets

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

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

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

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

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

Chapitre IV Les messages

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

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

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

Chapitre V Les Classes

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

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

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

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

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

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

Chapitre VI Avantages et Inconvénients

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

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

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

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

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

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

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

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

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

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

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

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

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

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