• Home
  • |
  • Blog
  • |
  • Software Engineering Tutorial #2 – Der Software Lebenszyklus

Software Engineering Tutorial #2 – Der Software Lebenszyklus

Zuletzt aktualisiert: März 30, 2025

Der Software Lebenszyklus

In diesem Beitrag werden wir den Software Lebenszyklus unter die Lupe nehmen, welcher den Prozess der gesamten Softwareentwicklung beschreibt.

Inhaltsverzeichnis

1. Was ist der Software Lebenszyklus?

Wenn man ein Softwaresystem entwickelt, durchläuft es – ähnlich wie wir Menschen – einen Lebenszyklus. Wir werden geboren, wachsen auf, werden irgendwann erwachsen und leben unser Leben. 

Bei der Entwicklung einer Software beginnt alles mit der Konzeption: Die Idee wird geboren. Danach folgt die Entwicklungsphase, in der das System sozusagen aufwächst. Und wie wir alle braucht auch eine Software am Ende des Tages Pflege – sie muss gewartet und verbessert werden, damit sie gut funktioniert. 

Da es einen solchen Lebenszyklus gibt, sollte man diesen in der Softwareentwicklung unbedingt berücksichtigen. Aus diesem Grund werden wir uns in diesem Beitrag genauer damit beschäftigen.

Merke dir also: 

Der Software-Lebenszyklus beschreibt den gesamten Prozess der Softwareentwicklung.

2. Die 6 Phasen des Software Lebenszyklus

In der folgenden Grafik sind die sechs Phasen des Software-Lebenszyklus übersichtlich dargestellt:

Die Phasen des Software Lebenszyklus

Im Internet findet man natürlich zahlreiche Videos, Blogartikel und Bücher zu diesem Thema, worin der Software-Lebenszyklus jeweils etwas anders dargestellt wird.

Im Grunde geht es aber immer um das Gleiche. Ob eine Quelle von sieben Phasen spricht, eine andere von acht oder wieder eine andere nur von fünf – oft sind diese Phasen einfach anders zusammengefasst.

Ich habe mich hier entschieden, den Lebenszyklus in sechs Phasen zu unterteilen.

3. Die Anforderungsanalyse

Die erste Phase im Software-Lebenszyklus ist die sogenannte Anforderungsanalyse. Um das Ganze zu veranschaulichen, versetzen wir uns nun einmal in die Lage einer Softwareentwicklungsfirma, die von einem Kunden oder einer Kundin kontaktiert wird.

Dieser Kunde kann entweder eine Einzelperson oder eine Firma sein, die möchte, dass wir für sie eine Software entwickeln. In unserem Beispiel nehmen wir an, dass es sich um eine Firma handelt, die Workshops zur Softwareentwicklung anbietet. 

Unsere Aufgabe ist es, eine Software zu erstellen, die die Anmeldung und Planung dieser Workshops verwaltet - eine Workshop-Management-Software also.

Bevor wir direkt mit der Entwicklung loslegen, müssen wir zunächst genau festlegen, was überhaupt gebaut werden soll. Diese Aufgabe steht in der Phase der Anforderungsanalyse im Fokus. Hier arbeiten wir gemeinsam mit dem Auftraggeber heraus, welche genauen Anforderungen die Software erfüllen muss.

Konkret bedeutet das in unserem Beispiel der Workshop-Management-Software, dass Funktionen wie eine Anmeldung zu den Workshops notwendig sind. Die Nutzer der Software sollen also in der Lage sein, sich über das System für einen der angebotenen Workshops anzumelden. Damit hätten wir schon mal eine erste Anforderung definiert.

Wie du siehst, ist diese erste Anforderung allerdings noch ziemlich grob formuliert. Aus diesem Grund sollte man in dieser Phase noch weitere Fragen stellen und die Anforderungen so detailliert aufschlüsseln, dass am Ende klare Spezifikationen vorliegen. 

