Ein Blog über Code, Hardware und Co

Programmieren und Entwickeln

Software Lifecycle und Versionsnummern erklärt

Zuletzt aktualisiert am 14. Januar 2023.

Oder: Wie sieht ein Software Lifecycle aus und was bedeuten Versionsnummern?

Eine Software (oder ein Programm und sogar ein Skript) ist ein komplexes Gebilde aus oftmals hunderten und tausenden von Codezeilen. Es ist nahezu unvermeidbar, dass sich hier kleinere Fehler einschleichen. Zudem muss eine Software verbessert und den Nutzerwünschen angepasst werden, Features werden erweitert und hinzugefügt. Kurzum: Eine Software ist kein statischer Haufen Code, sondern ein komplexes, sich weiter entwickelndes Gebilde.

Für Überblick und Support: Versionen und Versionsnamen

Über die Zeit werden so unglaublich viele Änderungen an einer Software vorgenommen. Um hier den Überblick zu behalten und als Entwickler dem Kunden einen ausreichenden Support bei der Nutzung der Software und etwaigen Problemen bieten zu können, ist es unabdingbar, eine Software zu versionieren.

Dabei werden Änderungen am Code der Software zu “Paketen”, sog. Releases gesammelt und dann regelmäßig veröffentlicht. Mit jedem Release wird die Versionsnummer der Software angepasst. Je nachdem, wie umfassend die Änderungen sind, werden verschiedene Teile der Versionsnummer hochgezählt:

Eine klassische Software-Version ist z.B. folgende:
1.2.4.10

Bei kleineren Releases wird nun die hinterste Nummer erhöht; man spricht von einem “Point-Release”. Je Umfassender das Release ist, desto weiter geht man bei der Erhöhung nach links.

1.2.4.10

Und so weiter.
Tipp: Anhand der geänderten Versionsnummer kann man z.B. als Nutzer ebenfalls abschätzen, wie gravierend die Änderungen im Vergleich zur aktuell eingesetzten Version sind.

Man unterscheidet bezeichnet die Änderung der Version umgangssprachlich als “Release”. Je nachdem, welche Versionsnummer sich änder, spricht man von einem anderen Releasetyp:

Geänderte VersionsnummerName der VersionsnummerErklärung/Verwendung
1.2.4.10MajorMajor-Releases beinhalten die größten Änderungen innerhalb einer Software. Es wird oftmals die ganze Struktur geändert oder tiefgreifende Features ergänzt.
Eine Kompatibilität mit der vorangegangenen Major-Version ist häufig nicht gegeben.
1.2.4.10MinorMinor-Releases enthalten bereits neue Features und/oder ändern Funktionalitäten.
Daher werden Minor-Releases auch häufig als “Feature Release bezeichnet.
1.2.4.10Maintenance / PatchReleases auf dem Maintenance/Patch-Level beinhalten in der Regel Bugfixes und/oder Security-Fixes.
Die Änderungen sind in der Regel überschaubar und bringen keine neuen Funktionen ein.
1.2.4.10PointErmöglicht eine noch zielgerichtetere bzw. granularere Versionierung.
Tabelle: Auflistung der Versionsnummern und deren Benennung.

Hinweis: In der Regel ist die Kompatibilität eines Upgrades innerhalb eines Major-Zweiges – mindestens jedoch eines Minor-Zweiges – gegeben. Das Bedeutet, dass man in der Regel problemlos Maintenance und Minor-Upgrades vornehmen kann, ohne Kompatibilitätsprobleme zu bekommen.

Die Erklärung von Versionsnummern im Video

Was ist der Software Lifecycle?

Bedienen wir uns einfach mal des Antromorphismus und stellen wir uns eine Software (die ein komplexes Gebilde aus) vermenschlicht vor.
Jeder Mensch verändert sich und hat einen Lifecycle.

Ebenso ist es bei Software. Jede Version einer Software wird geboren, lebt eine gewisse Zeit und stirbt dann.
In welchem Abschnitt des Lifecycles sich eine Software befindet, sollte man beim Verwenden immer wissen, denn “tote” Software, wird nicht mehr gepflegt und erhält keine Sicherheitsfixes mehr.

Diese Eigenschaften einer Softwareversion sind äußerst wichtig, so geben sie doch Auskunft darüber, ob – und wie lange – eine Software noch in dieser Version verwendet werden sollte.

Häufige Fragen zu Versionierung von Software und dem Software Lifecycle

Was bedeutet EOL?

EOL steht für “End of Life” und bezeichnet den Zeitpunkt, ab dem eine bestimmte Software(version) nicht mehr vom Entwickler supported wird und KEINE Sicherheitsupdates mehr erhält.
Software in diesem Status sollte NICHT mehr produktiv eingesetzt werden.

Was ist ein Major-Release?

Ein Major-Release stellt den größten Versionssprung dar. In der Regel werden hier neben Bugfixes neue Funktionen in eine Software integriert und häufig grundlegende Funktionsweisen verändert oder Kernfunktionen ergänzt.

Was ist ein Minor-Release?

Ein Minor-Release, auch Feature Release genannt, bezeichnet einen kleineren Versionssprung als ein Major-Release. Es werden neue Funktionen ergänzt, die Grundstruktur der Software bleibt jedoch erhalten.

Was ist ein Maintenance-Release?

Ein Maintenance-Release wird in der Regel für das Ausspielen von Bugfixes oder Security-Fixes verwendet. Es finden darüber hinaus keine Integrationen von neuen Funktionen oder dergleichen statt. Die Kompatibilität ist sehr hoch.

Was bedeutet es, wenn eine Software-Version deprecated ist?

Wenn eine Softwareversion als “deprecated” markiert ist, bedeutet das, dass dieser Versionsstrang veraltet ist und nicht mehr weiterentwickelt wird. Das heißt, es werden zwar noch Security-Fixes bereitgestellt, aber keine neuen Funktionen mehr integriert.

Was bedeutet es, wenn eine Software-Version “discontinued” ist?

Ist eine Software-Version als “discontinued” markiert, wird sie vom Entwickler nicht mehr supported.
Es werden weder neue Features bereitgestellt/implementiert, noch Sicherheitsfixes zur Verfügung gestellt.
Der Betrieb einer als “discontinued” markierten Software sollte niemals in einer Produktivumgebung erfolgen.

Schreibe eine Antwort