Wenn du schon einmal ein neues Programm auf deinem Computer installiert hast, sind dir bestimmt schon einmal die kryptischen Nummern hinter dem Programmnamen aufgefallen, z. B. 3.0.5.
Aber was bedeuten diese Nummern, die in der Fachwelt als Versionsnummern von Software bezeichnet werden? Was versteht man unter Versionen von Software und welche Informationen gibt die Versionsnummer über sie? Und welche Rolle spielen die Zusätze alpha und beta, die gelegentlich hinter den Nummern auftauchen?
simpleclub erklärt dir den Begriff Version, den Aufbau von Versionsnummern und wie du Änderungen zwischen zwei Versionen nachvollziehen kannst.
Softwareversionierung einfach erklärt
Während deiner Schulzeit oder in der Ausbildung hast du dir bestimmt schon öfter Bücher gekauft. In diesem Zusammenhang war es auch wichtig, welche Auflage des jeweiligen Buches die aktuellste ist. In einer neuen Auflage eines Buches werden Fehler in der vorherigen Auflage ausgebessert oder das ein oder andere Kapitel hinzugenommen. Manchmal werden Bücher sogar komplett neu überarbeitet, indem z. B. der Aufbau umgestellt und Kapitel neu angeordnet werden.
Genauso läuft es bei der Veröffentlichung von Software: Werden z. B. Fehler behoben, neue Funktionalitäten hinzugenommen oder sogar komplett neu geschrieben (z. B. in einer anderen Programmiersprache), veröffentlichen die Entwickler eine neue Version der Software. Um unterschiedliche Softwareversionen unterscheiden zu können, werden diese mit Versionsnummern versehen. Sie geben auf den ersten Blick an, wie signifikant die Änderungen in der neuen Version sind.
Definition Softwareversionierung
Als Softwareversion wird eine Ausführung einer Software genannt, bei der alle Komponenten vollständig entwickelt sind. Üblicherweise führen Fehlerkorrekturen oder die Hinzunahme neuer Funktionalitäten zur Veröffentlichung neuer Softwareversionen. Sie werden durch Versionsnummern voneinander unterschieden.
Die Vergabe von Versionsnummern wird als Versionierung bezeichnet.
Erklärung Softwareversionung
Aufbau von Versionsummern
Versionsnummern werden dazu verwendet, Softwareversionen zu benennen. Je neuer die Version, desto höher ist die Versionsnummer. Dadurch ist es möglich, den Verlauf der Veränderung von Software nachzuvollziehen.
Sie bestehen aus unterschiedlichen Stellen, welche durch einen Punkt oder Strich voneinander getrennt sind. Die Vergabe von Versionsnummern folgt einem eindeutigen Regelwerk, welches „semantische Versionierung“ (englisch Semantic Versioning) bezeichnet wird. Um eine Versionsnummer als solche zu kennzeichnen, wird sie oftmals durch „v." eingeleitet.
Eine Versionsnummer ist folgendermaßen aufgebaut:
Die Haupt-, Unter- und Patchversionsstellen der Nummer bestehen aus ein oder mehreren Ziffern. Werden sie bei der Veröffentlichung einer neuen Version erhöht bedeutet dies jeweils unterschiedlich starke Veränderungen:
Stelle | Beschreibung |
---|---|
| Sehr starke Veränderungen in der Software, z. B. da der Code neu geschrieben wurde oder Schnittstellen zu anderen Programmen nicht mehr funktionieren. |
| Kleinere Änderungen durch Hinzunahme neuer Funktionalitäten. |
| Sehr kleine Änderungen, meist Fehlerbehebungen oder kleine Funktionalitätserweiterungen. |
| Optionale Ergänzungen zur genaueren Beschreibung der Version. |
Typische Ergänzungen sind beispielsweise:
- Alpha: Die Software befindet sich noch in einem sehr frühen Stadium der Entwicklung
- Beta: Die Version ist nur zum Testen vorgesehen und kann nur von einem begrenzten Anwenderkreis genutzt werden.
- Release: Die letzte Version innerhalb einer Haupt- oder Unterversion. Bei der nächsten Version wird die Haupt- oder Unterversion erhöht
- Release Kandidat (RC): Die letzte Version innerhalb einer Beta-Version. Die nächste Version wird für alle Anwender zur Verfügung gestellt.
- Patchlevel: Ist in der Regel eine vom Nutzer dringend benötigte Fehlerbehebung, die viel kleiner als die Korrekturen in der Patchversion sind.
Bei der Veröffentlichung einer neuen Version wird die entsprechende Stelle der Versionsnummer um eins erhöht. Die obige Versionsnummer 2.05.08 sagt also aus, dass innerhalb der zweiten Hauptversion fünf Unterversionen veröffentlicht wurden. In der fünften Unterversion wurden acht Patches eingeführt.
Beim Hochzählen der Stellen gibt es zwei Besonderheiten zu beachten:
- Wird eine Stelle erhöht, werden alle Stellen rechts davon wieder auf 0 gesetzt. Wird beispielsweise nach der Version 2.3.4 eine neue Hauptversion veröffentlicht, ist die Nummer der neuen Version 3.0.0.
- Erwarten die Entwickler die Veröffentlichung vieler Unter- und Patchversionen, ist es üblich, diese Stellen zweistellig zu besetzen. Beispielsweise folgen nach der (einstelligen) 0 in der Patchversion 01, 02 und so weiter. Nach 09 folgen 10, 11 und so fort. Ansonsten sind einstellige Stellen die Regel.
Grundsätzlich können die Stellen einer Versionsnummer beliebig oft hochgezählt werden. Eine Beschränkung wie im obigen Beispiel existiert also nicht.
Changelog
Änderungen zwischen zwei Versionen werden im Changelog (deutsch Änderungsprotokoll) festgehalten. Du kannst dir das vorstellen wie bei einer neuen Auflage eines Buches, bei dem im „Vorwort zur neuen Auflage“ Änderungen aufgezählt werden. Im üblicherweise englischsprachigen Changelog werden mittels Signalwörtern die Änderungen erfasst:
Signalwort | Beschreibung |
---|---|
Added (deutsch hinzugefügt) | Neue Funktionen wurden hinzugenommen. |
Changed (deutsch geändert) | Funktionen wurden geändert. |
Fixed (deutsch behoben) | Fehler wurden korrigiert. |
Deprecated (deutsch veraltet) | Warnung, dass bestimmte Funktionen in zukünftigen Versionen entfernt werden. |
Removed (deutsch entfernt) | Veraltete Funktionen wurden aus dieser Version entfernt. |
Security (deutsch Sicherheit) | Sicherheitskritische Probleme sind aufgedeckt oder behoben worden. |
Softwareversion vs. Prototyp
Vielleicht sind dir zwischen der Version und dem Prototypen einer Software ein paar Parallelen aufgefallen: Bei beiden werden nach und nach Fehler behoben, Funktionen hinzugefügt oder Teile der Software neu geschrieben. Das kann auf den ersten Blick eine Verwechslungsgefahr bergen.
Allerdings unterscheiden sich die beiden Begriffe in paar Punkten fundamental:
Softwareversion | Prototyp |
---|---|
Für den Einsatz und Installation bei Kunden gedacht. | Nur für interne Zwecke im Entwicklerteam, z. B. um Kunden gewisse Funktionalitäten vorzuführen. |
Alle vorgesehenen Funktionalitäten sind in der Regel vollständig implementiert. Ergänzungen sind aber möglich. | Es werden bewusst nur bestimmte Funktionalitäten implementiert, um die grobe Funktionsweise der Software zu zeigen. |
Beispiele von Versionsnummern
Versionsnummern sind für die Vermarktung von Software nicht besonders attraktiv, da nicht jeder die Bedeutung der Stellen kennt oder meist auch nur die Hauptversion von Interesse ist. Daher haben sich Firmen verschiedene Wege einfallen lassen, wie sie stattdessen unterschiedliche Versionen öffentlich kennzeichnen.
Statt technisch motivierten Versionsnummern werden beispielsweise folgende Versionsbezeichnungen verwendet:
- Zeitpunkte der Veröffentlichung, wie Jahreszahlen oder Kombinationen aus Jahr und Monat, z. B. Microsoft Office 2000 oder Ubuntu-Linux 6.04 (für April 2006)
- Kombinationen aus Zahlen und Buchstaben, z. B. Adobe Photoshop CS2
- Codenamen, z. B. Mac OS X Panther oder Windows Vista
- Systematisches Überspringen von Versionsnummern, z. B. Sprung von Windows 8 auf Windows 10, um eine deutliche Weiterentwicklung zu unterstreichen.
Zusammenfassung Softwareversionierung
Eine Ausführung einer Software wird in der Fachsprache als Softwareversion bezeichnet. Um unterschiedliche Versionen unterscheiden zu können, werden sie mit Versionsnummern versehen. Diese bestehen aus verschiedenen Stellen, welche folgendermaßen lauten:
- Hauptversion
- Unterversion
- Patchversion
- Ergänzung (optional)
Wird eine neue Version veröffentlicht, wird eine der Stellen hochgezählt. Welche Stelle hochgezählt wird, hängt von der Stärke der Veränderung ab.
Änderungen zwischen zwei Versionen werden im Changelog festgehalten.
Aus Marketinggründen werden Versionen offiziell nicht immer mit der technisch motivierten Versionsnummer versehen. Stattdessen werden beispielsweise Datumsangaben oder Codenamen verwendet.