Compatibilité ascendante et descendante
Un article de Wikipédia, l'encyclopédie libre.
Cet article devrait être scindé en plusieurs articles distincts, accessibles via une page d'homonymie (pour plus d'informations, se reporter en page de discussion).
Merci de n’y apporter aucune modification tant que la scission n’aura pas été effectuée et que ce message n’aura pas disparu. |
Cet article est une ébauche à compléter concernant l'informatique, vous pouvez partager vos connaissances en le modifiant. |
La compatibilité ascendante et descendante est un problème qui se pose en informatique avec l'évolution du matériel et des logiciels.
La rétro compatibilité ou compatibilité ascendante, est la faculté, pour un logiciel, d'être compatible avec une de ses anciennes versions, ou une ancienne version des technologies qu'il emploie. Ce terme est ainsi employé dans le domaine du jeu vidéo lorsqu'on évoque le fait qu'une console peut lire indifféremment des jeux spécifiquement créés pour elle, comme ceux créés pour les machines de générations précédentes ; c'est par exemple le cas de la Sony Playstation 2 capable de lire également les jeux Playstation.
Le contraire est la compatibilité descendante, c’est-à-dire la possibilité pour un produit d’être compatible avec des versions qui ne sont pas encore sorties, voire pas encore conçues. Cette seconde forme de compatibilité est bien plus rare et nécessite un travail de conception autrement plus important.
Ce terme est propre au jargon des informaticiens. En 2005, il ne figurait pas dans les dictionnaires de langue française.
[modifier] Cas du matériel
Les logiciels fonctionnent sur du matériel.
- Compatibilité descendante
- Le logiciel peut fonctionner sur du matériel plus ancien.
- Compatibilité ascendante
- Le logiciel peut fonctionner sur du matériel plus récent ; le matériel prend en charge les anciens logiciels.
La compatibilité se pose aussi entre les composants, et entre l'unité centrale et les périphériques.
[modifier] Cas des logiciels
Les données traitées sont enregistrées dans un fichier. D'une version à l'autre, un logiciel présente fréquemment de nouvelles fonctionnalités qui nécessitent une modification du format des fichiers ; dans certains cas, il y a même un changement total de structure du fichier (par exemple passage d'un « catalogue » au format texte à une base de données). Ainsi, un fichier créé par la dernière version d'un logiciel peut avoir une structure différente d'un fichier créé par une version plus ancienne.
- Compatibilité descendante
- Le logiciel peut lire des fichiers créés par une version plus récente.
- Compatibilité ascendante
- Le logiciel peut lire des fichiers créés par une version plus ancienne.
En général, la compatibilité ascendante est assurée. Si le nouveau format de fichier est plus complet que l'ancien, le logiciel peut simplement « faire avec » les données manquantes. Il peut également convertir le fichier de l'ancien vers le nouveau format.
La compatibilité descendante est plus complexe. Le cas idéal consiste à avoir un format « robuste » aux changement, comme par exemple le HTML : si un navigateur rencontre une balise inconnue, il se contente de l'ignorer, le rendu n'est alors pas conforme à l'intention de l'auteur, mais le lecteur dispose tout de même des informations. Les formats robustes sont en général peu compacts.
La solution la plus généralement adoptée consiste à permettre d'exporter vers un format plus ancien, au prix d'une perte possible de données (celles relatives aux nouvelle fonctionnalités du logiciel). On peut aussi avoir un format compact utilisé pour le traitement de données, et un format « universel » robuste mais gourmand en place, qui permet les échanges.