Zum Beispiel könnte die Anforderung am Ende lauten, dass ein Nutzer sich zu einem Workshop anmelden kann, indem er zwei Textfelder ausfüllt: eines für den Namen und eines für die E-Mail-Adresse. Darunter könnte es eine Auswahlliste geben, in der man den gewünschten Workshop auswählen kann und einen Button, um die Anmeldung zu bestätigen und abzuschicken.

In der Phase der Anforderungsanalyse besprechen wir also Schritt für Schritt mit dem Auftraggeber alle Anforderungen, die die Software erfüllen muss.

4. Die Design- oder Entwurfsphase

Als Nächstes geht es in die Design- oder Entwurfsphase. In dieser Phase plant man die gesamte Software im Detail. Hier legen wir fest, wie das Layout der Software aussehen soll und welche Programmiersprachen zum Einsatz kommen. Wird die Software beispielsweise in C# oder Java entwickelt? Sollen wir ein bestimmtes Framework verwenden, wie zum Beispiel Spring für Java?

Außerdem definieren wir den Aufbau der Businesslogik, ob und mit welchen Datenbanken wir arbeiten und wie die Softwarearchitektur insgesamt gestaltet sein soll.

Am Ende entsteht ein umfassender Entwurf, der alle wichtigen Entscheidungen enthält. Dieser Entwurf dient dann als Grundlage für die nächste Phase, in der die eigentliche Implementierung stattfindet.

In der Design- und Entwurfsphase kommen viele verschiedene Diagrammtypen zum Einsatz, die wir noch kennenlernen werden. Diese helfen uns dabei, das gesamte Softwarekonzept sauber zu planen. Sobald der Entwurf fertig ist, geben wir ihn an die nächste Phase weiter – die Implementierungsphase.

5. Die Implementierungsphase

In der Implementierungsphase beginnt dann die eigentliche Programmierarbeit. Hier wird erstmals produktiv Code geschrieben. Alles, was davor passiert ist, diente im Grunde der Planung und Vorbereitung.

Du siehst also, dass bei einem typischen Softwareprojekt ein großer Teil der Zeit in die richtige Planung investiert wird.

Es ist enorm wichtig, sich in der Planungsphase ausreichend Zeit zu nehmen. Man kann gut und gerne ein Drittel der Gesamtzeit für die Planung einrechnen, um eine solide Grundlage zu schaffen, die alle Aspekte berücksichtigt. 

Einfach drauflos zu programmieren, bringt in den meisten Fällen wenig. Wenn man nur fünf Prozent der Zeit in die Planung steckt und dann denkt: „Super, jetzt kann ich 90 Prozent der Zeit programmieren“, wird man oft am Ende feststellen, dass die Systeme nicht sinnvoll zusammenspielen oder die Software unnötig komplex geworden ist – wie in unserem Beispiel aus dem Einleitungsbeitrag.

Deshalb ist es so wichtig, die Planung gründlich und gewissenhaft durchzuführen, bevor man mit der Implementierung beginnt.

6. Die Testphase

Sobald die Implementierung abgeschlossen ist, kommt die vierte Phase: die Testphase. Diese ist von großer Bedeutung, denn man sollte nie davon ausgehen, dass alles, was programmiert wurde, fehlerfrei funktioniert.

Selbst wenn man die einzelnen Programmteile getestet hat, kann es zu Problemen kommen, sobald die verschiedenen Teile zusammengeführt werden. In einem Team arbeiten oft mehrere Entwickler, und wenn deren Arbeit vereint wird, können unerwartete Fehler auftreten, die vorher nicht sichtbar waren.

Deshalb ist es absolut notwendig, die Software vor der Übergabe an den Kunden gründlich zu testen – und zwar immer wieder.

Stell dir nun mal vor, wir würden die Workshop-Management-Software ohne gründliche Tests an den Kunden ausliefern. Tausende von Menschen melden sich zu den Workshops an, aber im Hintergrund gibt es einen unentdeckten Fehler, der beispielsweise die Anzahl der Anmeldungen nicht korrekt mitzählt.

