Životní cyklus úspěšného počítačového programu může být velmi dlouhý; změny v programu jsou různé – od opravy chyby až po kompletní přepsání. Ve většině případů zůstává název programu stejný, mění se podnázev - tzv. verze .
Verze programu může být celé číslo ( Corel Draw 11 ), sekvence čísel ( JDK 1.0.3 ), rok ( Windows 2000 ) nebo text ( Embarcadero Delphi XE ). V každém případě se verzovací systém vybírá podle několika kritérií:
Někdy přítomnost lidské chyby při vytváření čísel verzí vede k chybám ve změnách verzí. Vývojáři mohou například změnit číslo verze, i když nebyl přepsán žádný řádek kódu, aby vyvolal falešný dojem, že byly provedeny významné změny.
Zpočátku byly programy číslovány čísly 1, 2, 3 atd. - podobně jako knižní vydání . Sériová čísla mohou být také založena na nějakém druhu technického počítadla (například číslo verze v systému správy verzí ).
Sériová čísla dnes označují zřídka vydávané programy, které jsou již stabilní. Například Corel Draw 11, Windows 10 . U takových programů jsou drobné servisní změny obvykle „zameteny pod koberec“ bez změny viditelné verze (změna pouze technické verze dostupné např. z nabídky „O aplikaci“). Velké změny, které zavádějí nové funkce, ale nevedou k novému produktu, jsou obvykle označeny desetinnou čárkou ( Windows 8.1 ).
Historicky první metoda číslování, která odděluje drobné a velké změny.
Číslo verze je americké desetinné číslo (tečkované ) . Například první verze dostane číslo 1.0, další - 1.1, s malou změnou - 1.11, je vytvořen nový produkt s novou funkčností - 2.0. Čím více se zlomek zvyšuje, tím významnější je změna. Vývojáři někdy skočí z verze 2.0 rovnou na 2.5, například, aby znamenali přidání několika významných funkcí do programu, ale ne dost na změnu hlavního čísla verze ( Turbo Pascal 5.0 → 5.5).
Pro předběžné, neoficiální verze se používají čísla menší než 1: řekněme 0,1 nebo 0,9.
Verze se porovnávají podle pravidel desetinných zlomků: 0,9 < 1,0 < 1,01 < 1,1 = 1,10 < 1,11 < 1,2 = 1,20 < 2,0 < 2,5.
Tato metoda je převzata například v rozhraní Windows API . Verze se skládá z několika čísel (obvykle tří) oddělených tečkou: například 1.5.2. První je hlavní verze ( major ), druhá je vedlejší ( minor ), třetí jsou drobné změny ( údržba , mikro ).
Když se jedno z čísel zvýší, všechna po něm se vynulují: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0, 1.2.1, 2.0.0 ... Poslední nula může být vynecháno: 1,0,0 = 1,0.
Unixové knihovny používají schéma verzování current.revision.age . Current je aktuální číslo API, revize je počítadlo verzí v rámci stejného API, stáří je rozdíl mezi nejnovější a první verzí podporovaného API [1] .
Pro určení seniority verzí jsou nejprve porovnány starší verze, poté mladší verze a poté mikro jako celá čísla: < 2.0.0.
Někdy je čtvrté číslo montážní číslo s průběžným číslováním. Toto číslo se může s každým vydáním zvýšit o jednu (1.0.0.1 < 1.0.1.2 < 1.0.2.3 < 1.1.0.4) nebo může být převzato z nějakého technického počítadla (kompilace, noční sestavení , verze kódu v systému správy verzí – např. 1.5.2.7682). V Microsoft Office čtvrté číslo kóduje datum vydání [2] .
Opět je 1.0 považováno za první oficiální vydání; 0,1 nebo 0,9 jsou předběžné verze.
Někdy se místo třetí číslice používá písmeno. Takže když byla nalezena chyba v DotA 6.42 , nová verze dostala název 6.42b. To znamená: hra zůstává stejná, se stejným umístěním překážek a stejnou rovnováhou , ale s opravenou chybou. Další opravy chyb jsou označovány jako 6.42c, 6.42d atd.
Pokud se vývojář musí spolehnout na externí testery , může vydání indikovat úroveň vyspělosti programu: alfa, beta, kandidát na vydání, finální vydání, oprava chyb ( servisní vydání ).
Například 2,0 alfa1 < 2,0 alfa2 < 2,0 beta < 2,0 rc1 < 2,0 < 2,0 sr1.
Existují různá schémata pro označení vývojových fází. Například třetí číslo může znamenat:
Například:
Uvnitř společnosti může být také uvedena fáze vývoje (například 1.2.3 < 1.2.3r9 < 1.2.4), zatímco v oficiálních verzích tomu tak není - například, aby se předešlo zmatku mezi testery nebo aby se vydaly nějaké verzi klientovi - možná nestabilní, ale opravující jeho chybu.
Mezi sérií 1.0 a 2.6.x používalo linuxové jádro lichá čísla pro beta verze a sudá čísla pro stabilní verze. Například Linux 2.3 byla vývojová řada a Linux 2.4 byla stabilní řada, do které se Linux 2.3 vyvinul. Číslo vydání linuxového jádra bylo zapsáno nejprve s číslem vedlejší verze a poté s číslem vydání ve vzestupném pořadí. Například Linux 2.4.0 → Linux 2.4.22. Od vydání 2.6 v roce 2004 již Linux tento systém nepoužívá, cyklus vydání je nyní mnohem kratší. Nyní jednoduše zvýší třetí číslo a v případě potřeby použijí čtvrté.
Stejný systém sudá-lichá používají některé další produkty s dlouhým cyklem, jako je GNOME.
Nejčastěji používaný software s dlouhou historií a zřídka vydávanými verzemi ( Windows Vista ).
Pokud počítadlo verzí zašlo příliš daleko a je třeba jej vynulovat, použijí se také abecední kódy: Adobe Photoshop 7.0 < CS < CS2 < ... < CS6 < CC < CC 2014.
Někdy se kromě běžné verze používá i alfanumerický podnázev: Ubuntu 9.04 Jaunty Jackalope , Embarcadero Delphi 10.2 Tokyo .
Rok vydání se používá nejčastěji u softwaru se zřídka vydávanými verzemi, například: Windows Server 2003 , Microsoft Office 2014.
Vývojáři projektu Wine také poprvé použili data při číslování verzí, uvedli rok, měsíc a den vydání: „Wine 20040505“. Wine v současné době používá "standardní" číslování vydání, přičemž nejnovější vydání v roce 2010 je 1.2. Společnost Ubuntu Linux používá podobné schéma číslování, například vydání z října 2010 má číslo Ubuntu 10.10. Podobné schéma v současné době používá Microsoft pro číslování aktualizací Windows 10, i když obvykle mají číslo verze 1 menší než číslo měsíce, například Fall Creators Update (1709) byla vydána 17. října 2017 a aktualizace z dubna 2018 ( 1803), přestože číslo „03“ v názvu vyšlo v dubnu 2018.
Při použití dat v číslování verzí by mělo být použito schéma ISO rok-měsíc-den (to usnadňuje porovnání verzí pro senioritu) a pomlčku lze vynechat.
Často má program jak obchodní název, tak interní verzi zkompilovanou podle všech pravidel. Například Java SE 5.0 má interní verzi 1.5.0, Windows 7 má verzi 6.1 [3] . Různé sestavení souborů Windows mohou být pojmenovány, například 6.1.7600.16385.
Podobné technické verze jsou srovnávány s psí známkou vojáka [2] . Stejně jako na bojišti jsou potřeba v nouzových případech – když program nefunguje, jak má a je potřeba kontaktovat vývojáře.
Donald Knuth čísluje verze počítačového sázecího systému Τ Ε Χ s postupnými aproximacemi čísla : 3,0 < 3,1 < 3,14 atd. Poslední stabilní číslo vydání je 3,141592653. Verze dalšího duchovního dítěte Donalda Knutha jazyka METAFONT jsou číslovány aproximací k číslu e . Verze z března 2008 měla číslo 2.718281.
SuSE Linux začal počítat verzi s 4.2 jako odkaz na slavnou knihu Douglase Adamse .
Komerční programy obvykle začínají číslovat své verze na 1.0. Dokonce se má za to, že verze 1.0 je výhradně hrubá a proto je potřeba co nejdříve dosáhnout na 1.2 nebo dokonce 2.0.
Ve svobodném softwaru a softwaru s otevřeným zdrojovým kódem je verze 1.0 považována za bod, kdy je program považován za připravený k širokému použití laiky. Počáteční verze programu jsou přitom číslovány jako 0.1, 0.2 atd. FreeDOS přišel na verzi 1.0 v roce 2006 – kdy se DOS prakticky nikde nepoužíval. Emulátor hracích automatů MAME nikdy nedosáhne verze 1.0, protože historie automatů pokračuje dodnes.
Aby název vypadal lépe, komerční software musí zapojit obchodníky. Například tetrafobie je běžná v asijských zemích , takže se v číslech verzí vyhýbáme číslu 4. V Evropě je číslo 13 považováno za nešťastné, buď je přeskočeno, nebo nahrazeno X3.
Pokud je historie programu velmi dlouhá, je někdy nutné ji resetovat: Adobe Photoshop 7.0 < 8.0 < CS < CS2.
Jedním z důvodů, proč neexistoval Winamp 4, byla slovní hříčka : skin a angličtina Winampu 4. předkožka – „předkožka“ [4] .
Někdy vývojář přeskočí číslo verze, aby udržel krok s konkurencí nebo jinými produkty stejné společnosti: například Microsoft Access skočil rovnou z 2.0 na 7.0. Netscape Communicator přeskočil verzi 5, protože Internet Explorer se dostal na 6.0; kromě verze 5.0 v testovacích verzích prohlížeče Mozilla Suite , která je součástí uživatelského agenta .
Sun Solaris upustil první číslici: 2,8 a 2,9 byly v marketingových materiálech označovány jako 8 a 9; Java SE 1.5.0 a 1.6.0 jsou jako Java 5 a 6. Slackware Linux přeskočil v roce 1999 z verze 4 rovnou na verzi 7.
Microsoft Windows 10 vyjde po 8.1.
PHP skáče z 5 na 7, důvodem je to, že verze 6 se ukázala jako medializovaná, ale nerealizovatelná a mnoho jejích inovací bylo připojeno k 5. větvi [5] .
Často je potřeba programově určit, která z obou verzí je starší – například „ bubliny “ jsou ve Windows podporovány od roku 2000 [6] a v dřívějších verzích je to potřeba dělat jinak. Taková kontrola se provádí podle poměrně komplikovaných pravidel: například pokud je verze desetinný zlomek, musíte nejprve porovnat celé části jako čísla; pokud jsou stejné, pak zlomkové jsou jako řetězce . Pokud je verze trojitá nebo čtyřnásobná, pak se čísla porovnávají jedno po druhém, dokud se nevyřeší nerovnost.
Protože příliš složité algoritmy jsou plné chyb [7] a na psaní jednotkových testů není vždy čas , často si vystačí se zjednodušenými možnostmi: například sestavují dlouhé číslo pomocí bitových polí (1.2.3.4 → 01020304 16 ) ; nebo porovnejte verze jako řetězce v lexikografickém pořadí . První nebude fungovat, pokud jedno z čísel přesahuje 256 (1.0.257 < 1.1.0, ale 010101 16 > 010100 16 ), druhé nebude fungovat, pokud je vydána verze 10 (9.5 < 10.0, ale "9.5" > "10.0").
Někdy taková zjednodušení hrají krutý vtip: v prvních letech popularity Windows se ukázalo, že mnoho programů nesprávně zkontrolovalo verzi operačního systému a odmítalo pracovat pod 4.0. Proto měly Windows 95 a Windows 98 interní verze 3.95 a 3.98 [8] .
Podobné triky byly použity v User-Agent prohlížeče Opera při přechodu z verze 9.64 na 10.00. Je to proto, že některé weby reagující na User-Agent buď porovnávaly čísla jako řetězce (10,0 < 9,5) nebo vzaly první číslici (10,0 = 1,0) [9] . Vývojáři museli použít zápis Opera/9.80 místo Opery/10.00 a přidat skutečné číslo verze na konec UserAgent [10] . Bylo plánováno, že od 11. verze UserAgent získá známý vzhled, ale tento trik se používal až do přechodu na Blink engine (začátek roku 2013 – navzdory skutečnosti, že přechod na 10. verzi proběhl již v roce 2009 ).
PHP má speciální funkci version_compare()pro určení priority verzí [11] .
Vývoj softwaru | |
---|---|
Proces | |
Koncepty na vysoké úrovni | |
Pokyny |
|
Vývojové metodiky | |
Modelky |
|
Pozoruhodné postavy |
|