Entwicklungsstadium (Software)

Entwicklungsstadium (Software)
Software dev3 DE.png

Im Prozess der Softwareentwicklung durchläuft die zu erstellende Software verschiedene Entwicklungsstadien, die auch als Meilensteine betrachtet werden.

Die Stadien der Entwicklung sind: pre-AlphaAlphaBetaRelease CandidateRelease

Nach dem Erreichen des Endzustands wird der Zyklus, durch Wiederaufnahme der Arbeit an einer neuen Version der Software, wieder von vorne begonnen. Je nach Größe des Softwareprojektes und des Vorgehensmodells fallen einige Stadien weg oder werden zusammengelegt.

Inhaltsverzeichnis

pre-Alpha-Version

Im Allgemeinen kann jeder beliebige Stand vor der ersten Alpha-Version als eine pre-Alpha-Version bezeichnet werden. Oft wird eine solche Version verwendet, wenn ein halbwegs fertiges Modul der Software vorgestellt werden soll.

Alpha-Version

Die erste zum Test durch Fremde (also nicht die eigentlichen Entwickler) bestimmte Version eines Computerprogramms wird oft Alpha-Version genannt. Obwohl der Begriff nicht exakt definiert ist, enthält in der Regel eine Alpha-Version bereits die grundlegenden Bestandteile des Softwareprodukts – es ist aber fast unerlässlich, dass in späteren Versionen der Funktionsumfang noch erweitert wird.

Insbesondere enthalten Alpha-Versionen zumeist Programmfehler in Ausmaß oder Menge, die sie für den produktiven Einsatz ungeeignet machen.

Beta-Version

Beta-Versionen sind meist durch einfache Logos gekennzeichnet.

Eine Beta-Version ist eine unfertige Version eines Computerprogramms.

Häufig sind Beta-Versionen die ersten Versionen eines Programms, die vom Hersteller zu Testzwecken veröffentlicht werden. Als Betatester bezeichnet man im Allgemeinen den oder die ersten unabhängigen beziehungsweise anonymen Fremdtester und Anwender.

Der Begriff ist nicht exakt definiert, als Faustregel zur Abgrenzung einer Beta-Version von anderen Versionen gilt in der Regel, dass zwar alle wesentlichen Funktionen des Programms implementiert, aber noch nicht vollständig getestet sind und das Programm daher vermutlich noch viele, auch schwerwiegende Fehler enthält, die einen produktiven Einsatz nicht empfehlenswert machen.

Beta-Versionen von Programmen sind in der Regel an der 0 als Hauptversionsnummer – diese Variante gilt natürlich nur für die Beta-Versionen vor der ersten fertigen Version (1.0) – oder dem Namenszusatz Beta zu erkennen.

Der Nutzen eines Betatests besteht darin, dass Fehler, die typischerweise erst in der Praxis auftreten, wie zum Beispiel Konflikte mit anderen Programmen oder Probleme mit bestimmten Hardwarekomponenten, schon vor dem Release des Programms erkannt und behoben oder zumindest dokumentiert werden können.

Beta-Versionen werden normalerweise nicht auf dem gleichen Weg wie Release Candidates oder fertige Versionen vertrieben. Folgende Möglichkeiten finden Verwendung:

  • In (un)regelmäßigen Abständen werden definierte Snapshots (aktuelle Entwicklungszustände) aus dem Quellcodeverwaltungssystem generiert und en bloc entweder im Quellcode oder als vorkompiliertes Paket angeboten. Dies kann täglich (Nightly Build), wöchentlich oder zu beliebigen anderen Terminen, die die Entwickler für angemessen halten (z. B. nach Fertigstellung eines Subsystems), erfolgen. Eine solche Version kann auch ein automatisches Bugtracking-Modul enthalten (siehe Amarok), um den Betatestern die Fehlerberichte an die Entwickler zu erleichtern. Dies ist bei großen Projekten mit definierten Entwicklungszielen und einem festen Release-Zeitplan üblicherweise der Normalfall (GNOME).
  • Die Betaversion wird im Quellcodeverwaltungssystem zu einer definierten Revision mit einem Tag (einer Markierung) versehen, aber sonst nicht gesondert behandelt. Unabhängige Anbieter können dann diesen Entwicklungsstand als Basis für ihre vorkompilierten Pakete verwenden. Dies kommt bei sich sehr schnell ändernden Projekten, die unter Umständen ganz ohne oder nur mit seltenen festen Releases arbeiten, bei denen aber trotzdem allgemeines Interesse an aktuellen Versionen besteht, zum Einsatz (Dirac, Xine).
  • Es gibt keine feste Betaversion, Beta ist das aktuelle HEAD, also der sich ständig ändernde, tatsächliche Entwicklungsstand. Betatester müssen den derzeitigen Stand selbst aus dem Quellcodeverwaltungssystem herunterladen, konfigurieren und kompilieren, diese Tätigkeit wird normalerweise durch vom Projekt bereitgestellte Skripte automatisiert erledigt. Dies ist der häufigste Fall, kann aber auch mit einer der beiden vorherigen Methoden kombiniert werden (das ist die Regel).

Perpetual Beta

Ein Begriff, der beschreibt, dass sich in Bezug auf die ständige Entwicklung des Internets auch Websites und Software kontinuierlich weiterentwickeln und somit nie wirklich fertig sind. Somit ist ein immerwährender Entwicklungszustand eingetreten, die „Perpetual Beta“. Entstanden als Schlagwort innerhalb des Web-2.0-Konzeptes, das dem Extreme-Programming-Konzept der „Continuous Integration“ Rechnung trägt.

Release Candidate/Prerelease

