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