sdlc phases
Was ist der Software Development Life Cycle (SDLC)? Lernen Sie SDLC-Phasen, -Methoden, -Prozesse und -Modelle kennen
Der Software Development Life Cycle (SDLC) ist ein Framework, das die Schritte definiert, die bei der Entwicklung von Software in jeder Phase erforderlich sind. Es enthält den detaillierten Plan zum Erstellen, Bereitstellen und Warten der Software.
SDLC definiert den gesamten Entwicklungszyklus, d. H. Alle Aufgaben, die mit dem Planen, Erstellen, Testen und Bereitstellen eines Softwareprodukts verbunden sind.
Was du lernen wirst:
- Lebenszyklusprozess der Softwareentwicklung
- SDLC-Zyklus
- SDLC-Phasen
- Lebenszyklusmodelle für die Softwareentwicklung
- Fazit
Lebenszyklusprozess der Softwareentwicklung
SDLC ist ein Prozess, der die verschiedenen Phasen definiert, die bei der Entwicklung von Software zur Bereitstellung eines qualitativ hochwertigen Produkts erforderlich sind. SDLC-Phasen decken den gesamten Lebenszyklus einer Software ab, d. H. Von der Einführung bis zur Stilllegung des Produkts.
Die Einhaltung des SDLC-Prozesses führt zur systematischen und disziplinierten Entwicklung der Software.
Zweck:
Ziel von SDLC ist es, ein qualitativ hochwertiges Produkt zu liefern, das den Anforderungen des Kunden entspricht.
SDLC hat seine Phasen definiert als Anforderungserfassung, Design, Codierung, Test und Wartung. Es ist wichtig, die Phasen einzuhalten, um das Produkt systematisch bereitzustellen.
Zum Beispiel, Es muss eine Software entwickelt und ein Team aufgeteilt werden, um an einer Funktion des Produkts zu arbeiten. Es darf nach Belieben arbeiten. Einer der Entwickler beschließt, zuerst zu entwerfen, während der andere beschließt, zuerst zu codieren und der andere im Dokumentationsteil.
Dies führt zu einem Projektversagen, weshalb es erforderlich ist, dass die Teammitglieder über gute Kenntnisse und ein gutes Verständnis verfügen, um ein erwartetes Produkt zu liefern.
SDLC-Zyklus
SDLC Cycle repräsentiert den Prozess der Softwareentwicklung.
Unten ist die schematische Darstellung des SDLC-Zyklus:
SDLC-Phasen
Nachstehend sind die verschiedenen Phasen aufgeführt:
- Anforderungserfassung und -analyse
- Design
- Implementierung oder Codierung
- Testen
- Einsatz
- Instandhaltung
# 1) Anforderungserfassung und -analyse
In dieser Phase werden alle relevanten Informationen vom Kunden gesammelt, um ein Produkt gemäß seinen Erwartungen zu entwickeln. Unklarheiten müssen nur in dieser Phase behoben werden.
Der Business Analyst und der Projektmanager haben ein Meeting mit dem Kunden vereinbart, um alle Informationen zu sammeln, z. B. was der Kunde erstellen möchte, wer der Endbenutzer sein wird und was der Zweck des Produkts ist. Vor dem Erstellen eines Produkts ist ein grundlegendes Verständnis oder Wissen über das Produkt sehr wichtig.
Zum Beispiel, Ein Kunde möchte eine Anwendung haben, die Geldtransaktionen beinhaltet. In diesem Fall muss klar sein, welche Art von Transaktionen durchgeführt werden, wie sie durchgeführt werden, in welcher Währung sie ausgeführt werden usw.
Sobald die Anforderungserfassung abgeschlossen ist, wird eine Analyse durchgeführt, um die Machbarkeit der Entwicklung eines Produkts zu überprüfen. Im Falle von Unklarheiten wird ein Anruf zur weiteren Diskussion eingerichtet.
Sobald die Anforderung klar verstanden wurde, wird das SRS-Dokument (Software Requirement Specification) erstellt. Dieses Dokument sollte von den Entwicklern gründlich verstanden und vom Kunden zur späteren Bezugnahme überprüft werden.
# 2) Design
In dieser Phase wird die im SRS-Dokument erfasste Anforderung als Eingabe verwendet und die Softwarearchitektur, die zur Implementierung der Systementwicklung verwendet wird, abgeleitet.
# 3) Implementierung oder Codierung
Die Implementierung / Codierung beginnt, sobald der Entwickler das Designdokument erhalten hat. Das Software-Design wird in Quellcode übersetzt. Alle Komponenten der Software werden in dieser Phase implementiert.
Wofür wird die C ++ - Programmierung verwendet?
# 4) Testen
Der Test beginnt, sobald die Codierung abgeschlossen ist und die Module zum Testen freigegeben sind. In dieser Phase wird die entwickelte Software gründlich getestet und alle gefundenen Fehler werden den Entwicklern zugewiesen, um sie zu beheben.
Beim erneuten Testen werden Regressionstests durchgeführt, bis die Software den Erwartungen des Kunden entspricht. Tester beziehen sich auf das SRS-Dokument, um sicherzustellen, dass die Software dem Kundenstandard entspricht.
# 5) Bereitstellung
Sobald das Produkt getestet wurde, wird es in der Produktionsumgebung oder zuerst bereitgestellt UAT (User Acceptance Testing) erfolgt je nach Kundenerwartung.
Im Fall von UAT wird eine Replik der Produktionsumgebung erstellt und der Kunde führt zusammen mit den Entwicklern die Tests durch. Wenn der Kunde die Anwendung wie erwartet findet, wird er vom Kunden abgemeldet, um live zu gehen.
# 6) Wartung
Nach der Bereitstellung eines Produkts in der Produktionsumgebung kümmern sich die Entwickler um die Wartung des Produkts, d. H. Wenn ein Problem auftritt und behoben werden muss oder Verbesserungen vorgenommen werden müssen.
Lebenszyklusmodelle für die Softwareentwicklung
Ein Software-Lebenszyklusmodell ist eine beschreibende Darstellung des Softwareentwicklungszyklus. SDLC-Modelle haben möglicherweise einen anderen Ansatz, aber die grundlegenden Phasen und Aktivitäten bleiben für alle Modelle gleich.
# 1) Wasserfallmodell
Wasserfall-Modell ist das allererste Modell, das in SDLC verwendet wird. Es ist auch als lineares sequentielles Modell bekannt.
In diesem Modell ist das Ergebnis einer Phase die Eingabe für die nächste Phase. Die Entwicklung der nächsten Phase beginnt erst, wenn die vorherige Phase abgeschlossen ist.
- Zunächst werden die Anforderungen gesammelt und analysiert. Sobald die Anforderung eingefroren ist, kann nur das Systemdesign gestartet werden. Hierbei ist das erstellte SRS-Dokument die Ausgabe für die Anforderungsphase und dient als Eingabe für das Systemdesign.
- In der Systemdesign-Softwarearchitektur und im Design werden Dokumente erstellt, die als Eingabe für die nächste Phase dienen, d. H. Implementierung und Codierung.
- In der Implementierungsphase wird die Codierung durchgeführt und die entwickelte Software ist die Eingabe für die nächste Phase, d. H. Das Testen.
- In der Testphase wird der entwickelte Code gründlich getestet, um die Fehler in der Software zu erkennen. Fehler werden im Fehlerverfolgungstool protokolliert und nach Behebung erneut getestet. Fehlerprotokollierung, erneuter Test und Regressionstests werden fortgesetzt, bis sich die Software im Go-Live-Zustand befindet.
- In der Bereitstellungsphase wird der entwickelte Code in die Produktion verschoben, nachdem der Kunde die Freigabe erteilt hat.
- Alle Probleme in der Produktionsumgebung werden von den Entwicklern behoben, die gewartet werden.
Vorteile des Wasserfallmodells:
- Das Wasserfallmodell ist das einfache Modell, das leicht zu verstehen ist und in dem alle Phasen Schritt für Schritt durchgeführt werden.
- Die Ergebnisse jeder Phase sind genau definiert. Dies führt zu keiner Komplexität und macht das Projekt leicht verwaltbar.
Nachteile des Wasserfallmodells:
- Das Wasserfallmodell ist zeitaufwändig und kann nicht für Projekte mit kurzer Laufzeit verwendet werden, da in diesem Modell eine neue Phase erst gestartet werden kann, wenn die laufende Phase abgeschlossen ist.
- Das Wasserfallmodell kann nicht für Projekte verwendet werden, bei denen eine ungewisse Anforderung besteht oder bei denen sich die Anforderung ständig ändert, da dieses Modell erwartet, dass die Anforderung in der Phase der Anforderungserfassung und -analyse selbst klar ist und jede Änderung in den späteren Phasen zu höheren Kosten führen würde als die Änderungen wären in allen Phasen erforderlich.
# 2) V-förmiges Modell
V-Modell wird auch als Verifizierungs- und Validierungsmodell bezeichnet. In diesem Modell gehen Verifikation und Validierung Hand in Hand, d. H. Entwicklung und Test verlaufen parallel. V-Modell und Wasserfallmodell sind identisch, außer dass die Testplanung und das Testen in einem frühen Stadium des V-Modells beginnen.
a) Überprüfungsphase:
(i) Anforderungsanalyse:
In dieser Phase werden alle erforderlichen Informationen gesammelt und analysiert. Zu den Überprüfungsaktivitäten gehört die Überprüfung der Anforderungen.
(ii) Systemdesign:
Sobald die Anforderung klar ist, wird ein System entworfen, d. H. Eine Architektur, Komponenten des Produkts werden erstellt und in einem Entwurfsdokument dokumentiert.
(iii) Hochrangiges Design:
High-Level-Design definiert die Architektur / das Design von Modulen. Es definiert die Funktionalität zwischen den beiden Modulen.
(iv) Low-Level-Design:
Low-Level-Design definiert die Architektur / das Design einzelner Komponenten.
(v) Codierung:
Die Codeentwicklung erfolgt in dieser Phase.
b) Validierungsphase:
(i) Unit Testing:
Unit Testing wird unter Verwendung der Einheitentestfälle durchgeführt, die entworfen wurden, und wird in der Entwurfsphase auf niedriger Ebene durchgeführt. Unit-Tests werden vom Entwickler selbst durchgeführt. Es wird an einzelnen Bauteilen durchgeführt, die zur Früherkennung von Fehlern führen.
(ii) Integrationstests:
Integrationstests wird unter Verwendung von Integrationstestfällen in der High-Level-Entwurfsphase durchgeführt. Integrationstests sind Tests, die an integrierten Modulen durchgeführt werden. Es wird von Testern durchgeführt.
(iii) Systemtests:
Systemtests wird in der Systemdesign-Phase durchgeführt. In dieser Phase wird das gesamte System getestet, d. H. Die gesamte Systemfunktionalität wird getestet.
(iv) Abnahmetests:
Abnahmetests sind mit der Phase der Anforderungsanalyse verbunden und werden in der Kundenumgebung durchgeführt.
Vorteile des V - Modells:
- Es ist ein einfaches und leicht verständliches Modell.
- Der V-Modell-Ansatz eignet sich für kleinere Projekte, bei denen die Anforderung definiert ist und im Frühstadium einfriert.
- Es ist ein systematisches und diszipliniertes Modell, das zu einem qualitativ hochwertigen Produkt führt.
Nachteile des V-Modells:
- Das V-förmige Modell eignet sich nicht für laufende Projekte.
- Eine spätere Änderung der Anforderungen würde zu hohe Kosten verursachen.
# 3) Prototypmodell
Das Prototypmodell ist ein Modell, bei dem der Prototyp vor der eigentlichen Software entwickelt wird.
Prototypmodelle weisen im Vergleich zur tatsächlichen Software begrenzte Funktionsfähigkeiten und eine ineffiziente Leistung auf. Dummy-Funktionen werden verwendet, um Prototypen zu erstellen. Dies ist ein wertvoller Mechanismus, um die Bedürfnisse der Kunden zu verstehen.
Software-Prototypen werden vor der eigentlichen Software erstellt, um wertvolles Feedback vom Kunden zu erhalten. Rückmeldungen werden implementiert und der Prototyp wird vom Kunden erneut auf Änderungen überprüft. Dieser Vorgang wird fortgesetzt, bis das Modell vom Kunden akzeptiert wird.
Sobald die Anforderungserfassung abgeschlossen ist, wird das schnelle Design erstellt und der Prototyp erstellt, der dem Kunden zur Bewertung vorgelegt wird.
Kundenfeedback und die verfeinerte Anforderung werden verwendet, um den Prototyp zu modifizieren, und werden dem Kunden erneut zur Bewertung vorgelegt. Sobald der Kunde den Prototyp genehmigt hat, wird er als Voraussetzung für die Erstellung der eigentlichen Software verwendet. Die eigentliche Software wird nach dem Waterfall-Modellansatz erstellt.
Vorteile des Prototypmodells:
- Das Prototypmodell reduziert die Kosten und die Entwicklungszeit, da die Fehler viel früher gefunden werden.
- Fehlende Merkmale oder Funktionen oder eine Änderung der Anforderungen können in der Evaluierungsphase identifiziert und im verfeinerten Prototyp implementiert werden.
- Die Einbeziehung eines Kunden von Anfang an verringert jegliche Verwirrung hinsichtlich der Anforderung oder des Verständnisses einer Funktionalität.
Nachteile des Prototypmodells:
- Da der Kunde in jede Phase involviert ist, kann der Kunde die Anforderungen des Endprodukts ändern, was die Komplexität des Umfangs erhöht und die Lieferzeit des Produkts verlängern kann.
# 4) Spiralmodell
Das Spiralmodell beinhaltet iterativen und Prototyp-Ansatz.
Spiralmodellphasen werden in den Iterationen verfolgt. Die Schleifen im Modell stellen die Phase des SDLC-Prozesses dar, d. H. Die innerste Schleife besteht aus dem Sammeln und Analysieren von Anforderungen, die der Planung, Risikoanalyse, Entwicklung und Bewertung folgen. Die nächste Schleife ist Entwerfen, gefolgt von Implementierung und anschließendem Testen.
Das Spiralmodell besteht aus vier Phasen:
- Planung
- Risikoanalyse
- Maschinenbau
- Auswertung
(i) Planung:
Die Planungsphase umfasst das Sammeln von Anforderungen, wobei alle erforderlichen Informationen vom Kunden gesammelt und dokumentiert werden. Das Dokument mit den Softwareanforderungsspezifikationen wird für die nächste Phase erstellt.
(ii) Risikoanalyse:
In dieser Phase wird die beste Lösung für die damit verbundenen Risiken ausgewählt und die Analyse erfolgt durch Erstellen des Prototyps.
Zum Beispiel Das Risiko beim Zugriff auf die Daten aus einer entfernten Datenbank kann darin bestehen, dass die Datenzugriffsrate möglicherweise zu langsam ist. Das Risiko kann durch Erstellen eines Prototyps des Datenzugriffssubsystems behoben werden.
(iii) Engineering:
Sobald die Risikoanalyse abgeschlossen ist, werden Codierung und Tests durchgeführt.
(iv) Bewertung:
Der Kunde bewertet das entwickelte System und plant die nächste Iteration.
Vorteile des Spiralmodells:
- Die Risikoanalyse wird ausgiebig anhand der Prototypmodelle durchgeführt.
- Jede Erweiterung oder Änderung der Funktionalität kann in der nächsten Iteration vorgenommen werden.
Nachteile des Spiralmodells:
- Das Spiralmodell eignet sich am besten nur für große Projekte.
- Die Kosten können hoch sein, da eine große Anzahl von Iterationen erforderlich sein kann, was zu einer hohen Zeit bis zum Erreichen des Endprodukts führen kann.
# 5) Iteratives inkrementelles Modell
Das iterative inkrementelle Modell unterteilt das Produkt in kleine Teile.
Zum Beispiel Das in der Iteration zu entwickelnde Feature wird festgelegt und implementiert. Jede Iteration durchläuft die Phasen Anforderungsanalyse, Entwurf, Codierung und Testen. Eine detaillierte Planung ist in Iterationen nicht erforderlich.
Sobald die Iteration abgeschlossen ist, wird ein Produkt verifiziert und dem Kunden zur Bewertung und Rückmeldung geliefert. Das Kundenfeedback wird in der nächsten Iteration zusammen mit der neu hinzugefügten Funktion implementiert.
Daher erhöht sich das Produkt in Bezug auf Funktionen, und sobald die Iterationen abgeschlossen sind, enthält der endgültige Build alle Funktionen des Produkts.
Phasen des iterativen und inkrementellen Entwicklungsmodells:
- Anfangsphase
- Ausarbeitungsphase
- Konstruktionsphase
- Übergangsphase
(i) Anfangsphase:
Die Anfangsphase umfasst die Anforderungen und den Umfang des Projekts.
(ii) Ausarbeitungsphase:
In der Ausarbeitungsphase wird die Arbeitsarchitektur eines Produkts geliefert, die das in der Anfangsphase identifizierte Risiko abdeckt und auch die nicht funktionalen Anforderungen erfüllt.
(iii) Bauphase:
In der Bauphase wird die Architektur mit dem Code gefüllt, der zur Bereitstellung bereit ist und durch Analyse, Entwurf, Implementierung und Testen der Funktionsanforderungen erstellt wird.
(iv) Übergangsphase:
In der Übergangsphase wird das Produkt in der Produktionsumgebung bereitgestellt.
Vorteile des iterativen und inkrementellen Modells:
- Jede Änderung der Anforderung kann leicht vorgenommen werden und würde keine Kosten verursachen, da die neue Anforderung in die nächste Iteration aufgenommen werden kann.
- Das Risiko wird in den Iterationen analysiert und identifiziert.
- Defekte werden frühzeitig erkannt.
- Da das Produkt in kleinere Teile unterteilt ist, ist die Verwaltung des Produkts einfach.
Nachteile des iterativen und inkrementellen Modells:
- Die vollständige Anforderung und das Verständnis eines Produkts sind erforderlich, um schrittweise zu zerlegen und aufzubauen.
# 6) Urknallmodell
Das Urknallmodell hat keinen definierten Prozess. Geld und Aufwand werden zusammengefügt, wenn Input und Output als entwickeltes Produkt geliefert werden, das möglicherweise den Anforderungen des Kunden entspricht oder nicht.
Das Urknallmodell erfordert nicht viel Planung und Planung. Der Entwickler führt die Anforderungsanalyse und -codierung durch und entwickelt das Produkt nach seinem Verständnis. Dieses Modell wird nur für kleine Projekte verwendet. Es gibt kein Testteam und es werden keine formellen Tests durchgeführt. Dies könnte eine Ursache für das Scheitern des Projekts sein.
Vorteile des Urknallmodells:
- Es ist ein sehr einfaches Modell.
- Es ist weniger Planung und Planung erforderlich.
- Der Entwickler hat die Flexibilität, seine eigene Software zu erstellen.
Nachteile des Urknallmodells:
- Urknallmodelle können nicht für große, laufende und komplexe Projekte verwendet werden.
- Hohes Risiko und Unsicherheit.
# 7) Agiles Modell
Das agile Modell ist eine Kombination aus iterativem und inkrementellem Modell. Dieses Modell konzentriert sich mehr auf Flexibilität bei der Entwicklung eines Produkts als auf die Anforderungen.
In Agile wird ein Produkt in kleine inkrementelle Builds unterteilt. Es wird nicht als komplettes Produkt auf einmal entwickelt. Jeder Build wird in Bezug auf Funktionen erhöht. Der nächste Build basiert auf früheren Funktionen.
In agilen Iterationen werden sie als Sprints bezeichnet. Jeder Sprint dauert 2-4 Wochen. Am Ende jedes Sprints überprüft der Product Owner das Produkt und liefert es nach seiner Genehmigung an den Kunden.
Kundenfeedback wird zur Verbesserung herangezogen und seine Vorschläge und Verbesserungen werden im nächsten Sprint bearbeitet. In jedem Sprint werden Tests durchgeführt, um das Risiko von Fehlern zu minimieren.
Vorteile des agilen Modells:
- Es ermöglicht mehr Flexibilität bei der Anpassung an die Änderungen.
- Die neue Funktion kann einfach hinzugefügt werden.
- Kundenzufriedenheit als Feedback und Vorschläge werden in jeder Phase berücksichtigt.
Nachteile:
- Fehlende Dokumentation.
- Agile benötigt erfahrene und hochqualifizierte Ressourcen.
- Wenn einem Kunden nicht klar ist, wie genau er das Produkt haben möchte, schlägt das Projekt fehl.
Fazit
Die Einhaltung eines geeigneten Lebenszyklus ist für den erfolgreichen Abschluss des Projekts sehr wichtig. Dies erleichtert wiederum die Verwaltung.
Verschiedene Software Development Life Cycle-Modelle haben ihre eigenen Vor- und Nachteile. Das beste Modell für ein Projekt kann anhand der Faktoren wie Anforderung (klar oder unklar), Systemkomplexität, Projektgröße, Kosten, Einschränkung der Fähigkeiten usw. bestimmt werden.
Beispiel, Im Falle einer unklaren Anforderung sollten am besten Spiral- und Agile-Modelle verwendet werden, da die erforderliche Änderung jederzeit problemlos angepasst werden kann.
Das Wasserfallmodell ist ein Grundmodell und alle anderen SDLC-Modelle basieren nur darauf.
Ich hoffe, Sie hätten immense Kenntnisse über SDLC erworben.
Literatur-Empfehlungen
- Spiralmodell - Was ist das SDLC-Spiralmodell?
- Was ist das SDLC-Wasserfallmodell?
- Was ist der Software Testing Life Cycle (STLC)?
- Software Testing QA Assistant Job
- 10 BEST Custom Software Development Unternehmen und Dienstleistungen im Jahr 2021
- Praktische Softwaretests - Neues KOSTENLOSES eBook (Download)
- Onsite - Offshore-Modell von Software-Testprojekten (und wie es für Sie funktioniert)
- Warum hat Software Fehler?