Ein Release Candidate (kurz RC, vom Englischen für Freigabekandidat), gelegentlich auch als Prerelease (vom Englischen etwa für Vorabveröffentlichung) bezeichnet, ist eine abschließende Testversion einer Software. Darin sind alle Funktionen, die die endgültige Version der Software enthalten soll, schon verfügbar (sogenannter feature complete), alle bis dahin bekannten Fehler sind behoben. Aus dem Release Candidate wird vor der Veröffentlichung die endgültige Version erstellt, um einen abschließenden Produkttest oder Systemtest durchzuführen. Dabei wird die Qualität der Software überprüft und nach verbliebenen Programmfehlern gesucht.

Wird auch nur eine Kleinigkeit geändert, muss ein weiterer Release Candidate erstellt werden und die Tests werden wiederholt. Die Release Candidates werden daher auch oft nummeriert (RC1, RC2, usw.). Erfolgen keine weiteren Änderungen und hält ein Release Candidate schließlich die geforderten Qualitätsstandards ein, so wird das Suffix RCx entfernt und damit die Version als Release erklärt und veröffentlicht.

Versionen, die deutlich stabiler sind als Beta-Versionen, aber noch nicht den Teststand eines Release Candidate besitzen, werden in manchen Entwicklungsprojekten als Gamma-Version bezeichnet.

Bei Gerätetreibern für Windows gibt es manchmal den Status WHQL Candidate. Hierbei handelt es sich um eine dem RC entsprechende Treiberversion, die der Hersteller zur WHQL-Prüfung eingereicht hat, die entsprechende Zertifizierung ist allerdings noch nicht erfolgt.

Release

Die fertige und veröffentlichte Version einer Software wird als Release bezeichnet. Damit geht eine Veränderung der Versionsbezeichnung, meist ein Hochzählen der Versionsnummer einher. Bei einer mediengebundenen Verteilung wird diese Version zur Produktion an die Presswerke ausgeliefert, wo sie auf Datenträger wie CD-ROMs oder DVDs kopiert, also als tatsächlich greifbares Produkt hergestellt wird.

Für diesen Status haben sich außerdem verschiedene Bezeichnungen etabliert:

Release to Manufacturing/Web (RTM/RTW)
Bereit für die Vervielfältigung und Veröffentlichung im Netz (Web)
Stable
für eine stabile Version, die nicht mehr verändert wird
Final
für die endgültige Version
General Availability (GA)
verdeutlicht, dass die Version für den Praxiseinsatz freigegeben ist und über verschiedene Medien verteilt wurde bzw. erhältlich ist[1][2] GA steht für eine allgemeine Verfügbarkeit. Im Gegensatz dazu stehen kundenspezifische Versionen. Es kann sein, dass eine zunächst kundenspezifische Variante später in eine allgemeine Verfügbarkeit überführt wird.
Gold
Die Herkunft der Bezeichnung ist umstritten. Sie geht auf die Zeit vor den CDs zurück, hat also nichts mit der Farbe der CDs oder des Trägermaterials zu tun. Die wahrscheinlichste Erklärung ist die Aufnahmetechnik für Schallplatten, bei der manche Master-Formen mit Gold beschichtet wurden. Besonders im Bereich der Computerspiele wird dieser Begriff verwendet, wohl wegen der plakativen Wirkung des Edelmetalls. Der Begriff soll – ähnlich wie die Final und General Availability – symbolisieren, dass das Produkt ausgereift und (möglichst) frei von Fehlern ist.

Fehlerbehebung nach Veröffentlichung

Um Fehler in bereits veröffentlichter Software zu beheben, geben Softwarehersteller sogenannte Hotfixes, Patches und Service Packs heraus. Bei vielen modernen Anwendungen und Betriebssystemen können diese dann manuell oder automatisch direkt als Software über das Internet bezogen werden.

Literatur

  • Manfred Precht, Nikolaus Meier, Dieter Tremel: EDV-Grundwissen. Pearson Education, 2004, ISBN 3827321298.
  • Mike Gunderloy: Coder to Developer. Wiley_Default, 2004, ISBN 078214327X.

Siehe auch

Einzelnachweise

  1. http://www.microsoft.com/presspass/press/2008/nov08/11-12WESSPR.mspx
  2. http://www.vmware.com/company/news/releases/vmware_view_3.html

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Software-Zuverlässigkeit — ist definiert als „Wahrscheinlichkeit der fehlerfreien Funktion eines Computer Programms in einer spezifizierten Umgebung in einer spezifizierten Zeit“ [1]. Damit gehört Software Zuverlässigkeit zu den objektiven, messbaren oder schätzbaren… …   Deutsch Wikipedia

  • Software-Engineering — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software-Entwicklung — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software-Life-Cycle — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software-Technik — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software-life-cycle — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Software Engineering — Die Softwaretechnik (engl. software engineering) beschäftigt sich mit der Herstellung von Software, also der Entwicklung und dem Betrieb von Softwaresystemen und der Organisation und Modellierung der zugehörigen Datenstrukturen. Eine Definition… …   Deutsch Wikipedia

  • Safari (Software) — Die Neutralität dieses Artikels oder Abschnitts ist umstritten. Eine Begründung steht auf der Diskussionsseite. Safari …   Deutsch Wikipedia

  • Stable (Software) — Als stable bezeichnet man eine Version einer Software, wenn sie soweit getestet und verbessert wurde, dass im Betrieb keine auftretenden Fehler oder Ausfälle zu erwarten sind. Eine stable Version steht im Gegensatz zu Alpha und Beta Version, die… …   Deutsch Wikipedia

  • Psi (Software) — Psi Psi Roster (Version 0.11/ unixoides System) Basisdaten …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”