Das Ergebnis? Am Tag des Workshops stehen plötzlich 200 Teilnehmer vor dem Seminarraum, allerdings gibt es nur Platz für 20.

Das wäre natürlich eine Katastrophe, die sich jedoch leicht verhindern lässt, indem man die Software gründlich testet und sicherstellt, dass sie wie geplant funktioniert.

So vermeidet man im Nachhinein zusätzliche Kosten, etwa durch Entschädigungen für Teilnehmer, die umsonst angereist sind. Darüber hinaus könnte das Unternehmen durch solche Fehler an Ansehen verlieren und für große Unzufriedenheit bei den Kunden sorgen. All das lässt sich durch eine sorgfältige Testphase vermeiden.

7. Die Abnahme und Einführung

Nach Abschluss der Testphase folgt die nächste wichtige Phase: die Abnahme und Einführung. Bei der Abnahme geht es darum, dass der Kunde das entwickelte Softwaresystem überprüft und offiziell freigibt

In dieser Phase wird die Software auf das Zielsystem übertragen, installiert und in den Betrieb eingeführt. Dieser Prozess der Verteilung und Installation wird oft als „Rollout“ oder „Deployment“ bezeichnet.

Der Kunde prüft anschließend, ob alles wie erwartet funktioniert und wenn er zufrieden ist, wird die Software offiziell in Betrieb genommen und im Alltag genutzt.

8. Die Wartungsphase

Zum Schluss gelangt die Software in die letzte Phase des Lebenszyklus: die Wartungsphase. In dieser Phase wird die Software kontinuierlich gepflegt und weiterentwickelt, wobei verschiedene Gründe dafür eine Rolle spielen können.

Es kann zum Beispiel sein, dass Bugs erst im laufenden Betrieb entdeckt werden, die der Kunde meldet. Diese müssen wir natürlich beheben. Ein anderer Grund könnte sein, dass das Unternehmen, das die Workshops anbietet, stark wächst und der Traffic auf die Anwendung deutlich zunimmt.

Falls die Software ursprünglich nur für eine bestimmte Anzahl an Nutzern ausgelegt war, könnten Performance-Probleme auftreten, weil die Server überlastet sind. In diesem Fall müssten wir die Software nachträglich optimieren und anpassen, damit sie auch mit dem höheren Traffic reibungslos funktionieren kann.

All diese Dinge erledigt man in der Wartung.

9. Fazit

Das war nun ein grober Überblick über den Software Lebenszyklus. In den kommenden Beiträgen werden wir darauf aufbauen und uns verschiedene Vorgehensmodelle ansehen. Du kannst dir sicher vorstellen, dass es verschiedene Ansätze gibt, um diese Phasen in der Entwicklung zu durchlaufen.

Was meine ich damit? Ein klassischer Ansatz der Softwareentwicklung wäre, alle Phasen von 1 bis 6 der Reihe nach abzuarbeiten. Allerdings gibt es auch andere Ansätze.

Ein Beispiel für einen alternativen Ansatz besteht darin, im ersten Schritt nur das Nötigste zu entwickeln, also ein MVP (Minimal Viable Product). Dieses MVP enthält nur die grundlegendsten Funktionen, um zu testen, ob die Software so funktioniert, wie wir es uns vorstellen, und um dem Kunden eine erste Version zu präsentieren. So kann der Kunde entscheiden, ob er die Software in dieser Form überhaupt benötigt.

Anschließend kann man aus dem Feedback des Kunden lernen und nach und nach weitere Funktionen ergänzen. Dieser iterative Prozess wiederholt sich immer wieder, um die Software stetig zu verbessern.

Es gibt verschiedene Vorgehensmodelle, die diesen Ansatz unterstützen und genau darauf werden wir in den folgenden Beiträgen noch einen genaueren Blick werfen.