Blog

Softwareentwicklungsprozess

Software Development Life Cycle, abgekürzt SDLC, ist eine wohldefinierte Sequenz von Phasen im Software Entwicklungs Prozess.

SDLC Aktivitäten

SDLC gibt eine Serie von Schritten vor, um eine Software effizient zu entwickeln. Das SDLC Framework beschreibt folgende Phasen:

Kommunikation

Dies ist der erste Schritt im SLDC. Der Kunde nimmt Kontakt zum Software  Unternehmen auf und bespricht Einzelheiten und Bedingungen.

Anforderungs Aufnahme

Das Entwicklungsteam arbeitet mit dem Kunden zusammen und nimmt die Anforderungen auf. Sie spricht mit den einzelnen Beteiligten beim Kunden und versucht das Problem zu verstehen und die Anforderungen an die Software zu dokumentieren. Dabei entstehen Nutzer Anforderungen, System Anforderungen und Funktionale Anforderungen. Dabei führt das Team folgende Tätigkeiten durch:

  • Das aktuelle oder alte System / Software studieren
  • Interviews mit Nutzern, Entwicklern und Stakeholdern führen
  • Datenbanken studieren
  • Antworten aus Fragebögen auswerten

Machbarkeits Studie

Nach der Anforderungsanalyse erstellt das Team einen groben Plan des Software Prozesses. An dieser Stelle untersucht man ob eine Software erstellt werden kann, welches allen Anforderungen gerecht wird. Weiterhin ist Gegenstand dieser Analyse Phase die technische und finanzielle Machbarkeit des Produktes.

System Analyse

In dieser Phase entwickeln die Entwickler eine Roadmap des Produktes und untersuchen eventuell gegebene Limitierungen, notwendige Änderungen an der bestehenden Systemlandschaft und sonstigen Impact auf das Unternehmen und der IT und Prozess Landschaft. Weiterhin planen Sie Ressourcen und legen den Scope des Projektes fest.

Software Design

Im nächsten Schritt werden die ganzen Informationen die bis hier gesammelt wurden verwendet, um ein Software Produkt zu entwerfen. Der Input des Kunden und der Output aus der Anforderungsphase werden als Input für diese Phase verwendet. Nach dieser Phase entstehen 2 Designs: Das logische und das physikalische Design. Software Ingenieure produzieren in dieser Phase Meta Daten, Data Dictionaries, logische Diagramme, Data Flow Diagramme und auch Pseudo Code.

Coding

In dieser Phase wird programmiert. Die Implementierung der Software beginnt und das Team verfährt je nach gewähltem Vorgehensmodell (Scrum, Kanban, Wasserfall).

Testing

Fehler können das gesamte Software Projekt ruinieren. Testen sollte schon beim erstellen der Software anfangen (Test Driven Development). Weiterhin sollten dezidierte Tester die Software automatisiert testen. Beim Testen gibt es viele Modelle und Anwendungsarten. Tools wie Continous Delivery und Continous Deployment helfen die Qualität durchgehend zu gewährleisten.

Integration

In dieser Phase wird das Produkt in die bestehende IT Landschaft integriert.

Implementierung

Bei Desktop Software wird in dieser Phase das Produkt auf Rechnern von Endbenutzern installiert und Portabilitäts und Kompatibilitäts Probleme gelöst.

Operation und Maintenance

In dieser Phase werden Nutzer im Umgang mit der Software geschult und das Produkt in Betrieb genommen. Weiterhin wird die Software gewartet, Updates werden regelmäßig eingespielt, Bugs gefixed und der Betrieb sichergestellt. In dieser Phase treten häufig Fehler auf die nur im Echtbetrieb auffallen können. Ein Testen in der Testumgebung wäre zu zeitintensiv. Je nach Branche ist das natürlich kein gangbarer Weg und die Testphase muss entsprechende erweitert werden.

Disposition

Nach einer bestimmten Zeit kommt die Software vielleicht in eine Phase des „Abschaltens“. In dieser Phase müssen Daten archiviert werden und das Abschalten vorbereitet werden.

Software Entwicklungs Paradigmen

Das Software Entwicklungs Paradigma hilft Entwicklern eine Strategie für die Vorgehensweise zu wählen. Jedes Paradigma hat dabei sein eigenes Set an Tools, Methoden und Prozeduren. Die gängigen Paradigmen werden im folgenden beschrieben:

Wasserfall Modell

Das Wasserfall Modell ist das einfachste der Paradigmen. Es besagt, dass alle Phasen des SDLC linear hintereinander ausgeführt werden. D.h. wenn die erste Phase abgeschlossen wurde folgt die zweite, usw.

Das Modell nimmt an, dass alles in den vorangegangenen Phasen perfekt nach Plan läuft und die Informationen aus den vorherigen Phasen sich nicht verändern. Die sequentielle Natur dieses Models erlaubt nicht das „Zurückgehen“ und verändern von Informationen. Oder falls Informationen fehlen gehen die nachfolgenden Phasen von falschen Voraussetzungen aus. Dieses Model funktioniert am besten, wenn die Entwickler bereits ähnliche Projekte implementiert haben und die Problemdomäne kennen.

 Iteratives Modell / Agiles Modell

Dieses Modell findet in Iterationen statt. Es führt die einzelnen Entwicklungsphasen des SDLC in in kürzeren Zyklen durch mehrfach (in Iterationen) durch.

Die Software wird in kleinen Schritten erweitert und wird von Iteration zu Iteration „größer“. Mehr Features werden entwickelt, mehr Module designed, getestet und hinzugefügt. Jede Iteration produziert eine Software die lauffähig ist und getestet werden kann. Auch kann der Kunde nach jeder Iteration die Software einsehen und Einfluss nehmen auf die nächsten Features und Iterationen.

V – Modell

Das Hauptproblem mit dem Wasserfallmodell ist das man nur zur nächsten Phase übergeht, wenn die vorherige abgeschlossen wurde. Es gibt keine Chance zurück zu gehen und zu korrigieren. Das V – Model gibt vor die Software nach jeder Phase in Umgekehrter Richtung zu testen.

In jeder Phase werden Testpläne und Testcases erstellt, die man nutzt um das Produkt laut den Anforderungen zu prüfen und zu validieren. Z.B. bereitet das Test Team in der Anforderungs Phase Testcases vor. Später wenn das Produkt fertig ist wird es gegen diese Testcases validiert. Dieses Modell ist auch bekannt als Verfication und Validation Modell.

 

Masiar IghaniSoftwareentwicklungsprozess