Lebenszyklus der Softwareentwicklung
Der Software Development Life Cycle, kurz SDLC, ist eine genau definierte, strukturierte Abfolge von Schritten in der Softwareentwicklung, um das beabsichtigte Softwareprodukt zu entwickeln.
SDLC-Aktivitäten
SDLC bietet eine Reihe von Schritten, die befolgt werden müssen, um ein Softwareprodukt effizient zu entwerfen und zu entwickeln. Das SDLC-Framework umfasst die folgenden Schritte:
Kommunikation
Dies ist der erste Schritt, bei dem der Benutzer die Anforderung für ein gewünschtes Softwareprodukt initiiert. Er kontaktiert den Dienstleister und versucht, die Bedingungen auszuhandeln. Er reicht seine Anfrage schriftlich bei der Dienstleistungsorganisation ein.
Anforderungserfassung
Ab diesem Schritt arbeitet das Softwareentwicklungsteam daran, das Projekt fortzusetzen. Das Team führt Gespräche mit verschiedenen Stakeholdern aus dem Problembereich und versucht, so viele Informationen wie möglich über ihre Anforderungen zu erhalten. Die Anforderungen werden berücksichtigt und in Benutzeranforderungen, Systemanforderungen und funktionale Anforderungen unterteilt. Die Anforderungen werden unter Verwendung einer Reihe von Praktiken wie angegeben gesammelt -
- Studium des vorhandenen oder veralteten Systems und der Software,
- Durchführung von Interviews mit Anwendern und Entwicklern,
- unter Bezugnahme auf die Datenbank oder
- Sammeln von Antworten aus den Fragebögen.
Machbarkeitsstudie
Nach dem Sammeln der Anforderungen erstellt das Team einen groben Plan für den Softwareprozess. In diesem Schritt analysiert das Team, ob eine Software erstellt werden kann, um alle Anforderungen des Benutzers zu erfüllen, und ob die Möglichkeit besteht, dass Software nicht mehr nützlich ist. Es wird herausgefunden, ob das Projekt für die Organisation finanziell, praktisch und technologisch machbar ist. Es stehen viele Algorithmen zur Verfügung, mit denen die Entwickler die Machbarkeit eines Softwareprojekts abschließen können.
Systemanalyse
In diesem Schritt legen die Entwickler eine Roadmap für ihren Plan fest und versuchen, das beste für das Projekt geeignete Softwaremodell zu finden. Die Systemanalyse umfasst das Verständnis der Einschränkungen von Softwareprodukten, Probleme mit dem Lernsystem oder Änderungen, die in vorhandenen Systemen im Voraus vorgenommen werden müssen, das Erkennen und Behandeln der Auswirkungen des Projekts auf Organisation und Personal usw. Das Projektteam analysiert den Umfang des Projekts und plant den Zeitplan und Ressourcen entsprechend.
Software-Design
Der nächste Schritt besteht darin, das gesamte Wissen über Anforderungen und Analysen auf den Schreibtisch zu bringen und das Softwareprodukt zu entwerfen. Die Eingaben von Benutzern und Informationen, die in der Anforderungserfassungsphase gesammelt wurden, sind die Eingaben dieses Schritts. Die Ausgabe dieses Schritts erfolgt in Form von zwei Entwürfen; logisches Design und physisches Design. Ingenieure erstellen Metadaten und Datenwörterbücher, logische Diagramme, Datenflussdiagramme und in einigen Fällen Pseudocodes.
Codierung
Dieser Schritt wird auch als Programmierphase bezeichnet. Die Implementierung des Software-Designs beginnt mit dem Schreiben von Programmcode in der geeigneten Programmiersprache und der effizienten Entwicklung fehlerfreier ausführbarer Programme.
Testen
Eine Schätzung besagt, dass 50% des gesamten Softwareentwicklungsprozesses getestet werden sollten. Fehler können die Software von der kritischen Ebene bis zur eigenen Entfernung ruinieren. Softwaretests werden während der Codierung durch die Entwickler durchgeführt, und gründliche Tests werden von Testexperten auf verschiedenen Codeebenen durchgeführt, z. B. Modultests, Programmtests, Produkttests, Inhouse-Tests und Tests des Produkts beim Benutzer. Die frühzeitige Entdeckung von Fehlern und deren Behebung ist der Schlüssel zu zuverlässiger Software.
Integration
Möglicherweise muss Software in die Bibliotheken, Datenbanken und andere Programme integriert werden. Diese Phase von SDLC ist an der Integration von Software in Entitäten der Außenwelt beteiligt.
Implementierung
Dies bedeutet, dass die Software auf Benutzercomputern installiert wird. Manchmal muss die Software nach der Installation vom Benutzer konfiguriert werden. Die Software wird auf Portabilität und Anpassungsfähigkeit getestet, und Integrationsprobleme werden während der Implementierung gelöst.
Betrieb und Instandhaltung
Diese Phase bestätigt den Softwarebetrieb in Bezug auf mehr Effizienz und weniger Fehler. Bei Bedarf werden die Benutzer in der Dokumentation zur Bedienung der Software und zur Aufrechterhaltung des Betriebs der Software geschult oder unterstützt. Die Software wird rechtzeitig gewartet, indem der Code entsprechend den Änderungen in der Benutzerendumgebung oder -technologie aktualisiert wird. Diese Phase kann mit Herausforderungen aufgrund versteckter Fehler und nicht identifizierter Probleme in der realen Welt konfrontiert sein.
Anordnung
Im Laufe der Zeit kann die Software an der Leistungsfront abnehmen. Es ist möglicherweise völlig veraltet oder muss intensiv aktualisiert werden. Daher besteht ein dringender Bedarf, einen Großteil des Systems zu eliminieren. Diese Phase umfasst das Archivieren von Daten und erforderlichen Softwarekomponenten, das Herunterfahren des Systems, das Planen von Dispositionsaktivitäten und das Beenden des Systems zu einem angemessenen Zeitpunkt am Ende des Systems.
Paradigma der Softwareentwicklung
Das Softwareentwicklungsparadigma hilft Entwicklern bei der Auswahl einer Strategie zur Entwicklung der Software. Ein Softwareentwicklungsparadigma verfügt über eigene Tools, Methoden und Verfahren, die klar ausgedrückt werden und den Lebenszyklus der Softwareentwicklung definieren. Einige Paradigmen oder Prozessmodelle für die Softwareentwicklung sind wie folgt definiert:
Wasserfall-Modell
Das Wasserfallmodell ist das einfachste Modell des Softwareentwicklungsparadigmas. Es heißt, dass alle Phasen der SDLC linear nacheinander funktionieren. Das heißt, wenn die erste Phase beendet ist, beginnt nur die zweite Phase und so weiter.
Bei diesem Modell wird davon ausgegangen, dass alles wie geplant in der vorherigen Phase ausgeführt und durchgeführt wird und dass nicht über die Probleme der Vergangenheit nachgedacht werden muss, die in der nächsten Phase auftreten können. Dieses Modell funktioniert nicht reibungslos, wenn im vorherigen Schritt noch einige Probleme aufgetreten sind. Die sequentielle Natur des Modells erlaubt es uns nicht, zurück zu gehen und unsere Handlungen rückgängig zu machen oder zu wiederholen.
Dieses Modell eignet sich am besten, wenn Entwickler bereits in der Vergangenheit ähnliche Software entworfen und entwickelt haben und alle ihre Domänen kennen.
Iteratives Modell
Dieses Modell führt den Softwareentwicklungsprozess in Iterationen an. Es projiziert den Entwicklungsprozess zyklisch und wiederholt jeden Schritt nach jedem Zyklus des SDLC-Prozesses.
Die Software wird zunächst in sehr kleinem Maßstab entwickelt und es werden alle Schritte befolgt, die berücksichtigt werden. Bei jeder nächsten Iteration werden dann weitere Funktionen und Module entworfen, codiert, getestet und der Software hinzugefügt. Jeder Zyklus erzeugt eine Software, die für sich vollständig ist und mehr Funktionen als der vorherige bietet.
Nach jeder Iteration kann das Managementteam am Risikomanagement arbeiten und sich auf die nächste Iteration vorbereiten. Da ein Zyklus einen kleinen Teil des gesamten Softwareprozesses umfasst, ist es einfacher, den Entwicklungsprozess zu verwalten, verbraucht jedoch mehr Ressourcen.
Spiralmodell
Das Spiralmodell ist eine Kombination aus dem iterativen Modell und einem der SDLC-Modelle. Es kann so gesehen werden, als ob Sie ein SDLC-Modell auswählen und es mit einem zyklischen Prozess (iteratives Modell) kombinieren.
Dieses Modell berücksichtigt das Risiko, das von den meisten anderen Modellen häufig nicht wahrgenommen wird. Das Modell beginnt mit der Bestimmung der Ziele und Einschränkungen der Software zu Beginn einer Iteration. Die nächste Phase ist das Prototyping der Software. Dies beinhaltet eine Risikoanalyse. Anschließend wird ein Standard-SDLC-Modell zum Erstellen der Software verwendet. In der vierten Phase des Plans wird die nächste Iteration vorbereitet.
V - Modell
Der Hauptnachteil des Wasserfallmodells besteht darin, dass wir erst dann zur nächsten Stufe übergehen, wenn die vorherige abgeschlossen ist und es keine Chance gab, zurückzukehren, wenn in späteren Stufen etwas nicht gefunden wird. V-Model bietet die Möglichkeit, Software in jeder Phase in umgekehrter Weise zu testen.
In jeder Phase werden Testpläne und Testfälle erstellt, um das Produkt gemäß den Anforderungen dieser Phase zu verifizieren und zu validieren. In der Phase der Anforderungserfassung bereitet das Testteam beispielsweise alle Testfälle entsprechend den Anforderungen vor. Später, wenn das Produkt entwickelt und testbereit ist, überprüfen Testfälle dieser Phase die Software auf ihre Gültigkeit hinsichtlich der Anforderungen in dieser Phase.
Dadurch werden sowohl Verifizierung als auch Validierung parallel ausgeführt. Dieses Modell wird auch als Verifizierungs- und Validierungsmodell bezeichnet.
Urknallmodell
Dieses Modell ist das einfachste Modell in seiner Form. Es erfordert wenig Planung, viel Programmierung und viel Geld. Dieses Modell ist um den Urknall des Universums herum konzipiert. Wie Wissenschaftler sagen, haben sich nach dem Urknall viele Galaxien, Planeten und Sterne nur als Ereignis entwickelt. Wenn wir viel Programmierung und Geld zusammenstellen, können Sie auch das beste Softwareprodukt erzielen.
Für dieses Modell ist nur ein sehr geringer Planungsaufwand erforderlich. Es folgt keinem Prozess, oder manchmal ist sich der Kunde nicht sicher über die Anforderungen und zukünftigen Bedürfnisse. Die Eingabeanforderungen sind also beliebig.
Dieses Modell ist nicht für große Softwareprojekte geeignet, aber gut zum Lernen und Experimentieren.
Klicken Sie hier, um mehr über SDLC und seine verschiedenen Modelle zu erfahren.