Présentation
EnglishAuteur(s)
-
Patrick BELLOT : Docteur d’État en Informatique - Professeur à l’École Nationale Supérieure des Télécommunications
-
Bernard ROBINET : Professeur des Universités - Directeur Scientifique de l’École Nationale Supérieure des Télécommunications
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleINTRODUCTION
La diversité des architectures matérielles et des systèmes d’exploitation pose le problème général de la portabilité des logiciels. La définition de la portabilité est donnée par la norme NF ISO/CEI 9126 Z67-133 d’octobre 1992 : un ensemble d’attributs portant sur l’aptitude du logiciel à être transféré d’un environnement à l’autre, l’environnement pouvant être organisationnel, matériel ou logiciel. La définition, bien vague, recouvre des problèmes conceptuels et techniques qui n’ont pas de solutions définitives et absolues. Comme le soulignait B. Meyer en 1981 [12], la portabilité est à 99 % un problème ouvert. En une décennie, la situation n’a guère évolué, le signe le plus évident étant l’absence quasi totale d’écrits spécifiques sur le sujet. Si le but à atteindre est évident, les problèmes, les moyens et les solutions sont mal identifiés car trop fréquemment dépendants du logiciel concerné. La portabilité des logiciels est un facteur économique majeur de l’industrie informatique et les méthodes permettant de l’obtenir représentent un acquis fondamental du génie logiciel.
Au sein des entreprises, le problème de la portabilité se pose avec acuité car il est à présent rare qu’elles se contentent d’un seul constructeur, de ses machines et de ses systèmes d’exploitation propriétaires. Il importe donc que les applications développées dans l’entreprise ou acquises par elle soient portables. De même, pour toute société désirant commercialiser un logiciel de sa conception, la rentabilité de son développement et de sa commercialisation suppose la portabilité. Pour les constructeurs, l’effet induit est une uniformisation obligée de leurs gammes de machines et de systèmes d’exploitation. AUA (Architecture Unifiée d’Applications) d’IBM [13] et [14], est un exemple typique de cette approche puisqu’elle propose un ensemble d’outils, de langages et de services disponibles sur une gamme complète d’ordinateurs. Les développeurs, quant à eux, sont conduits à utiliser des méthodes permettant à leurs programmes de s’exécuter dans des contextes variés.
Les quatre premiers paragraphes ont abordé la portabilité des logiciels tant du point de vue technique de la programmation et des langages que de celui plus méthodologique de l’organisation du logiciel et de son développement. Le langage Java connaît une explosion médiatique peu commune. L’une de ses caractéristiques est la portabilité de ses exécutables obtenue grâce au concept de machine virtuelle [10]. Ce concept qui n’est pas nouveau mais remis au goût du jour par Java est l’objet de cet article. Nous le comparons avec les deux autres techniques de mise en œuvre des langages que sont la compilation et l’interprétation.
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
4. Organisation des programmes
Un des objets du génie logiciel est l’organisation des composants d’un logiciel. Le mot clé est modularité. Pour faciliter le portage, les programmes doivent être logiquement organisés en couches hiérarchisées et physiquement disposés en modules. Différentes méthodes de développement, qu’elles soient fonctionnelles ou orientées objet comme le sont Booch ou Hood [3] [10], permettent d’atteindre ces caractéristiques.
4.1 Couches logicielles
Dans une organisation logique en couches hiérarchiques des programmes, les programmes d’une couche n’utilisent comme sous-programmes que les programmes de la couche elle-même et ceux des couches inférieures. Si nous prenons l’exemple classique des interfaces graphiques d’un système telles que celles du Macintosh ou des PS/2 d’IBM sous OS/2 ou Windows, nous savons que le système repose sur l’utilisation d’éléments périphériques tels que l’écran, le clavier et la souris. Ces éléments sont physiques. La manière dont on y accède est très dépendante du matériel. L’accès à ces éléments formera donc la première couche appelée GPI (Graphic Programming Interface ) [4]. Puis la réalisation du système d’interface graphique formera une deuxième couche utilisant les programmes de la première couche. Cette deuxième couche appelée API, pour Application Programming Interface, contiendra des programmes qui peuvent être utilisés par toute application. On obtient donc le schéma suivant :
Plus une couche est basse, moins elle est portable. Porter une application construite en couches revient alors à porter les couches les plus basses jusqu’à atteindre une couche qui ne soit dépendante ni de l’architecture ni du système d’exploitation. L’organisation logique en couches permet une identification aisée des sous-programmes qui doivent être modifiés lors du portage de l’application.
HAUT DE PAGE4.2 Modules
À l’intérieur d’une couche, les programmes doivent être physiquement disposés en modules. Un module est un composant logiciel défini par une interface de programmation et dont le code est inaccessible au programmeur qui utilise le module pour développer son application. La spécification...
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
Organisation des programmes
BIBLIOGRAPHIE
-
(1) - ANDRÉ (E.), al - CONCERTO. - Revue Génie Logiciel, no 18, 1990.
-
(2) - ANDRIEU (P.), al - Relations entre l’environnement HOOD et les autres dans CONCERTO. - Première Conférence HOOD, H. Habrias et M. Lai éds., 1991.
-
(3) - AUBERT (J.-P.), DIXNEUF (P.) - Conception et programmation par objets. - Masson, 1991.
-
(4) - BARAN (N.), HAYES (F.) - A guide to GUID. - Byte, juil. 1989.
-
(5) - BELLOT (P.), LEGRAND (R.) - Miles, un langage pour l’intelligence artificielle. - Université d’été de l’Afcet 1988, Rabat (Maroc), juil. 1988.
-
(6) - BELLOT (P.), JAY (V.) - Differences ? You say differences ? IBM Prolog for OS/2. - IBM PSC Report, Paris, déc. 1990.
-
...
NORMES
-
Technologies de l’information. Évaluation des produits logiciels. Caractéristiques de qualité et directives d’utilisation. - NF ISO/CEI 9126 - 10-92
ANNEXES
FRIEDMAN-HILL (E.J.) - Java : Visuel pro : pour construire des programmes Java portables. - 2001.
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