Présentation
EnglishRÉSUMÉ
La programmation par objet, et le langage C++, s'appliquent bien aux besoins de développement moderne, favorisant le travail simultané de plusieurs développeurs, et une maintenabilité et une évolutivité du code obtenu. Cet article décrit les concepts objets offerts par le langage C++. Puis quelques problèmes liés aux choix de conception par objets en C++ sont analysés, avec une présentation des conséquences immédiates ou futures lors des évolutions des produits développés.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleAuteur(s)
-
Amal SAYAH : Maître de conférences, université Paul-Sabatier - Institut de recherche en informatique de Toulouse (IRIT )
INTRODUCTION
De nombreuses applications ont été développées en utilisant des langages à objets et en particulier le C++. Cet engouement pour la programmation par objets se justifie aujourd’hui. En effet, plusieurs équipes participent généralement à la réalisation d'un logiciel, d'où un problème d'interaction entre ces différentes parties. De plus, les logiciels ont une durée de vie de plus en plus longue, pendant laquelle ils subissent d'importantes adaptations et modifications (évolutions technologiques, du besoin, des normes, etc.). Enfin, la programmation par objets, au travers des concepts qu’elle propose (objet, classe, héritage, sous-typage, polymorphisme, etc.), répond aux besoins de telles applications.
Dans cet article, nous consacrerons une première partie à une description des concepts objets offerts par le langage C++. Ensuite, à partir d’expériences vécues dans le développement d’applications C++, nous analyserons quelques problèmes liés aux choix de conception par objets en C++ et à leurs conséquences immédiates ou futures lors des évolutions des produits développés.
Je tiens à remercier mes collègues qui ont accepté, malgré leur emploi du temps chargé, d’en consacrer une partie à la lecture de ce document. Par leurs remarques, ils m’ont incité à développer la présentation de certains concepts ou à apporter des explications complémentaires. Je pense en particulier à mon collègue et ami Mamoun Filali.
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
3. C++ dans l’industrie et la recherche
Le langage C++ a été utilisé pour programmer complètement ou partiellement de très nombreuses applications industrielles ou de recherche.
Le concepteur du langage, Bjarne Stroustrup, entretient une page Web personnelle répertoriant un ensemble de systèmes, applications ou librairies développés en C++ (voir ). S’il est difficile d’apprécier la véritable exploitation du langage à objets d’une simple program-mation à la C, il faut souligner la diversité des domaines concernés, par exemple :
-
systèmes d’exploitation, en particulier la famille Windows de Microsoft, Apple OS X, Sun Solaris, l’environnement de travail KDE de Linux (K Desktop Environment), l’interface graphique CDE (Common Desktop Environment) des systèmes Unix, etc. ;
-
compilateurs, comme par exemple C, C++ et Fortran 90 chez Hewlett Packard ;
-
interfaces graphiques (ILOG Views, Intersolv Allegris, etc.) ;
-
téléphonie (Nokia, Ericsson, etc.) ;
-
transactions électroniques (système Amadeus de réservation de vols, voitures et hôtels) et commerce électronique (amazon.com) ;
-
jeux tels que DOOM 3 et l’ensemble de l’offre Microsoft.
Derrière des noms aussi célèbres que CORBA, Visual, Adobe (PhotoShop, Acrobat, etc.), Google, Internet Explorer ou Visual Studio se cache à chaque fois un développement en C++. La plupart des machines virtuelles Java sont également écrites en C++.
Pour tenter de comprendre cet intérêt pour le C++, examinons les bibliothèques graphiques telles que ILOG Views ou Intersolv Allegris.
Elles offrent :
-
un aspect Windows ou Motif ;
-
un ensemble de composants logiciels (boutons, menus, toolbars, scrollbars, etc.) utilisables directement ou réutilisables comme briques de base pour définir de nouveaux composants plus complexes ;
-
une portabilité des applications sur des plates-formes Windows, Unix, Linux (ILOG Views) ou OS2 (Intersolv Allegris). Les interfaces publiques des classes sont identiques pour l’ensemble des systèmes supportés, seules leurs implémentations et les bibliothèques liées sont spécifiques à chacun des systèmes. Quelques composants peuvent être spécifiques à un système, comme par exemple le DDE Windows (Dynamic Data Exchange).
Une entreprise qui développe une application en utilisant une telle bibliothèque n’a à gérer qu’un seul code source, réduisant...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
C++ dans l’industrie et la recherche
BIBLIOGRAPHIE
-
(1) - KERNIGHAM (B.W.), RITCHIE (D.M.) - The C Programming Language - . Prentice-Hall (1978).
-
(2) - ELLIS (M.A.), STROUSTRUP (B.) - The annotated C++ reference manual - . Addison-Wesley (1990).
-
(3) - GORLEN (K.E.), ORLOW (S.M.), PLEXICO (P.S.) - Data abstraction and object-oriented programming in C++ - . Editions John Wiley & Sons (1990).
-
(4) - STROUSTRUP (B.) - Le langage C++ - . Addison-Wesley France (1992).
-
(5) - BODEVEIX (J.P.), FILALI (M.), SAYAH (A.) - Programmation en C++ - . InterÉditions France (1994).
-
(6) - MEYER (B.) - Eiffel : the language - . Prentice Hall (1992).
-
(7) - MASINI...
DANS NOS BASES DOCUMENTAIRES
ANNEXES
Barne Stroustrup http://www.research.att.com/~bs/applications.html
HAUT DE PAGE
ISO/IEC 14882 - 1998 - Langages de programmation – C++ - -
HAUT DE PAGECet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive