Ciclul de viață al unui program de calculator de succes poate fi foarte lung; modificările în program sunt diferite - de la remedierea unui bug la o rescrie completă. În cele mai multe cazuri, numele programului rămâne același, subnumele se schimbă - așa-numita versiune .
Versiunea programului poate fi un număr întreg ( Corel Draw 11), o secvență de numere ( JDK 1.0.3), un an ( Windows 2000 ) sau text ( Embarcadero Delphi XE). În orice caz, sistemul de versiuni este selectat în funcție de mai multe criterii:
Uneori, prezența erorilor umane în crearea numerelor de versiune duce la erori în modificările versiunii. De exemplu, dezvoltatorii pot schimba numărul versiunii chiar dacă nicio linie de cod nu a fost rescrisă pentru a da impresia falsă că s-au făcut modificări semnificative.
Inițial, programele au fost numerotate cu numerele 1, 2, 3 etc. - similar cu edițiile de cărți . De asemenea, numerele de serie se pot baza pe un fel de contor tehnic (de exemplu, numărul versiunii într-un sistem de control al versiunilor ).
În zilele noastre, numerele de serie denotă programe rar lansate care sunt deja stabile. De exemplu, Corel Draw 11, Windows 10 . Pentru astfel de programe, modificările minore ale serviciului sunt de obicei „măturate sub covor” fără a schimba versiunea vizibilă (schimbând doar versiunea tehnică, disponibilă, de exemplu, din meniul „Despre”). Schimbările majore care introduc funcționalități noi, dar care nu conduc la un produs nou sunt de obicei etichetate cu o zecimală ( Windows 8.1 ).
Din punct de vedere istoric, prima metodă de numerotare care separă modificările minore de cele majore.
Numărul versiunii este o zecimală din SUA (punctată ) . De exemplu, prima versiune primește numărul 1.0, următoarea - 1.1, cu o mică modificare - 1.11, este creat un produs nou cu funcționalitate nouă - 2.0. Cu cât fracția crește, cu atât este mai semnificativă schimbarea. Dezvoltatorii trec uneori de la versiunea 2.0 direct la 2.5, de exemplu, pentru a semnifica adăugarea unor caracteristici semnificative la un program, dar nu suficient pentru a schimba numărul major al versiunii ( Turbo Pascal 5.0 → 5.5).
Pentru versiunile preliminare, neoficiale, se folosesc numere mai mici de 1: să zicem, 0,1 sau 0,9.
Versiunile se compară după regulile fracțiilor zecimale: 0,9 < 1,0 < 1,01 < 1,1 = 1,10 < 1,11 < 1,2 = 1,20 < 2,0 < 2,5.
Această metodă este adoptată, de exemplu, în API-ul Windows . Versiunea constă din mai multe numere (de obicei trei) separate printr-un punct: de exemplu, 1.5.2. Prima este versiunea majoră ( major ), a doua este cea minoră ( minoră ), a treia este modificări minore ( întreținere , micro ).
Când unul dintre numere crește, toate după ce sunt resetate la zero: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0, 1.2.1, 2.0.0 ... Ultimul zero poate fi omis: 1.0.0 = 1.0.
Bibliotecile Unix folosesc schema de versiuni current.revision.age . Actual este numărul actual de API, revizuirea este contorul versiunilor din același API, vârsta este diferența dintre cea mai recentă și prima versiune a API-ului acceptat [1] .
Pentru a determina vechimea versiunilor, mai întâi se compară versiunile mai vechi, apoi cele mai tinere, apoi cele micro ca numere întregi: < 2.0.0.
Uneori, al patrulea număr este numărul de ansamblu cu numerotare continuă. Această cifră poate crește cu una cu fiecare lansare (1.0.0.1 < 1.0.1.2 < 1.0.2.3 < 1.1.0.4), sau poate fi luată de la un contor tehnic (compilări , versiuni de noapte , versiuni de cod în sistemul de control al versiunilor - de exemplu, 1.5.2.7682). În Microsoft Office, al patrulea număr codifică data lansării [2] .
Din nou, 1.0 este considerată prima versiune oficială; 0.1 sau 0.9 sunt pre-lansări.
Uneori se folosește o literă în locul celui de-al treilea număr. Deci, când a fost găsită o eroare în DotA 6.42 , noua versiune a primit numele 6.42b. Aceasta înseamnă: jocul rămâne același, cu aceeași plasare a obstacolelor și același echilibru , dar cu un bug remediat. Alte remedieri de erori sunt denumite 6.42c, 6.42d etc.
Dacă dezvoltatorul trebuie să se bazeze pe testeri independenți , versiunea poate indica nivelul de maturitate al programului: alfa, beta, candidat pentru lansare, versiune finală, remediere a erorilor (premiere de serviciu ).
De exemplu, 2.0 alpha1 < 2.0 alpha2 < 2.0 beta < 2.0 rc1 < 2.0 < 2.0 sr1.
Există diferite scheme pentru desemnarea etapelor de dezvoltare. De exemplu, al treilea număr ar putea însemna:
De exemplu:
În interiorul companiei, poate fi indicată și stadiul de dezvoltare (de exemplu, 1.2.3 < 1.2.3r9 < 1.2.4), în timp ce nu este cazul în versiunile oficiale - de exemplu, pentru a evita confuzia între testeri sau pentru a emite unele versiunea către client - poate instabilă, dar corectând eroarea acestuia.
Între seriile 1.0 și 2.6.x, nucleul Linux a folosit numere impare pentru versiunile beta și numere pare pentru versiunile stabile. De exemplu, Linux 2.3 a fost seria de dezvoltare, iar Linux 2.4 a fost seria de lansări stabile în care a evoluat Linux 2.3. Numărul de lansare al nucleului Linux a fost scris mai întâi cu numărul versiunii minore și apoi cu numărul de lansare în ordine crescătoare. De exemplu Linux 2.4.0 → Linux 2.4.22. De la lansarea versiunii 2.6 în 2004, Linux nu mai folosește acest sistem, ciclul de lansare este mult mai scurt acum. Acum pur și simplu măresc al treilea număr, folosind al patrulea dacă este necesar.
Același sistem par-impar este folosit de alte produse cu ciclu lung, cum ar fi GNOME.
Cel mai des folosit software cu o istorie lungă și versiuni rar lansate ( Windows Vista ).
Dacă contorul de versiuni a mers prea departe și trebuie resetat, se folosesc și codurile alfabetice: Adobe Photoshop 7.0 < CS < CS2 < ... < CS6 < CC < CC 2014.
Uneori, pe lângă versiunea obișnuită, se folosește un subnume alfanumeric: Ubuntu 9.04 Jaunty Jackalope , Embarcadero Delphi 10.2 Tokyo .
Anul lansării este folosit cel mai des în software-ul cu versiuni rare, de exemplu: Windows Server 2003 , Microsoft Office 2014.
Dezvoltatorii proiectului Wine au folosit mai întâi datele la numerotarea versiunilor, au indicat anul, luna și ziua lansării: „Wine 20040505”. Wine folosește în prezent numerotarea „standard”, cea mai recentă versiune din 2010 fiind 1.2. Compania Ubuntu Linux folosește o schemă de numerotare similară, de exemplu, versiunea din octombrie 2010 este numerotată Ubuntu 10.10. O schemă similară este utilizată în prezent de Microsoft pentru a număra actualizările Windows 10, deși acestea au de obicei un număr de versiune cu 1 mai mic decât numărul lunii, de exemplu, Fall Creators Update (1709) a fost lansat pe 17 octombrie 2017 și Aprilie 2018 Update ( 1803) în ciuda numărului „03” din titlu a fost lansat în aprilie 2018.
Când se utilizează date în numerotarea versiunilor, ar trebui utilizată schema ISO an-lună-zi (acest lucru facilitează compararea versiunilor pentru vechime), iar cratima poate fi omisă.
Adesea, programul are atât un nume comercial, cât și o versiune internă compilată conform tuturor regulilor. De exemplu, Java SE 5.0 are versiunea internă 1.5.0, Windows 7 are versiunea 6.1 [3] . Diferite ansambluri de fișiere Windows pot fi denumite, de exemplu, 6.1.7600.16385.
Versiuni tehnice similare sunt comparate cu eticheta unui soldat [2] . La fel ca pe câmpul de luptă, acestea sunt necesare în cazuri de urgență - când programul nu funcționează așa cum ar trebui și dezvoltatorul trebuie contactat.
Donald Knuth numere versiuni ale sistemului de compunere computerizată Τ Ε Χ cu aproximări succesive ale numărului : 3,0 < 3,1 < 3,14 etc. Ultimul număr de lansare stabil este 3.141592653. Versiunile unei alte creații a lui Donald Knuth din limbajul METAFONT sunt numerotate prin aproximații la numărul e . Versiunea din martie 2008 a fost numerotată 2.718281.
SuSE Linux a început să conteze versiunea cu 4.2, ca referință la celebra carte a lui Douglas Adams .
Programele comerciale încep de obicei să-și numeroteze versiunile la 1.0. Se consideră chiar că versiunea 1.0 este exclusiv brută și de aceea este necesar să ajungem la 1.2 sau chiar 2.0 cât mai curând posibil.
În software-ul liber și cu sursă deschisă, 1.0 este considerat punctul în care un program este considerat gata pentru utilizare pe scară largă de către nespecialiști. În același timp, versiunile inițiale ale programului sunt numerotate ca 0.1, 0.2 etc. FreeDOS a ajuns la versiunea 1.0 în 2006 - când DOS nu era practic folosit nicăieri. Emulatorul de sloturi MAME nu va ajunge niciodată la versiunea 1.0, deoarece istoria sloturilor continuă până în zilele noastre.
Pentru ca numele să arate mai bine, software-ul comercial trebuie să implice agenții de marketing. De exemplu, tetrafobia este obișnuită în țările asiatice , astfel încât numărul 4 este evitat în numerele de versiune. În Europa, numărul 13 este considerat ghinionist, este fie sărit, fie înlocuit cu X3.
Dacă istoricul programului este foarte lung, uneori trebuie resetat: Adobe Photoshop 7.0 < 8.0 < CS < CS2.
Unul dintre motivele pentru care nu a existat Winamp 4 a fost jocul de cuvinte : Winamp 4 skin și engleză. preput - „preput” [4] .
Uneori, un dezvoltator omite un număr de versiune pentru a ține pasul cu concurenții sau cu alte produse de la aceeași companie: de exemplu, Microsoft Access a sărit direct de la 2.0 la 7.0. Netscape Communicator a omis versiunea 5, deoarece Internet Explorer a ajuns la 6.0; pe lângă versiunea 5.0 în versiunile de testare marcate ale User-Agent ale browserului Mozilla Suite .
Sun Solaris a scăzut prima cifră: 2,8 și 2,9 au fost denumite 8 și 9 în materialele de marketing; Java SE 1.5.0 și 1.6.0 sunt ca Java 5 și 6. Slackware Linux a sărit de la versiunea 4 direct la versiunea 7 în 1999.
Microsoft Windows 10 apare după 8.1.
PHP sare de la 5 la 7, motivul este că versiunea 6 s-a dovedit a fi populară, dar irealizabilă, iar multe dintre inovațiile sale au fost atașate celei de-a 5-a ramuri [5] .
Adesea trebuie să determinați programatic care dintre cele două versiuni este mai veche - de exemplu, „ bulele ” sunt acceptate în Windows din 2000 [6] , iar în versiunile anterioare trebuie să o faceți diferit. O astfel de verificare se face conform unor reguli destul de complicate: de exemplu, dacă versiunea este o fracție zecimală, mai întâi trebuie să comparați părțile întregi ca numere; dacă sunt egale, atunci cele fracționale sunt ca șirurile . Dacă versiunea este un triplu sau un cvadruplu de numere, atunci numerele sunt comparate pe rând până când se stabilește o inegalitate.
Deoarece algoritmii prea complecși sunt plini de erori [7] și nu există întotdeauna timp pentru a scrie teste unitare , adesea se descurcă cu opțiuni simplificate: de exemplu, construiesc un număr lung folosind câmpuri de biți (1.2.3.4 → 01020304 16 ) ; sau comparați versiunile ca șiruri în ordine lexicografică . Primul nu va funcționa dacă unul dintre numere depășește 256 (1.0.257 < 1.1.0, dar 010101 16 > 010100 16 ), al doilea nu va funcționa dacă versiunea 10 este lansată (9.5 < 10.0, dar „9.5" > „10.0”).
Uneori, astfel de simplificări joacă o glumă crudă: în primii ani ai popularității Windows , s-a dovedit că multe programe au verificat incorect versiunea sistemului de operare, refuzând să funcționeze sub 4.0. Prin urmare, Windows 95 și Windows 98 aveau versiuni interne 3.95 și 3.98 [8] .
Trucuri similare au fost folosite în User-Agent al browserului Opera la trecerea de la versiunea 9.64 la 10.00. Acest lucru se datorează faptului că unele site-uri care răspund la User-Agent fie au comparat numere ca șiruri (10,0 < 9,5) fie au luat prima cifră (10,0 = 1,0) [9] . Dezvoltatorii au trebuit să folosească notația Opera/9.80 în loc de Opera/10.00 și să adauge numărul real al versiunii la sfârșitul UserAgent [10] . Era planificat ca până la a 11-a versiune a UserAgent să capete un aspect familiar, dar acest truc a fost folosit până la trecerea la motorul Blink (începutul anului 2013 - în ciuda faptului că tranziția la a 10-a versiune a avut loc în 2009). ).
PHP are o funcție specială version_compare()pentru determinarea precedenței versiunii [11] .
Dezvoltare de software | |
---|---|
Proces | |
Concepte de nivel înalt | |
Directii |
|
Metodologii de dezvoltare | |
Modele |
|
Cifre notabile |
|