Version d'un logiciel 234051 31867163 2008-07-25T06:59:35Z SuperHeron 238140 Orthographe Une '''version d'un [[logiciel]]''' correspond à un état donné de son évolution. Elle est souvent associée à une numérotation qui permet de l'identifier, voire dans certains cas à un nom symbolique. Pour les logiciels de nature commerciale, on peut être amené à trouver deux numérotations: une numérotation interne à l'entreprise, et une numérotation présentant un caractère commercial. Ceci permet de séparer l'aspect marketing et/ou contractuel de l'aspect technique (nombreuses versions). Par exemple, le traitement de texte Word existe en version Word 2000 (version commerciale), ce qui correspond à la version 9.0.2812 (version technique). Toutefois cette différence n'existe pas en tant que tel dans les logiciels libres, vu leur mode de diffusion, ainsi [[OpenOffice.org]] existe en version 2.2.0, mais est connu sous le nom de OpenOffice.org 2.2. == Types d'évolutions == Il faut d'abord différencier les évolutions mineures, des évolutions majeures d'un logiciel: * Les évolutions ''majeures'' apportent de nouvelles fonctionnalités, voire restructurent complètement l'application. * Les évolutions ''mineures'' apportent principalement des corrections de bogues ou 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 branche ''stable'' et la branche ''développement'', chaque branche ayant sa propre version. Une branche peut aussi correspondre à un [[cycle de développement]] particulier. {{article détaillé|Branche (gestion de configuration)}} == Numérotation des versions == [[Image:VersionNumbers.svg|thumb|right|100px|Exemple d'arbre des versions d'un logiciel]] Il n'y a pas qu'une seule façon de décrire la version d'un logiciel; existe différents systèmes: *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 de [[TeX]] tend de [[asymptote|manière asymptotique]] vers [[Pi|<math>\Pi</math>]] ; la version actuelle est ''3.141592''. De même, la version de [[Metafont|METAFONT]] tend vers [[e (nombre)|<math>e</math>]] ; la version actuelle est ''2.71828''. *Grâce à l'année de sortie du logiciel: ''[[Adobe Illustrator]] 88''. *Grâce à la date de sortie: ''[[Wine]] 20040505'' (pour la version sortie le {{date|5|mai|2004}}), [[Ubuntu]] 8.04 (pour la version sortie en avril 2008). 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 qualifier certaines versions afin de préciser à quel cycle de développement du logiciel on est. Par exemple, [[Mac OS]] 10.5 est surnommé ''Leopard''. Il arrive aussi parfois que la parité des chiffres soit importante. Par exemple pour le [[noyau Linux]], la [[Parité (arithmétique)|parité]] du deuxième chiffre permet de savoir si c'est une branche stable (paire: 2.'''6'''.17) ou une branche de développement (impaire: 2.'''5'''.24). Les branches se succèdent ainsi l'une après l'autre: la branche stable 2.4.x n'évolue pas, les nouvelles fonctionnalités sont ajoutées à la branche 2.5.x. Lorsque celle-ci est prête, 2.5.x devient la nouvelle branche stable et est donc nommée 2.6.x, et une nouvelle branche de développement 2.7.x est crée. 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 === 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. À titre d'exemple, la version 2.6.10 du noyau [[Linux]] indique la 10{{e}} version de la 6{{e}} version de la 2{{e}} version de [[Linux]]. Ainsi, une version nommée « 2.5.21 » pourrait avoir le sens suivant: *2{{e}} version publiée. *5{{e}} ajout de fonctionnalité dans la version 2. *21{{e}} défaut corrigé. De manière générale plus les modifications apportées par le nouveau patch ou la nouvelle version sont importantes plus le numéro qui changera sera à gauche. S'il s'agit d'une simple correction d'un bug mineur on passera de 2.5.21 à 2.5.22. Par contre si on a le droit à une mise à jour majeure (de nouvelles fonctionnalités, un gameplay différent, etc.) on passera de 2.5.21 à 2.6.0. 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 par là même que le logiciel n'est pas abouti et correspond généralement à une version bêta. == Phases de développement == [[Image:Develstages+fr.svg|thumb|250 px|Les phases de développement d'un logiciel, entre le prototype et la version commercialisée]] En [[conception de programme]] la terminologie '''phases de développement''' indique l'état d'avancement à travers les étapes dans le respect des spécifications élaborées aux étapes précédentes et ce qu'il reste à accomplir. Une phase de développement est associée à une des étapes d'un [[cycle de développement]]. Suit en ordre chronologique, les différentes phases possibles d'un logiciel: === Prototype === Un prototype est un premier jet de l'application, ne disposant que de peu - voire pas - de réelles fonctionnalités, et permettant d'avoir un aperçu visuel de l'objectif recherché. On parle également de maquette. === Version alpha === Une version alpha 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 anglais ''alpha-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 de [[Bogue informatique|bogues]] encore important. === Version bêta === Le '''test bêta''' — on utilise fréquemment le terme anglais ''beta-test'' — est la deuxième période d'essai d'un produit [[informatique]] avant sa publication. Un produit en période de test bêta est généralement soumis à un nombre important ou représentatif de personnes: les [[bêta-testeur]]s. Ils peuvent être soit des employés de la société qui développe le logiciel, soit des bénévoles notamment dans le cas des [[Logiciel libre|logiciels libres]]. Ces personnes ont pour but d'utiliser le logiciel et de rapporter les problèmes rencontrés ainsi que leurs suggestions. Le but de cette phase est d'implémenter toutes les fonctionnalités du logiciel final. Le test bêta sert essentiellement à trouver des bogues résiduels, ou bien à modifier l'[[Interface Homme-machine|interface utilisateur]]. Il existe deux formes de test bêta : * la ''bêta ouverte'' ou ''bêta publique'', dans laquelle n'importe qui peut participer, avec parfois une restriction technique (nombre d'utilisateurs connectés simultanément, etc.); * la ''bêta fermée'' ou ''bê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 fabricants du produit testé qui sélectionne les candidatures. === Version admissible ou pre-release === Une version admissible, bien que le terme anglais {{lang|en|release candidate}} (souvent abrégé en RC) soit beaucoup plus utilisé, est une version du logiciel qui correspond, du coté pratique, à la version « finale » ou « stable » du dit 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 stable === On parle aussi parfois de version ''or'' (de l'anglais {{lang|en|gold}}), aussi appelée version GA, pour {{lang|en|General Availability}}. Quand un logiciel peut accomplir toutes les tâches prévues, il arrive à sa version « finale » ou « stable ». C'est cette version qui est généralement mise sur autre support de publication: [[CD-ROM]], [[DVD]], etc. Bien que ''finale'', on trouve toujours de nouveaux besoins auxquels un logiciel doit s'adapter, en ajoutant de nouvelles fonctionnalités. Donc un nouveau [[cycle de développement]] recommence à partir de cette version du logiciel. Ces [[mise à jour|mises à jour]] sont mises à disposition sous forme de [[Patch (informatique)|patch]], ou sont intégrés à la prochaine version stable du logiciel. === Version avancée === 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 Tartempion 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). == Voir aussi == * [[Gestion de versions|Gestion de version]] * [[Mise à jour]] * [[Non-régression]] * [[Logiciel de gestion de versions|Système de gestion de versions]] {{Portail informatique}} [[Catégorie:Développement logiciel]] [[da:Betaversion]] [[de:Versionierung]] [[en:Software versioning]] [[es:Fases del desarrollo de software]] [[nl:Bètaversie]] [[no:Betaversjon]] [[pl:Cykl życia programu]] [[sv:Betaversion]] [[th:ซอฟต์แวร์ระยะพัฒนา]]