Der Softwareentwicklungszyklus

Wenn du an diesem Thema angekommen bist, hast du bereit 95% Prozent davon gelernt, wie man wirklich professionelle Software erstellt. Mit dem Programmieren solltest du an dieser Stelle kein Problem mehr haben.

Hier geht es nur noch darum die Erstellung der Software strukturiert zu durchlaufen. Das heißt, Software wird immer nach dem gleichen Prozess erstellt. Je nach dem wie oft man diesen Prozess durchläuft, wird die Software besser oder schlechter, aber eigentlich sollte diese besser werden.

Ausserdem ist es wichtig, dass am Ende des Prozesses, auch die Software herauskommt, die du dir ausgedacht hast.

Oder für die dich dein Kunde bezahlt. Kommt am Ende des Prozesses nicht das heraus was dein Kunde will, bleibt dein Bankkonto leer.

Bestandteile des Softwareentwicklungszyklus

Damit du den ganzen Prozess kennenlernen kannst, bekommst du nun eine kleine Vorstellung der wichtigen Bereiche. Wichtig ist zu erwähnen, dass dieser Zyklus immer wieder durchläuft. Also einmal am Ende angekommen,  geht es immer wieder von vorne los!

Software Entwicklungsprozess

Anforderungsanalyse und Planung

Was ist denn eine Anforderungsanalyse?

Klären wir erstmal den Begriff Anforderung an sich. Im übertragenen Sinne ist eine Anforderung ein Wunsch oder eine Idee für eine Funktion bzw. ein Feature in einem Computerprogramm. Dabei haben Anforderungen selbst bestimmte Kategorien.

Eine Anforderung kann funktional und nicht funktional sein. Funktional ist zum Beispiel: "Der Roboter soll Bälle aufsammeln.", hier ist also die Funktion gemeint.

Nichtfunktionale Anforderungen können sein: "Der Roboter soll die Bälle INNERHALB VON 2 MINUTEN aufsammeln.", hier kommt also eine Eigenschaft dazu.

Die Aufgabe muss innerhalb bestimmter Rahmenbedingungen erfüllt werden, in diesem Fall geht es um Performance. Diese Anforderungen haben natürlich Auswirkungen auf die gesamte Entwicklung deines Programmes, denn du als Programmierer musst dir auch noch überlegen, wie dein Roboter die Aufgabe schnell erledigen soll.

Bei der Anforderungsanalyse geht es darum herauszufinden, welche funktionalen und nichtfunktionalen Anforderungen für dein Programm gefordert werden. Wenn du selbst diese Anforderungen vorgibst ist es vielleicht noch einfach. Aber sobald du einen Auftrag von einem Kunden bekommst, solltest du schon genauestens herausfinden was er eigentlich will.

Diese Anforderungen werden dann in einen Plan gesteckt:

  1. Welche Anforderung ist am wichtigsten?
  2. Was muss eigentlich zuerst programmiert werden?
  3. Sobald du weißt, was alles gefordert wird, kannst du auch einschätzen wie lange du programmieren wirst.
  4. Ein Roboter der Bälle aufsammelt? Ein Aufgabe für 2 Stunden Arbeit.
  5. Der soll das innerhalb von 2 Minuten machen?
  6. Dann setz lieber nochmal eine Stunde drauf.

Mit der Planung wirst du also auch Aussagen über deine Terminplanung machen können. Aber das Thema geht dann schon fast ins Projektmanagement hinein.

Konzept und Design

Deine Anforderungen sind klar und der Plan steht auch. Du weißt nun, dass du die 20 Funktionen innerhalb von 3 Monaten programmieren willst. Das wird deine Version 1.0. Dies ist schon eine Art Konzept. Also gehst du los und fängst an dieses noch weiter auszuarbeiten, in dem du beschreibst, wie du all diese Anforderungen ausprogrammieren willst.

Je nach Größe deines Programmes bietet es sich hier an, vermehrt UML-Diagramme zu verwenden. Wichtig ist, dass du dich an der Stelle auf die Anforderungen konzentrierst. Steht dein Grundkonzept, ist es für dich ein leichtes das Design aufzustellen. Zumindest, wenn du objektorientiert arbeitest.

Hier verwendest du die Objektorientierte Analyse und das Objektorientierte Design, um dein Design festzulegen.

Implementierung und Test

Ist dein Design soweit fertig, kannst du mit der Programmierung anfangen.

Ganz klar, programmierst du hier wieder objektorientiert und dazu gehören natürlich auch die Tests. So stellst du sicher, dass dein Programm von Anfang an stabil bleibt.

Ideal ist es ebenfalls, pro Anforderung einen eigenen Test zu schreiben. So kannst du im besten Fall direkt prüfen ob die Anforderungen bereits erfüllt werden. Allerdings ist das Testen von Anforderungen nicht immer ganz einfach.

Release und Wartung

Hast du alle relevanten Funktionen fertig programmiert, bist du bereit dein Programm freizugeben. Das bedeutet du musst dein Programm irgendwie veröffentlichen oder sonst wie herausgeben. Dafür gibt es die unterschiedlichsten Systeme. Im einfachsten Fall bietest du die ausführbare Datei (also deine Exe, oder App, usw.) einfach zum Download an. Bei Android kannst du deine App direkt im Store veröffentlichen, das ist sogar noch einfacher.

Egal wie, sobald Leute deine Programme benutzen, wirst du eine Rückmeldung sehr oft bekommen.

Du kannst testen was das Zeug hält, aber eins ist sicher. Deine Software wird Fehler enthalten. Irgendein Benutzer wird es schaffen, den Knopf so zu drücken, dass dein Programm abstürzt.

Kein Grund aufzugeben!

An der Stelle ist es wichtig, dass du deine Software warten kannst und alle Fehlerbehebungen gleich wieder in deine veröffentlichte Version packst.

Installation und Schulung

Deine Benutzer müssen, auf der anderen Seite dein Programm installieren können. Sie sind keine Softwareentwickler wie du, Sie brauchen Hilfe und Anleitung um die Installation durchzuführen. Nicht immer ist es also ratsam nur die Ausführbare Datei zum Download anzubieten.

Die Akzeptanz deiner Benutzer würde sich an dieser Stelle extrem mindern. In vielen Fällen wirst du also ein Installationsprogramm benötigen, welches du mit deinem Programm anbietest. Und damit ist es nicht getan. Nur weil dein Nutzer das Programm nun starten kann, ist er noch lange nicht in der Lage es zu benutzen.

Je nach Größe und Funktionsumfang, brauchst du Handbücher, Tutorials oder sogar ganze Schulungen für deine Benutzer. Nichts ist schlimmer als ein Benutzer der aufhört deine Programme zu benutzen, weil er deine Software nicht versteht. In jeden Videospiel sind heutzutage kleine Tutorials eingebaut, also hilf deinem Nutzer dein Programm zu verstehen.

Fazit

Mit der alleinigen Programmierung hat der Softwareentwicklungszyklus nicht mehr viel zutun. Viel mehr geht es hier um das große Ganze. Dazu kommt, dass es sehr kurze Entwicklungszyklen gibt. In der Agilen Softwareentwicklung, kann es dir passieren das dieser Zyklus wöchentlich durchläuft. Nur so kriegt man es hin sich auf Situationen und Wünsche deiner Kunden einzustellen.

Wie sieht es bei dir aus? Hast du bereits Erfahrungen mit dem Softwareentwicklungszyklus gemacht? Kommentiere unten und lass uns darüber sprechen!

  • 29. Mai 2014
Click Here to Leave a Comment Below 0 comments

Leave a Reply: