Les technologies clés |
Programmation orientée objet |
Fiche Technologie-clé n : 56
VERSION 3
La programmation par objets s'applique à la fois aux phases amont de conception du logiciel et aux phases d'implémentation dans un langage. Les langages à objets doivent satisfaire des propriétés bien précises d'héritage, de polymorphisme, de masquage des données. Le terme objet est aujourd'hui un argument de vente et il est donc très souvent improprement utilisé pour désigner tous les widgets graphiques existants dans le monde PC. De nombreuses méthodes de conception par objets sont présentes sur le marché. On désigne par objets distribués (ou répartis en français), les objets capables de transiter par un réseau sans perdre leur structure.
Techniques de développement logicielles (interprètes et compilateurs), techniques de conception de logiciel (détermination des besoins, structuration, prévision des évolutions futures), organisation des projets.
Acquérir un avantage concurrentiel en développant du logiciel au moindre coût du fait de la réutilisation ultérieure ; accélérer les délais de mise sur le marché de logiciels ; capitaliser sur un savoir-faire ; correspondre au mieux aux spécifications du client ; gérer la complexité croissante des logiciels en les divisant en composants découplés entre eux.
La notion de "composants logiciels", par analogie aux puces de silicium, est encore aujourd'hui largement théorique, et la production logicielle reste très artisanale (aspect de création très important).
Certains organismes obtiennent des coûts de réutilisation de 80%, soit une réduction des coûts substantielle. De plus, la réutilisation permet de mieux maîtriser les coûts, les délais, du fait même de la courbe d'apprentissage. En outre, les objets apparaissent de plus en plus comme la voie la plus sûre pour l'accès à Internet, qui suscite un intérêt croissant sur les marchés.
Masquage de l'information permettant soit d'intégrer des unités hétérogènes (appels de bas niveau pour connexion à des outils divers ou réseau), soit de masquer la complexité, soit d'augmenter la portabilité sur des systèmes différents;
On ne peut pas parler réellement de technologies concurrentes : la programmation par objets peut se comparer à l'introduction de la programmation structurée, qui s'est imposée de fait dans tous les secteurs du logiciel, à l'exception de ceux qui se sont maintenus en situation d'assembleurs pour des raisons de performances très spécifiques.
La technologie par objets concerne tous les secteurs de la programmation, y compris les bases de données. Les bases de données relationnelles restent un concurrent sérieux de bases de données à objets, pour des raisons de performances et de normalisation du langage de requêtes (SQL), et du fait de l'importance du parc installé.
Dans le domaine du temps réel, les performances imposent souvent des solutions non objets. Le problème est davantage un problème de transition, de poids des expériences passés et de maintien de l'existant que de concurrence. La plupart des L4G (langages de 4ème génération) évoluent vers les objets, de même que les techniques de client/serveur.
Deux nouvelles approches se dessinent :
La programmation par objets ne fait plus l'objet à proprement parler de programme de recherche. Elle est utilisée d'ores et déjà dans le monde industriel. Toutefois, elle connaît indirectement un regain d'intérêt par le biais de programmes touchant le multimédia ou l'Internet.