Loading AI tools
Ausprägungsstufe einer Software im Prozess der Softwareentwicklung Aus Wikipedia, der freien Enzyklopädie
Ein Entwicklungsstadium ist in der Softwaretechnik der Fertigstellungszustand, den ein zu erstellendes Softwareprodukt zu einem bestimmten Zeitpunkt erreicht hat oder erreichen soll. Die relevanten Stadien werden im Rahmen des Projektmanagements zeitpunktbezogen und inhaltlich festgelegt. Sie basieren auf dem für das Projekt gewählten Vorgehensmodell, seinen Aktivitäten und Meilensteinen oder auf Festlegungen in herstellerspezifischen Methodenkonzepten und Entwicklungsumgebungen.
Im engeren Sinn bezieht sich der Begriff Entwicklungsstadium auf ausführbare Software, d. h. auf lauffähige Programme, die im Rahmen von Releasemanagement-Prozessen eines Projekts zum Testen oder an ihre Benutzer bereitgestellt werden. Je nach Projektsituation, oft in kleineren Wartungsprojekten, entfallen manche Stadien, sie werden zusammengelegt oder die Software wird nur als eine einzige finale Version bereitgestellt.
In erweitertem Sinn ergeben sich unterschiedliche Entwicklungsstadien für Software im gesamten Projektverlauf, in dem auch in konzeptionellen Projektphasen Ergebnisse entstehen, die bestimmten Meilensteinen (‚Entwicklungsstadien‘) zugeordnet sind. Beispiel siehe.[1] Am Ende jedes Stadiums werden die definierten Projektergebnisse in nachfolgende Bearbeitungsstufen übergeleitet.
Nach dem Erreichen des Software-Endzustands beginnt der Entwicklungszyklus i. d. R. mit Maßnahmen/Projekten zur Anwendungserweiterung wieder neu – mit dem Ziel einer neuen Software-Version.
Die Zielsetzung für die Festlegung mehrerer Entwicklungsstadien ist im Allgemeinen, im Projektverlauf Fixpunkte mit definierten Reifegraden zu erreichen, um die anschließenden Aktivitäten sicher(er) bearbeiten zu können. Häufig werden unterschiedliche Entwicklungsstadien z. B. beim Softwaretest praktiziert, um in nachgelagerten Teststufen/Testarten Funktionsdetails überprüfen zu können, die auf bereits im vorhergehenden Stadium getesteten Funktionalitäten aufsetzen.
Unterschiede zwischen den einzelnen Software-Entwicklungsstadien für Computerprogramme können zum Beispiel folgende sein – um für den jeweils als Beispiel angegebenen Freigabezweck verwendet zu werden:
Die Anzahl an Entwicklungsstadien mit ihren Soll-Reifegraden und auch ihre Bezeichnungen variieren erheblich. Insbesondere bei Standardsoftware (inkl. Systemsoftware) legen die Hersteller häufig fest, wie sie ihre Software stufenweise entwickeln, für wen und zu welchen Zwecken sie die jeweiligen Softwareversionen bereitstellen und wie sie diese Stufen benennen. Bei der Entwicklung von Individualsoftware werden Entwicklungsstadien/Softwarereleases meist unternehmensindividuell praktiziert, sie sind oft nicht allgemeingültig festgelegt, sondern folgen projektspezifischen Gegebenheiten.
Entwicklungsstadien und Bezeichnungen für Softwarereleases können zum Beispiel sein:
In anderen Fällen praktiziert ein Hersteller Releasebezeichnungen wie die folgenden:
Dabei ergeben sich zwischen solchen Haupt-Stadien in der Softwareentwicklung intern beliebig viele Software-Zwischenversionen, zum Beispiel aus mehreren Behebungsversuchen (und Teststufen) bei gemeldeten Programmfehlern.
Für die Softwareentwicklung allgemein, d. h. nicht nur für ausführbare Programme geltend, sind beispielsweise folgende Stadien i. S. von Meilensteinen bekannt:
Allgemein kann jeder beliebige Entwicklungszustand vor der ersten Alpha-Version als eine pre-Alpha-Version (von lateinisch prae- ‚vorzeitig‘ und vom ersten Buchstaben des griechischen Alphabets Alpha, auch als α' Schriftzeichen für 1) bezeichnet werden. Oft wird eine solche Version verwendet, wenn ein halbwegs fertiges Modul der Software vorgestellt werden soll. Eine weitere Bezeichnung ist die Entwicklervorschau (von englisch developer preview, abgekürzt auch oft DP).
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.
Auch Alpha-Versionen können als Entwicklervorschauen, englisch Developer Previews oder Developer Releases, verfügbar gemacht werden. Dies geschieht meist in einem exklusiven Kreis für Entwickler von Drittanbietern.
Eine Beta-Version ist die erste Version eines Computerprogramms, die vom Hersteller zu Testzwecken veröffentlicht wird. Der Begriff ist nicht exakt definiert, als Faustregel zur Abgrenzung einer Beta-Version von anderen Versionen gilt in der Regel, dass in ihr zwar alle wesentlichen Funktionen des Programms implementiert, aber noch nicht vollständig getestet sind. Das Programm kann oder wird daher unter Umständen noch viele, evtl. auch schwerwiegende Fehler enthalten, die einen produktiven Einsatz nicht empfehlenswert machen.
Der Nutzen eines Betatests besteht insbesondere darin, dass Fehler, die typischerweise erst in der Praxis auftreten (wie zum Beispiel Konflikte mit anderen Programmen, Probleme mit bestimmten Hardwarekomponenten, missverständlich umgesetzte Anforderungen oder Unklarheiten in der Benutzeroberfläche), schon vor der finalen Veröffentlichung (englisch Release) des Programms erkannt und behoben oder zumindest dokumentiert werden können.
Als Betatester bezeichnet man im Allgemeinen den oder die ersten unabhängigen beziehungsweise anonymen Fremdtester und Anwender.
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.
Beta-Versionen werden normalerweise nicht auf dem gleichen Weg wie Release Candidates oder fertige Versionen vertrieben. Folgende Möglichkeiten finden Verwendung:
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.
Wenn ein Produkt oder eine Komponente qualitätsgesichert freigegeben wird, die aber noch unvollständig ist, spricht man von einem Technical Preview.[3] Kunden können die Software testen, auch wenn sie noch dokumentierte Einschränkungen hat, z. B. noch nicht in allen finalen Sprachen lokalisiert ist.[3][4]
Ein Release Candidate (kurz RC, aus dem Englischen für Freigabekandidat,) gelegentlich auch als Prerelease (aus dem Englischen etwa für „Vorabveröffentlichung“ oder „Vorabversion“) 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 (auch englisch final release, finale Veröffentlichung oder final version, finale Version) 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 (übersetzt WHQL-Kandidat). 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.
Die fertige und veröffentlichte Version einer Software wird als Release bezeichnet, manchmal auch als Hauptversion. Damit geht traditionell eine Erhöhung 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:
Die Bezeichnungen von Software-Versionen, Releases, sind grundsätzlich nicht genormt und lauten meist von Projekt zu Projekt unterschiedlich. Manche Hersteller legen in einer Art Roadmap auch die beabsichtigten Bezeichnungen für (geplante) veröffentlichte Entwicklungsstände fest. Statt „Version“ oder „Release“ sind u. a. folgenden Benennungen für veröffentlichte Software gängig:
Problematisch ist auch der Begriff Beta-Version, da er nicht eindeutig definiert ist und damit grundsätzlich für jeden unfertigen Entwicklungsstand stehen kann. So gibt es dieselben Benennung nach den Stadien der Entwicklung oft einerseits bezogen auf das gesamte Projekt, andererseits kann die Benennung auch lediglich auf erst kürzlich hinzugefügte Teilkomponenten bezogen sein (und der Rest der Projektes ist eigentlich stabil und daher keine Beta-Version).
Auch die veröffentlichte Software selbst hat meist unterschiedliche Namen. Neben der sogenannten “Release” gibt es auch die “Final” oder final version (zu Deutsch: fertige Version oder auch finale Version). Es gibt jedoch auch den Begriff “Stable”, also stabil, oft als stable version, stabile Version. Auch hier zeigt sich deutlich, dass verschiedene Benennungen durchaus üblich sind: statt einer Version kann auch eine Veröffentlichung namensgebend sein: eine final release eines Entwicklungsprojektes ist lediglich die veröffentlichte final version.
Bei unfertigen Versionen verhält es sich nicht anders. Ob nun Pre-Alpha-, Alpha- oder Beta-Version: gebräuchlich ist “experimental” (experimentell), “unstable” (instabil), “testing” genauso wie “Preview”, jeweils optional wieder als “version” oder als “release”, aber auch als “build”. Ein Build ist dabei am unspezifischsten, wird aber auch oft bei Veröffentlichungen verwendet, um den Status einer unfertigen Software zu verdeutlichen. Dennoch haben auch stabile und fertige Versionen oft eine Build-Nummer.
Eine Besonderheit ist die Benennung als Nightly Build, übersetzt: nächtlicher Build. Ein Programm mit dieser Benennung kann zwischen vollkommen stabil bis gänzlich laufunfähig alles sein, weil der Prozess fast immer automatisiert in der Nacht abläuft (daher auch der Name) und dabei auf dem jeweiligen Stand des Quelltextes basiert, an dem die Entwickler tagsüber ihre Änderungen vornehmen. Der Quelltext könnte durch die letzten Änderungen defekt geworden sein (englisch broken), jedoch dennoch übersetzbar für den Compiler bleiben, sodass zwar der Build-Prozess erfolgreich verläuft, das Programm jedoch dennoch nicht lauffähig ist. Daher sagt die Benennung als Nightly Build nichts über das Entwicklungsstadium des Softwareprojektes aus.
Üblich sind aber auch Benennungen, die unabhängig vom Entwicklungsstand eines Softwareprojekts an ein bestimmtes Publikum gerichtet sind. Diese verfolgen meist das für den Entwickler vorteilhafte Ziel, einen externen Betatest unter bestimmten Bedingungen durchzuführen. Auch die Benennungen für weiterreichende „Beta-Programme“ sind nicht genormt und lauten von Projekt zu Projekt unterschiedlich, es gibt jedoch gemeinsame Schlagwörter:
Eine weitere Art der Benennung stellt die Bezeichnung des Zwecks oder Grundes dar, für den eine bestimmte Version herausgegeben wird. Gebräuchlich sind hier vor allem die “Maintenance Release” und “Service Release”, also eine Veröffentlichung zum Zweck der Wartung. Übersetzt wird dies oft auch als Wartungsversion.
Um Fehler in bereits veröffentlichter Software zu beheben, geben Softwarehersteller sogenannte Aktualisierungen, Hotfixes, Patches und Service Packs heraus. Bei vielen modernen Anwendungen und Betriebssystemen können diese dann manuell oder automatisch über das Internet bezogen werden.
Der Webbrowser Mozilla Firefox erscheint in sechswöchigen Abständen in vier verschiedenen Versionen: der experimentellen Version Firefox Nightly (pre-alpha), der experimentellen Version „Firefox Developer Edition“, der größtenteils stabilen Version Firefox Beta und der stabilen Version Firefox,[8][9] die sich jeweils in ihrer Versionsnummer unterscheiden, z. B. Firefox Aurora 11, Firefox Beta 10, Firefox 9. Außerdem kann man das „nächtliche“ Nightly Build (aktueller Entwicklungsstand, nur zum Testen geeignet) herunterladen. Auf diese Weise kann einerseits der Entwicklungsprozess beschleunigt werden, andererseits können Benutzer durch die Verwendung der Versionen Beta oder Aurora dazu beitragen, künftige Funktionen der stabilen Version zu testen, zu beurteilen und Programmfehler sowie Sicherheitslücken frühzeitig zu erkennen, da die Aurora-Version zwölf und die Beta-Version sechs Wochen vor dem endgültigen Erscheinen der stabilen Version der Öffentlichkeit zur Verfügung gestellt wird.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.