Aller au contenu

Version d'un logiciel

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuisVersions bêtas)

Uneversion d'un logicielcorrespond à un état donné de l'évolution d'un produit logicielutilisant le versionnage. Selon leGrand dictionnaire terminologique,le versionnage (équivalent francophone de l'anglaisversioning) est le« mécanisme qui consiste à conserver la version d'une entitélogiciellequelconque, de façon à pouvoir la retrouver facilement, même après l'apparition et la mise en place de versions plus récentes »[1].

Une version delogicielest le plus souvent associée à une numérotation, voire dans certains cas à un nom symbolique, qui permet de l'identifier.

Pour leslogicielsde nature commerciale (progiciels), on peut être amené à trouver deux numérotations: une numérotation interne à l'entreprise, et une numérotation présentant un caractère commercial. Cela permet de séparer l'aspect marketing ou contractuel de l'aspect technique (nombreuses versions). Par exemple, letraitement de texteWord existe en versionWord 2000(version commerciale), ce qui correspond à la version 9.0.2912 (version technique). En revanche, leslogiciels libresutilisent généralement une numérotation unique; ainsiLibreOffice3.4.4 correspond à la version de maintenanceno4 de la version fonctionnelle 3.4.

On parle également de version d'un logiciel pour désigner ses différentesimplémentationsdestinées à des systèmes d'exploitation ou desplateformesdifférents.

Gestion de l'évolution d'un logiciel

[modifier|modifier le code]

La gestion de l'ensemble des versions d'un logiciel et de celles de ses différents éléments (sagestion de versions) requiert l'utilisation d'un système degestion de configuration.Un tel système permet l'existence simultanée de plusieurs versions du logiciel, endéveloppementou enmaintenance.Différentesbranchespermettent d'introduire des modifications, d'en comparer les versions et d'enfusionnerles changements.

Types d'évolutions

[modifier|modifier le code]

Il faut d'abord différencier les évolutions mineures, des évolutions majeures d'un logiciel. Les évolutionsmajeuresapportent de nouvelles fonctionnalités, voire restructurent complètement l'application. Les évolutionsmineuresapportent principalement des corrections debugsou des ajouts de fonctionnalités secondaires (par exemple, l'ajout d'un bouton de raccourci).

Une application peut être développée en plusieurs branches indépendantes. On retrouve généralement la branchestableet la branchedéveloppement,chaque branche ayant sa propre version. Une branche peut aussi correspondre à uncycle de développementparticulier.

Numérotation des versions

[modifier|modifier le code]
Exemple d'arbre des versions d'un logiciel.

Il existe différents systèmes pour décrire la version d'un logiciel:

  • en utilisant un ou plusieurs chiffres pouvant être séparés par des points:1.4,0.9.95.
  • en suivant une règle mathématique. Par exemple, la version deTEXtend demanière asymptotiquevers;la version actuelle est3.14159265.De même, la version deMetafonttend vers;la version actuelle est2.71828.
  • grâce à l'année de sortie du logiciel:Adobe Illustrator88.
  • grâce à la date de sortie:Wine20040505 (pour la version sortie le),Ubuntu8.04 (pour la version sortie en).
  • grâce au numéro de la révision:WebKitr112

On parle aussi d'édition pour désigner des évolutions mineures d'une version. Dans l'exemple de la version 2.6.10, la version sera 2 et l'édition la 6.10 ou bien la version la 2.6 et l'édition 10 (tout dépend des habitudes de l'éditeur ou de la communauté de développement).

Outre la numérotation qui permet d'identifier une version précise, il est courant de dénommer certaines versions afin de préciser à quel cycle de développement du logiciel on est. Par exemple,Mac OS10.5 est surnomméLeopard.

