Software-Engineering: der Lebenszyklus eines Programms

Jedes Computerprogramm hat einen bestimmten Lebenszyklus. Grob zusammengefasst beinhaltet dieser Lebenszyklus die Problementstehung, den Entwicklungsprozess, die Implementierung und die Nutzung des Programms. Es sind also alle Bereiche der Entwicklung und Anwendung der Software in diesem Lebenskreislauf enthalten – von der ersten Idee bis zu dem Moment, bis das Programm von einer Nachfolgeversion abgelöst wird beziehungsweise bis es nicht mehr benötigt wird. Eine wichtige Aufgabe der Entwickler ist dabei das Product-Lifecycle-Management (PLM). Im Rahmen von PLM muss ein verantwortlicher Software-Ingenieur alle einzelnen Schritte überwachen. In diesem Artikel soll dieser Kreislauf anhand der Programmierung eines Browser-Games vorgestellt werden. 

Die erste Idee

Jedes Computerprogramm beruht darauf, dass eine Person die Idee zur Entwicklung desselben hatte. In vielen Fällen ist dies der Entwickler selbst, der das Programm anschließend auch selbst vermarkten will. Oftmals entsteht die Idee für eine neue Software-Anwendung jedoch auch in einem anderen Unternehmen, das ein spezielles Programm benötigt. In diesem Fall beauftragt es dann einen Programmierer mit der Umsetzung. Im ersten Schritt wird ausgearbeitet, wie das fertige Produkt beschaffen sein soll und welche Aufgaben es übernehmen muss. Im Beispielfall des Browser-Games ist dies die grundlegende Idee, welchen Inhalt das Spiel haben soll.

Umsetzbarkeits- und Bedarfsanalyse

Der nächste wichtige Schritt ist es, die Umsetzbarkeit des Programms zu überprüfen. Dabei muss ermittelt werden, ob es überhaupt möglich ist, die Idee umzusetzen und außerdem ist es auch sehr wichtig, abzuschätzen, welcher Aufwand dabei entstehen wird, um bereits eine Vorstellung von den ungefähren Kosten zu erhalten. Darüber hinaus ist es auch wichtig, den Bedarf zu überprüfen. Wenn der Softwareentwickler von einem Unternehmen mit der Programmierung beauftragt wurde, entfällt dieser Schritt, da in diesem Fall der Bedarf eindeutig feststeht. Wenn er das Produkt jedoch selbst vermarkten will, ist es wichtig, sich zu überlegen, welche Zielgruppe für die Vermarktung infrage kommt, wie groß und finanzstark diese ist und auf welche Art die Einnahmen generiert werden sollen. Im Beispielfall muss sich der Entwickler überlegen, ob die Spielidee auch programmiert werden kann und wie hoch der Aufwand dafür ist. Daraufhin muss entschieden werden, ob die Einnahmen durch Werbeeinnahmen gedeckt werden sollen oder ob die Nutzer eine Gebühr für das Spiel bezahlen müssen. Außerdem sollte sich der Entwickler überlegen, ob die Zielgruppe groß und finanzkräftig genug ist, um genügend Einnahmen zu generieren.

Die Konzeption

In diesem Schritt muss sich der Entwickler beispielsweise überlegen, in welcher Programmiersprache die Software entwickelt werden soll und er sollte bereits eine Struktur festlegen und falls notwendig das Programm in einzelne Module aufspalten. Im Falle des Browsergames muss sich der Entwickler beispielsweise überlegen, ob er das Spiel in Flash programmieren will, was insbesondere dann günstig ist, wenn er mit Animationen arbeiten will, oder ob er umfangreiche Datenbanken benötigt, was eine Programmierung in PHP als sinnvoller erscheinen lassen würde.

Die Codierung und die Integration der Programmteile

Nun müssen die einzelnen Module programmiert werden. Alle Funktionen, die in der Konzeption herausgearbeitet wurden, müssen nun in einer Programmiersprache implementiert werden. Alle einzelnen Teile sollten noch vor der Zusammensetzung getestet werden (Unit-Tests), um sicherzustellen, dass sie ihre Aufgabe erfüllen. Anschließend müssen die einzelnen Module zusammengeführt werden, damit das fertige Programm entsteht.

Beta-Phase

Wenn das Programm erstellt wurde, ist es wichtig, dieses genau zu testen. Dies ist notwendig, um eventuelle Fehler zu entdecken. Es ist möglich, Testprogramme zu schreiben, um den Software-Test automatisch durchführen zu lassen. Eine andere Alternative ist es, einen manuellen Test der Software durchzuführen. Im Testbeispiel wäre das Crowd-Testing als Methode für den Software-Test geeignet. Dabei testen viele unterschiedliche Personen das Spiel mit verschiedenen Endgeräten, Betriebssystemen und Browsern. So wird sichergestellt, dass dieses auch bei der großen Diversität, die im Internet vorherrscht, einsatzfähig ist.

Das Berufsbild des Software-Ingenieurs

Die meisten dieser Aufgabenbereiche fallen in das Aufgabengebiet des Software-Ingenieurs. Jedoch können auch einige Teilbereiche ausgelagert werden. Beispielsweise wird für die Bedarfsanalyse bei größeren Projekten häufig ein Wirtschaftsberatungs-Unternehmen hinzugezogen. Auch der Test der Produkte wird häufig ausgelagert, wie im Beispielsfall, indem Crowd-Testing genutzt wird. Die Kernaufgabe des Software-Ingenieurs besteht in der Konzeption, der Codierung der einzelnen Programmteile und den Unit-Tests. Auch die Zusammensetzung der einzelnen Module übernimmt der Software-Ingenieur. In der Regel ist ein Informatik-Studium Voraussetzung für diese Tätigkeit. Allerdings gibt es auch viele Software-Entwickler, die eigentlich ein Studium im Bereich der Naturwissenschaften absolvierten. Darüber hinaus gibt es auch Möglichkeiten, ohne Studium – beispielsweise durch eine Ausbildung zum Fachinformatiker – in diesem Berufsfeld zu arbeiten.