Un nouveau concept de développement |
Extrait de "Au coeur de ActiveX et OLE", de David Chappel
"Au cours des 35 dernières années, les concepteurs de matériel
informatique sont passés de machines de la taille d'un hangar à des ordinateurs
portables légers basés sur de minuscules microprocesseurs.
Au cours des mêmes années, les développeurs de logiciels sont passés
de l'écriture de programmes en assembleur et en COBOL à l'écriture de programmes
encore plus grands en C et C++. On pourra parler de progrès (bien que cela soit discutable),
mais il est clair que le monde du logiciel ne progresse pas aussi vite que celui du matériel.
Qu'ont donc les développeurs de matériel que les développeurs de logiciels n'ont
pas?
La réponse est donnée par les composants. Si les ingénieurs en matériel électronique devaient partir d'un tas de sable à chaque fois qu'ils conçoivent un nouveau dispositif, si leur première étape devait toujours consister à extraire le silicium pour fabriquer des circuits intégrés, ils ne progresseraient pas bien vite. Or, un concepteur de matériel construit toujours un système à partir de composants préparés, chacun chargé d'une fonction particulière et fournissant un ensemble de services à travers des interfaces définies. La tâche des concepteurs de matériel est considérablement simplifiée par le travail de leur prédécesseurs.
La réutilisation est aussi une voie vers la création de meilleurs logiciels. Aujourd'hui encore, les développeurs de logiciels en sont toujours à partir d'une certaine forme de sable et à suivre les mêmes étapes que les centaines de programmeurs qui les ont précédés. Le résultat est souvent excellent, mais il pourrait être amélioré. La création de nouvelles applications à partir de composants existants, déjà testés, a toutes chances de produire un code plus fiable. De plus, elle peut se révéler nettement plus rapide et plus économique, ce qui n'est pas moins important."
La notion d'objet |
La programmation orientée objet consiste à modéliser informatiquement
un ensemble d'éléments d'une partie du monde réel (que l'on appelle domaine)
en un ensemble d'entités informatiques.
Ces entités informatiques sont appelées objet. Il s'agit de données informatiques
regroupant les principales caractéristiques des éléments du monde réel (taille, la couleur, ...).
La difficulté de cette modélisation consiste à créer une représentation
abstraite, sous forme d'objets, d'entités ayant une existence matérielle (chien, voiture, ampoule, ...)
ou bien virtuelle (sécurité sociale, temps, ...).
Un objet est caractérisé par plusieurs notions:
La notion de classe |
On appelle classe la structure d'un objet, c'est-à-dire la déclaration de l'ensemble des entités qui composeront un objet. Un objet est donc "issu" d'une classe, c'est le produit qui sort d'un moule. En réalité on dit qu'un objet est une instanciation d'une classe, c'est la raison pour laquelle on pourra parler indifféramment d'objet ou d'instance (éventuellement d'occurence.
Une classe est composée de deux parties:
Si on définit la classe voiture, les objets Peugeot 406, Renault 18 seront des instanciations de cette classe. Il pourra éventuellement exister plusieurs objets Peugeot 406, diférenciés par leur numéro de série. Mieux: deux instanciations de classes pourront avoir tous leurs attributs égaux sans pour autant être un seul et même objet. C'est le cas dans le monde réél, deux T-shirts peuvent être strictement identique et pourtant ils sont distincts. D'ailleurs en les mélangeant il serait impossible de les distinguer...
Les méthodes objet |
La modélisation objet consiste à créer une représentation informatique des éléments du monde réel auxquels on s'intéresse, sans se préoccuper de l'implémentation, ce qui signifie indépendamment d'un langage de programmation. Il s'agit donc de déterminer les objets présents et d'isoler leurs données et les fonctions qui les utilisent. Pour cela des méthodes ont été mises au point. Entre 1970 et 1990, de nombreux analystes ont mis au point des approches orientées objets, si bien qu'en 1994 il existait plus de 50 méthodes objet. Toutefois seules 3 méthodes ont véritablement émergées: