Softwareversionsnummerering

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 27. maj 2021; checks kræver 3 redigeringer .

Et succesfuldt computerprograms livscyklus kan være meget lang; ændringer i programmet er forskellige - fra at rette en fejl til en komplet omskrivning. I de fleste tilfælde forbliver navnet på programmet det samme, undernavnet ændres - den såkaldte version .

Programversionen kan være et heltal ( Corel Draw 11), en talsekvens ( JDK 1.0.3), et år ( Windows 2000 ) eller tekst ( Embarcadero Delphi XE). Under alle omstændigheder vælges versionssystemet efter flere kriterier:

Nogle gange fører tilstedeværelsen af ​​menneskelige fejl i oprettelsen af ​​versionsnumre til fejl i versionsændringer. For eksempel kan udviklere ændre versionsnummeret, selvom ingen kodelinje er blevet omskrevet for at give det falske indtryk, at der er foretaget væsentlige ændringer.

Nummereringsskemaer

Sekventielle numre

I starten blev programmerne nummereret med tallene 1, 2 , 3 osv. - svarende til bogudgaver . Serienumre kan også være baseret på en form for teknisk tæller (f.eks. versionsnummeret i et versionskontrolsystem ) .

Nu om dage angiver serienumre sjældent udgivne programmer, der allerede er stabile. For eksempel Corel Draw 11, Windows 10 . For sådanne programmer bliver mindre serviceændringer normalt "fejet under gulvtæppet" uden at ændre den synlige version (kun ændres i den tekniske version, som f.eks. er tilgængelig fra menuen "Om"). Større ændringer, der introducerer ny funktionalitet, men som ikke fører til et nyt produkt, er normalt mærket med en decimal ( Windows 8.1 ).

Decimalbrøk

Historisk set den første nummereringsmetode, der adskiller mindre og større ændringer.

Versionsnummeret er en amerikansk decimal (stiplet ) . For eksempel får den første version tallet 1.0, den næste - 1.1, med en lille ændring - 1.11, oprettes et nyt produkt med ny funktionalitet - 2.0. Jo mere brøken stiger, jo større er ændringen. Udviklere springer nogle gange fra version 2.0 direkte til 2.5, for eksempel for at tilføje nogle få væsentlige funktioner til et program, men ikke nok til at ændre hovedversionsnummeret ( Turbo Pascal 5.0 → 5.5).

For foreløbige, uofficielle versioner bruges tal mindre end 1: f.eks. 0,1 eller 0,9.

Versioner sammenlignes efter reglerne for decimalbrøker: 0,9 < 1,0 < 1,01 < 1,1 = 1,10 < 1,11 < 1,2 = 1,20 < 2,0 < 2,5.

Sekvens af tal

Denne metode anvendes for eksempel i Windows API . Versionen består af flere tal (normalt tre) adskilt af en prik: for eksempel 1.5.2. Den første er den store version ( major ), den anden er den mindre ( mindre ), den tredje er mindre ændringer ( vedligeholdelse , mikro ).

Når et af tallene stiger, nulstilles alle efter det: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0, 1.2.1, 2.0.0 ... Det sidste nul kan være udeladt: 1.0.0 = 1.0.

Unix-bibliotekerne bruger versionsskemaet current.revision.age . Aktuel er det aktuelle API-nummer, revision er tælleren af ​​versioner inden for samme API, alder er forskellen mellem den seneste og første version af den understøttede API [1] .

For at bestemme ancienniteten af ​​versioner sammenlignes først de ældre versioner, derefter de yngre, derefter mikroversionerne som heltal: < 2.0.0.

Nogle gange er det fjerde nummer samlingsnummeret med kontinuerlig nummerering. Dette tal kan stige med én for hver udgivelse (1.0.0.1 < 1.0.1.2 < 1.0.2.3 < 1.1.0.4), eller taget fra en teknisk tæller (kompilering, natlige builds , kodeversioner i versionskontrolsystemet  - f.eks. 1.5.2.7682). I Microsoft Office koder det fjerde tal for udgivelsesdatoen [2] .

Igen betragtes 1.0 som den første officielle udgivelse; 0,1 eller 0,9 er pre-releases.

Brev som mindre version

Nogle gange bruges et bogstav i stedet for det tredje tal. Så da en fejl blev fundet i DotA 6.42 , fik den nye version navnet 6.42b. Det betyder: spillet forbliver det samme, med den samme forhindringsplacering og den samme balance , men med en fejl rettet. Yderligere fejlrettelser omtales som 6.42c, 6.42d osv.

Udviklingsstadie

Hvis udvikleren er nødt til at stole på freelance - testere , kan udgivelsen angive programmets modenhedsniveau: alfa, beta, udgivelseskandidat, endelig udgivelse, fejlrettelse ( serviceudgivelse ).

For eksempel, 2,0 alpha1 < 2,0 alpha2 < 2,0 beta < 2,0 rc1 < 2,0 < 2,0 sr1.

Der er forskellige ordninger til at udpege udviklingsstadier. For eksempel kan det tredje tal betyde:

For eksempel:

Inde i virksomheden kan udviklingsstadiet også være angivet (f.eks. 1.2.3 < 1.2.3r9 < 1.2.4), mens dette ikke er tilfældet i officielle udgivelser - for eksempel for at undgå forvirring blandt testere eller for at udstede nogle version til klienten - måske ustabil, men retter sin fejl.

Mellem 1.0 og 2.6.x-serien brugte Linux-kernen ulige tal til beta-udgivelser og lige tal for stabile udgivelser. For eksempel var Linux 2.3 udviklingsserien, og Linux 2.4 var den stabile udgivelsesserie, som Linux 2.3 har udviklet sig til. Udgivelsesnummeret for Linux-kernen blev først skrevet med det mindre versionsnummer og derefter med udgivelsesnummeret i stigende rækkefølge. For eksempel Linux 2.4.0 → Linux 2.4.22. Siden udgivelsen af ​​2.6 i 2004, bruger Linux ikke længere dette system, udgivelsescyklussen er meget kortere nu. Nu øger de blot det tredje tal og bruger det fjerde om nødvendigt.

Det samme lige-ulige system bruges af nogle andre langtidsprodukter, såsom GNOME.

Alfanumerisk titel

Oftest brugt software med en lang historie og sjældent udgivne versioner ( Windows Vista ).

Hvis versionstælleren er gået for langt og skal nulstilles, bruges de alfabetiske koder også: Adobe Photoshop 7.0 < CS < CS2 < ... < CS6 < CC < CC 2014.

Nogle gange bruges et alfanumerisk undernavn ud over den almindelige version: Ubuntu 9.04 Jaunty Jackalope , Embarcadero Delphi 10.2 Tokyo .

Dato

Udgivelsesåret bruges oftest i software med sjældent udgivne versioner, for eksempel: Windows Server 2003 , Microsoft Office 2014.

Udviklerne af Wine-projektet brugte også først datoer, når de nummererede versioner, de angav år, måned og udgivelsesdag: "Wine 20040505". Wine bruger i øjeblikket "standard" udgivelsesnummerering, hvor den seneste udgivelse i 2010 er 1.2. Ubuntu Linux-virksomheden bruger et lignende nummereringsskema, for eksempel er udgivelsen fra oktober 2010 nummereret Ubuntu 10.10. En lignende ordning bruges i øjeblikket af Microsoft til at nummerere Windows 10-opdateringer, selvom de normalt har et versionsnummer 1 mindre end månedsnummeret, for eksempel blev Fall Creators Update (1709) udgivet den 17. oktober 2017 og april 2018 Update ( 1803) på trods af nummeret "03" i titlen blev udgivet i april 2018.

Ved brug af datoer i versionsnummerering bør ISO-år-måned-dag-skemaet anvendes (dette gør det nemmere at sammenligne versioner for anciennitet), og bindestregen kan udelades.

Interne versioner

Ofte har programmet både et firmanavn og en intern version sammensat efter alle reglerne. For eksempel har Java SE 5.0 intern version 1.5.0, Windows 7 har  version 6.1 [3] . Forskellige samlinger af Windows-filer kan navngives, for eksempel 6.1.7600.16385.

Lignende tekniske versioner sammenlignes med en soldats hundemærke [2] . Ligesom på slagmarken er der brug for dem i nødstilfælde – når programmet ikke fungerer, som det skal, og udvikleren skal kontaktes.

Eksotiske skemaer

Donald Knuth nummererer versioner af Τ Ε Χ computersætsystemet med successive tilnærmelser af tallet : 3.0 < 3.1 < 3.14 osv. Det sidste stabile udgivelsesnummer er 3.141592653. Versioner af et andet udtænkt af Donald Knuth af METAFONT- sproget er nummereret ved tilnærmelser til tallet e . Marts 2008-versionen var nummereret 2.718281.

SuSE Linux startede med at tælle versioner med 4.2, som en reference til den berømte bog af Douglas Adams .

Betydning af versionsnumre

Version 1.0 som en vigtig udviklingsmilepæl

Kommercielle programmer begynder normalt at nummerere deres versioner ved 1.0. Det anses endda for, at version 1.0 udelukkende er rå og derfor er det nødvendigt at nå 1.2 eller endda 2.0 så hurtigt som muligt.

I gratis og open source-software betragtes 1.0 som det punkt, hvor et program anses for klar til udbredt brug af ikke-specialister. Samtidig er de indledende versioner af programmet nummereret som 0.1, 0.2 osv. FreeDOS kom til version 1.0 i 2006 - hvor DOS praktisk talt ikke blev brugt nogen steder. MAME spilleautomatemulatoren når aldrig version 1.0, fordi spilleautomaternes historie fortsætter den dag i dag.

Marketing, overtro og OCD

For at få navnet til at se bedre ud, skal kommerciel software involvere marketingfolk. For eksempel er tetrafobi almindelig i asiatiske lande , så tallet 4 undgås i versionsnumre. I Europa betragtes tallet 13 som uheldigt, det springes enten over eller erstattes med X3.

Hvis programmets historie er meget lang, skal den nogle gange nulstilles: Adobe Photoshop 7.0 < 8.0 < CS < CS2.

En af grundene til, at der ikke var nogen Winamp 4, var ordspillet : Winamp 4 skin og engelsk.  forhud  - "forhud" [4] .

Udeladelser i versioner

Nogle gange springer en udvikler et versionsnummer over for at følge med konkurrenterne eller andre produkter fra samme virksomhed: Microsoft Access sprang f.eks. direkte fra 2.0 til 7.0. Netscape Communicator sprang version 5 over, da Internet Explorer kom til 6.0; udover version 5.0 i User-Agentens udsatte testudgivelser af Mozilla Suite -browseren .

Sun Solaris faldt det første ciffer: 2.8 og 2.9 blev omtalt som 8 og 9 i markedsføringsmateriale; Java SE 1.5.0 og 1.6.0 er ligesom Java 5 og 6. Slackware Linux hoppede fra version 4 direkte til version 7 i 1999.

Microsoft Windows 10 udkommer efter 8.1.

PHP springer fra 5 til 7, grunden er, at version 6 viste sig at være hypet, men urealiserbar, og mange af dens innovationer blev knyttet til den 5. gren [5] .

Versionsprioritetsalgoritmer

Ofte skal du programmæssigt afgøre, hvilken af ​​de to versioner der er ældre - for eksempel er " bobler " blevet understøttet i Windows siden 2000 [6] , og i tidligere versioner skal du gøre det anderledes. En sådan kontrol udføres efter ret komplicerede regler: hvis versionen for eksempel er en decimalbrøk, skal du først sammenligne heltalsdelene som tal; hvis de er ens, så er brøkdele som strenge . Hvis versionen er en tredobbelt eller en firdobling af tal, så sammenlignes tallene et ad gangen, indtil en ulighed er fastlagt.

Da alt for komplekse algoritmer er fyldt med fejl [7] , og der ikke altid er tid til at skrive enhedstest , klarer de sig ofte med forenklede muligheder: for eksempel bygger de et langt tal ved hjælp af bitfelter (1.2.3.4 → 01020304 16 ) ; eller sammenlign versioner som strenge i leksikografisk rækkefølge . Det første fungerer ikke, hvis et af tallene går ud over 256 (1.0.257 < 1.1.0, men 010101 16 > 010100 16 ), det andet fungerer ikke, hvis version 10 er frigivet (9.5 < 10.0, men "9.5" > "10,0").

Nogle gange spiller sådanne forenklinger en grusom vittighed: I de tidlige år af Windows popularitet viste det sig, at mange programmer forkert kontrollerede OS-versionen og nægtede at arbejde under 4.0. Derfor havde Windows 95 og Windows 98 interne versioner 3.95 og 3.98 [8] .

Lignende tricks blev brugt i Opera - browserens User-Agent , når du flyttede fra version 9.64 til 10.00. Dette skyldes, at nogle websteder, der reagerer på User-Agenten, enten sammenlignede tal som strenge (10,0 < 9,5) eller tog det første ciffer (10,0 = 1,0) [9] . Udviklerne skulle bruge notationen Opera/9.80 i stedet for Opera/10.00 og tilføje det faktiske versionsnummer i slutningen af ​​UserAgent [10] . Det var planlagt, at den i den 11. version af UserAgent skulle få et velkendt udseende, men dette trick blev brugt indtil overgangen til Blink -motoren (begyndelsen af ​​2013 - på trods af at overgangen til den 10. version fandt sted tilbage i 2009 ).

PHP har en speciel funktion version_compare()til at bestemme versionsprioritet [11] .

Anvendelse af softwarenummereringsordninger i andre kulturområder

Eksterne links

Se også

Noter

  1. Versionering . Hentet 17. november 2017. Arkiveret fra originalen 27. september 2019.
  2. 1 2 Hvad er der i et versionsnummer, alligevel? . Hentet 18. november 2017. Arkiveret fra originalen 1. december 2017.
  3. Ofte stillede spørgsmål om installation af Windows 7 . Hentet 29. oktober 2017. Arkiveret fra originalen 1. december 2017.
  4. FAQ - Winamp Hjælp (downlink) . Hentet 6. maj 2011. Arkiveret fra originalen 19. december 2013. 
  5. Den næste version af PHP vil hedde PHP 7/Habrahabr . Hentet 20. maj 2015. Arkiveret fra originalen 20. maj 2015.
  6. Struktur NOTIFYICONDATApå MSDN . Hentet 7. maj 2011. Arkiveret fra originalen 12. juni 2011.
  7. Opdeling af funktionen CheckWin32Versionpå Embarcadero Quality Central (downlink) . Hentet 7. maj 2011. Arkiveret fra originalen 29. juli 2013. 
  8. Kontrol af forkert versionsnummer . Hentet 6. maj 2011. Arkiveret fra originalen 16. januar 2013.
  9. Andreas Bovens. Ændringer i Operas brugeragentstrengformat  (eng.)  (utilgængeligt link) (27. maj 2009). - Beskrivelse af årsagerne til ændringerne i AserAgent-formatet. Dato for adgang: 18. juni 2011. Arkiveret fra originalen 22. februar 2012.
  10. For eksempel:Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.11
  11. version_compare() . Hentet 17. november 2013. Arkiveret fra originalen 23. april 2014.