Wikipedia · einfach zusammengefasst · Stand
Software-Lebenszyklus
Ein Softwarelebenszyklus betrachtet Software ganzheitlich – von ihrer Entstehung über Entwicklung und Betrieb bis zu ihrer Abkündigung.
Inhalt5 Abschnitte
Grundidee des Softwarelebenszyklus
Ein Softwarelebenszyklus betrachtet Software als Ganzes: von ihrer Entstehung und Entwicklung über den Betrieb bis zur Abkündigung beziehungsweise Außerbetriebnahme. In der Softwaretechnik dient er dazu, Informationen über Softwaresysteme zu vermitteln. Gemeint sind Systeme, in denen Software eine vorrangige Bedeutung hat, etwa eine App für mobile Geräte wie Smartphones oder Firmware für eingebettete Systeme.
Der Lebenszyklus berücksichtigt dabei geschäftliche, organisatorische und technische Aspekte. Die Entwicklung der Software und das Management des Produkts Software können getrennt betrachtet werden, greifen aber teilweise ineinander.
Definition im technischen Kontext
Nach ISO/IEC 12207 sowie Kapitel 10 des Software Engineering Body of Knowledge (SWEBOK) ist ein Lebenszyklus die „Entwicklung eines Systems, Produkts, einer Dienstleistung, eines Projekts oder eines sonstigen von Menschen geschaffenen Gebildes von der Konzeption bis zur Außerbetriebnahme“.
Softwareentwicklungslebenszyklus
Der Softwareentwicklungslebenszyklus betrachtet das Ergebnis einer Softwareentwicklung entlang eines geeigneten Vorgehensmodells ganzheitlich. Er wird auch Software Development Lifecycle (SDLC) genannt.
Er umfasst sämtliche Prozesse, Aktivitäten und Aufgaben von der Idee bis zur Stilllegung. Dazu zählen die Softwarealterung eines Systems oder eines übergeordneten Systems sowie alle softwaretechnischen Tätigkeiten zur Herstellung, zum Betrieb und zur Weiterentwicklung. Wenn nötig, gehören auch Beschaffung und Bereitstellung dazu.
Mit SDLC ist ausdrücklich ein konkreter Softwareentwicklungsprozess gemeint. Er kann beispielsweise auf dem Wasserfallmodell, dem Spiralmodell, dem Rational Unified Process (RUP) oder agilen Softwareentwicklungsmethoden beruhen.
Produktlebenszyklus und seine Phasen
Ein Produktlebenszyklus beschreibt grundsätzlich den Zeitraum von der Markteinführung bis zur Herausnahme eines Produkts aus dem Markt. Wird Software selbst zum Produkt, etwa als Computerspiel, oder ist sie Teil eines Systems wie eines Geräts, einer Maschine oder einer Anlage, wird sie innerhalb einer Organisation oder eines Unternehmens entlang eines Softwareproduktlebenszyklus gemanagt.
Dabei kommen zusätzliche Gesichtspunkte hinzu: Anforderungen der Stakeholder, also Auftraggeber, Auftragnehmer und Benutzer, das erforderliche Qualitätsniveau sowie kommerzielle Themen. Die typischen Phasen sind:
- Konzept: Projektauftrag, Machbarkeitsprüfung und Anforderungsermittlung.
- Entwicklung: Spezifikation, Design und Softwarearchitektur.
- Herstellung: Programmierung, Softwaretest und Softwarequalität.
- Einsatz: Installation und Konfiguration für die Laufzeitumgebung, zum Beispiel Computer, Server, Steuergeräte oder Cloud.
- Support: Hilfe bei Fehlern und Kundenanfragen, Versionsverwaltung, Updates und Weiterentwicklung.
- Außerbetriebnahme: Kundenkommunikation, Datenmigration, Übergangslösung und Abschaltung.
Zusammenspiel und Anwendungsbereich
Phasen des Produktlebenszyklus können teilweise in einem Vorgehensmodell oder Softwareentwicklungslebenszyklus enthalten sein; umgekehrt kann ein übergeordneter Produktlebenszyklus sie abdecken. Der Schwerpunkt des Softwareentwicklungsprozesses liegt vor allem auf Konzept, Entwicklung und Herstellung. In diesem Bereich arbeiten Projektmanagement, der Produktentstehungsprozess als Teil des Produktmanagements und ein vorhandenes Innovationsmanagement mit den Softwareprozessen zusammen.
Zum Produkt Software gehören außerdem Patentfragen – bei Software nur im Zusammenhang mit einer technischen Erfindung oder einem System –, Zugriffskontrolle, Datenarchivierung, Lizenzmanagement, Administration und Informationssicherheit. Diese Themen fallen in den Lebenszyklus des Gesamtsystems oder Produkts.
Die Abläufe gelten auch für IT-Systeme und ITK-Technologien sowie für andere Produkte, bei denen Software vorrangig ist. Firmware in einer Waschmaschinensteuerung dient tendenziell nur als Mittel zum Zweck und ist nicht Anwendersoftware. Bei komplexen technischen Geräten wie Automobilen kann Firmware dagegen als Teil der Motorsteuerung eine vorrangige Rolle für das System Motor haben.