Le dernier numéro peut être remplacé par une lettre: au lieu de 2.5.21, on aurait 2.5.U (c'est le cas notamment pour de nombreux éditeurs de jeux vidéo).

Forme générale

[modifier|modifier le code]

Généralement, un numéro de version est composé d'une suite de nombres séparés par des points. Les nombres sont ordonnés du plus significatif au moins significatif: une évolution du premier nombre correspond à une refonte (relative) du logiciel, tandis que le dernier correspond à une évolution mineure. Ainsi, une version nommée « 2.5.21 » pourrait avoir le sens suivant:

  • 2eversion publiée.
  • 5eajout de fonctionnalités dans la version 2.
  • 21erévision de la version 2.5 (ou22esi la numérotation commence à partir de 0).

De manière générale, plus les modifications apportées par le nouveau correctif ou la nouvelle version sont importantes, plus le numéro qui changera sera à gauche. S'il s'agit d'une simple correction d'unbugmineur, on passera de 2.5.21 à 2.5.22. En revanche, s'il s'agit d'une mise à jour majeure (de nouvelles fonctionnalités, une ergonomie différente, etc.), on passera de 2.5.21 à 2.6.0. À titre d'exemple, la version 2.6.10 dunoyau Linuxindique la11erévision (la numérotation commence à 0) de la4eversion mineure (les numéros impairs ne sont pas utilisés pour les versions stables) de la2eversion majeure du noyau.

Traditionnellement, la première version fonctionnelle d'un logiciel est notée 1.0. Certaines versions de logiciels sont notées 0.x ou 0.x.x, indiquant ainsi que le logiciel n'est pas encore abouti (version bêta).

Lorsqu'un numéro de version est composé de trois nombres, ils sont respectivement appelés:majeur,mineuretcorrectif(en anglaismajor,minor,patch)[2].

Les notions de « majeur » ou « mineur » n'ont pas le même sens pour les développeurs et les utilisateurs. Par exemple, une restructuration profonde de l'application mais sans nouvelles fonctionnalités, sera vue comme « majeure » par les développeurs, mais ne sera pas perçue par les utilisateurs. Afin que le changement de version reste compréhensible par ces derniers, le premier chiffre du numéro de version diffusée ne devrait changer que s'il y a une modification des fonctionnalités.

G pour Génération, R pour Révision, C pour Correction. Les "o" venant s'intercaler entre les lettres de l’acronyme lui permettant d'être prononcé et retenu plus facilement.

Ce système de versionnement est similaire au versionnement sémantique, à la différence près que ses règles sur l'incrément des numéros sont moins arbitraires. C'est au sein du SI deFrance Télécomque cet acronyme a été le plus largement utilisé.[réf. nécessaire]

Phases de développement

[modifier|modifier le code]
Les phases de développement d'un logiciel, entre le prototype et la version finale.

Enconception de programme,la terminologie desphases de développementindique l'état d'avancement à travers les étapes dans le respect des spécifications élaborées aux étapes précédentes et ce qui reste à accomplir.

Une phase de développement est associée à une des étapes d'uncycle de développement.

Suit en ordre chronologique, les différentes phases possibles d'un logiciel.

Une maquette est un aperçu visuel de l'objectif recherché, ne disposant pas de réelle fonctionnalité.

Un prototype est un premier jet de l'application, ne disposant que de quelques fonctionnalités et servant de démonstrateur.

Version avancée

[modifier|modifier le code]

Se dit d'un logiciel qui est en cours de développement. Ce terme permet de différencier la version en évolution d'un logiciel, qui est encore à un stade entre alpha et RC, de sa version stable. Ainsi, vous pouvez choisir entre le logiciel WikiOnline version stable 1.0 par exemple, et sa version avancée 1.1 (son utilisation est déconseillée, à moins d'avoir absolument besoin des nouvelles fonctionnalités qui ne sont pas dans la version stable, ou dans le but de tests).

Version alpha

[modifier|modifier le code]

Une version alpha, ainsi nommée commela première lettre de l'alphabet grec,n'est pas censée être accessible à un large public: c'est une version interne. C'est la première phase de développement concret du logiciel après le codage de l'application. Généralement, un produit en test alpha — on utilise couramment le terme anglaisalpha-test— n'a pas toutes les fonctionnalités prévues dans le produit final, contrairement à un produit en test bêta qui devrait être complet. L'alpha est donc dépourvue de certaines fonctionnalités, et contient un nombre debugsencore important.

Le but de cette phase est d'implémenter toutes les fonctionnalités du logiciel final, et la version correspondante est traitée à l'intérieur même du studio de développement.

Versionnightly
[modifier|modifier le code]

La versionnightlyest en quelque sorte une version alpha permanente: les utilisateurs testent la version de développement en cours au plus près descommitsréalisés sur l'arbre de développement, au moyen de versions compilées automatiquement quotidiennement (traditionnellement chaque nuit, d'où l'appellationnightly).

Version bêta

[modifier|modifier le code]

Bêta, ainsi nommée commela deuxième lettre de l'alphabet grec,est la phase de développement logiciel qui suitalpha.Lebêta-testest donc la deuxième période d'essai d'un produitinformatiqueavant sa publication. Un produit en période debêta-testest généralement soumis à un nombre important ou représentatif d'utilisateurs: lesbêta-testeurs.Ils peuvent être des employés de la société qui développe le logiciel, des bénévoles (notamment dans le cas deslogiciels libres) ou des premiers clients notamment dans le processusLean Startup.Ces personnes ont pour but d'utiliser le logiciel, de rapporter les problèmes rencontrés et de suggérer des améliorations sur les fonctionnalités.

Lebêta-testsert essentiellement à mettre en évidence desbugsrésiduels, ou bien à modifier l'interface utilisateur.

Il existe deux formes de test bêta:

  • labêta ouverteoubêta publique,dans laquelle n'importe qui peut participer, avec parfois une restriction technique (nombre d'utilisateurs connectés simultanément, etc.);
  • labêta ferméeoubêta privée,dans laquelle les personnes intéressées par le produit doivent s'inscrire au préalable ou sont contactées par les concepteurs du produit testé qui sélectionnent les candidatures.
  • les bêtas étant souvent utilisées pour le marketing de jeux vidéo, la notion debêta interneest parfois utilisée pour indiquer qu'unebêta ferméeest réservée aux employés

Version admissible ou pre-release ou Release Candidate

[modifier|modifier le code]

Une version admissible, généralement désignée par le terme anglaisRelease Candidate(souvent abrégé en RC), est une version du logiciel qui est, du côté pratique, candidate à être la version « finale » ou « stable » dudit logiciel. Elle est mise à disposition à des fins de « tests de dernière minute » visant à déceler les toutes dernières erreurs subsistant au sein du programme.

Version finale (ou stable)

[modifier|modifier le code]

Quand un logiciel peut accomplir toutes les tâches prévues et que des bugs n'apparaissent plus (ou presque plus), on considère qu'il a atteint sa version « finale » ou « stable » qui peut alors être publiée: en ligne, surCD-ROM,DVD,etc. On parle parfois de version « or » (de l'anglais «gold»), que l'on appelle aussi version « GA », pour «General Availability» ou version « Gold Master » abrégée en version en « GM » ou encore de «Release to Manufacturing» abrégée en « RTM ».

Tout en étant décrété « en version finale », un logiciel peut comporter quelques bugs résiduels ou peut nécessiter de s'adapter à de nouveaux besoins conduisant à ajouter de nouvelles fonctionnalités et à lancer un nouveaucycle de développementà partir de cette version. Ces modifications ont pour conséquences desmises à jourqui sont disponibles sous forme de rustines, que l'on appelle plutôt descorrectifs,ou qui sont intégrées dans la distribution suivante du logiciel.

Versions d'implémentation

[modifier|modifier le code]

On parle également de « version d'un logiciel » pour désigner ses différentesimplémentationsdestinées à desOSouplateformesdifférents: par exemple les versionsWindows32 bits (x86), Windows 64 bits (x64), macOS et Linux d'un même logiciel.

Dans ce cas, le même périmètre fonctionnel du logiciel est assuré par différentsexécutablesobtenus chacun par lacompilationspécifique decodes sourcesplus ou moins distincts.

Notes et références

[modifier|modifier le code]

Articles connexes

[modifier|modifier le code]