SDLC-Phasen [Erklärt]: So erstellen Sie großartige Software im Jahr 2021
Veröffentlicht: 2019-10-02Inhaltsverzeichnis
Den SDLC-Prozess verstehen
Struktur des Softwareentwicklungsprozesses
SDLC-Modelle
Einpacken
Die Softwareentwicklungsbranche boomt. Wir produzieren jedes Jahr riesige Mengen an Code.
Das Herzstück der Branche ist der Softwareentwicklungslebenszyklus (SDLC) – der Prozess, der Softwareteams bei der Strukturierung und Planung ihrer Arbeit anleitet.
Begeben wir uns also auf eine Reise durch das tückische Terrain der Softwareentwicklung.
Wir werden uns ansehen, was SDLC eigentlich ist und seine Entwicklung verfolgen. Wir werden sehen, welche die wichtigsten Modelle der Branche sind.
Wir werden die SDLC-Phasen entdecken, die eine Software durchläuft, bevor sie das Licht der Welt erblickt – und die wichtigsten Leistungsträger in jeder einzelnen.
Schließlich geben wir Ihnen den gesamten Prozess aus der Vogelperspektive.
Den SDLC-Prozess verstehen
Software zu erstellen ist ein Prozess. Als solches braucht es ein klar definiertes Ziel, Mittel, um es zu erreichen, und Wege, um die Ergebnisse zu messen, aufrechtzuerhalten und zu verbessern. All das bieten die unterschiedlichen Ansätze der Softwareentwicklung. Sie sind jedoch nicht alle aus dem gleichen Stoff geschnitten. Abhängig von Ihren Umständen müssen Sie sich möglicherweise für ganz unterschiedliche Ansätze entscheiden.
Dies hängt von vielen Variablen ab, wie zum Beispiel:
- Industrie
- Größe der Organisation
- Team und Projekt
- geschätzter Zeitrahmen
- und das zugewiesene Budget.
Gemeinsam ist, dass jede Software einem bestimmten SDLC-Prozessablauf folgt .
Dieser Rahmen konkretisiert die erforderlichen Phasen bis zur Fertigstellung, die benötigten Ressourcen und die Aufgaben, die auf dem Weg zu erledigen sind.
Der SDLC-Prozess ist letztendlich ein gut strukturierter Zeitplan für das, was erreicht werden muss. Es entscheidet über den besten Softwareentwicklungsansatz innerhalb der geschätzten Zeit- und Kostengrenzen.
Der SDLC wird oft als Untergruppe des breiteren Begriffs „Systementwicklungslebenszyklus“ betrachtet – dem ältesten Rahmenwerk für die Entwicklung von Informationssystemen.
Es entstand in den frühen 1960er Jahren als Reaktion auf die Notwendigkeit von Geschäftssystemen, die in der Lage sind, große Datenmengen zu verarbeiten. Das erste gut dokumentierte SDLC-Framework ist das strukturierte Programmierparadigma aus dem Jahr 1969.
In den 1990er Jahren wurden verschiedene Methoden der Softwareentwicklung entwickelt. Einige davon sind objektorientierte Programmierung, Scrum und der Rational Unified Process. Der Agile Unified Process entstand 2005.
Struktur des Softwareentwicklungsprozesses
Die Entwicklung eines Softwareprodukts ist eine Abfolge gut aufeinander abgestimmter Phasen. Je nach gewähltem Entwicklungsansatz kann die Anzahl der SDLC-Schritte variieren.
Wir werden die 5- und 7-stufigen Geschmacksrichtungen des SDLC überprüfen.
Die 5-Stufen-Version
Die 5-stufige Version des Softwareentwicklungsprozesses sieht so aus:
Anforderungen und Analyse
Dies ist eine entscheidende Phase, in der die Interaktion mit dem Kunden und den Stakeholdern von wesentlicher Bedeutung ist. Sie müssen das erwartete Ergebnis, dh das Ziel des Softwareprodukts, bestimmen. Neben den Kundenanforderungen sind noch viele weitere Faktoren zu berücksichtigen. Diese beinhalten:
- Architektur
- Funktional
- Nicht funktionsfähig
- Leistung
- Und Designbezogene
Um diese Phase erfolgreich abzuschließen, wird ein Dokument namens „Software Requirements Specification“ entwickelt. Es ist die Grundlage für alles, was von diesem Moment an geschehen wird.
Der Erfolg eines Entwicklungsprojekts hängt stark von der Anforderungsanalyse ab. Der wichtigste Leistungsträger in dieser Phase ist der Business Analyst (BA). Er verwaltet die gesamte Kommunikation, um die Geschäftsanforderungen zu erfassen, eine gründliche Analyse durchzuführen und vor allem diese Informationen zwischen Stakeholdern und Entwicklern zu übersetzen.
Entwurf
Das Design der Software orientiert sich an etablierten Anforderungen. Hier legen wir die Entwicklungsumgebung, die Programmiersprachen, das Architektur-Framework, die Hardware usw. fest. Es ist auch die Zeit, die verwendete Teststrategie festzulegen. Die Rolle des Systemarchitekten ist hier wesentlich. Sie müssen alle Voraussetzungen aus dem Dokument „Lastenheft“ berücksichtigen und im nächsten Schritt ein Konstruktionspapier bereitstellen.
Codierungsphase
Die Designvorgaben sind den Entwicklern mittlerweile schon gut bekannt. Die Arbeit wird in Module aufgeteilt und die Codierung beginnt. Auch der Kunde sollte in dieser Phase miteinbezogen werden. Sie stellen sicher, dass alle Maßnahmen ergriffen werden, damit das Produkt ihre Erwartungen erfüllt. Die Produktion einer funktionierenden Software ist in dieser Phase das ultimative Ergebnis.
Testen
Da wir nun ein praktikables Produkt haben, kann die Testphase beginnen. Abhängig von der im Design-Spezifikationsdokument beschriebenen Teststrategie kann dies auf unterschiedliche Weise geschehen.
Die Ziele bleiben dennoch die gleichen. Stellen Sie zunächst sicher, dass alle anfänglichen Anforderungen erfüllt sind, und stellen Sie dann fest, ob der Code Fehler enthält. Tester sind hier die Hauptdarsteller. Das Ergebnis ihrer Bemühungen ist eine voll funktionsfähige Software, die einsatzbereit ist.
Instandhaltung
Es gibt kein perfektes Softwareprodukt. Deshalb spielt der Kundenservice im Entwicklungsprozess eine große Rolle. Nach der Lieferung an den Endkunden treten Echtzeitprobleme auf, die behoben werden müssen. Laufende Wartung ist ein Muss, wenn Sie zufriedene Kunden haben wollen.
Die 7-Stufen-Version
Nun, der 7-stufige Geschmack dieses Prozesses ist ein wenig anders. Es hat ein paar zusätzliche Stufen, die unweigerlich auch die Natur der anderen verändern. Lass uns mal sehen:
Planung
Eine andere Möglichkeit, den SDLC-Prozess zu starten, ist eine Planungsphase. Es geht der Anforderungserhebung voraus und sucht hauptsächlich nach Feedback. Der Input von Stakeholdern, Geschäftspartnern, Ingenieuren und Endkunden prägt den Umfang des Projekts. Diese Phase beantwortet Fragen wie:
- Was ist zu tun?
- Welche Ressourcen werden benötigt?
- Wie viel Zeit würde es dauern?
- Wie viel wird es kosten?
Anforderungen und Analyse
Hier erstellen die Business-Analysten eine Anforderungsliste, basierend auf dem Feedback des Kunden. Diese füttern sie dann an die Software-Ingenieure. Kommunikation ist unabdingbar.
In dieser Phase soll ein Dokument entstehen, das alle Anforderungen umreißt – und als Grundlage für die nächste Phase dient.
Systemdesign
Die Softwareanforderungen finden nun Eingang in die Systemarchitektur. An diesem Punkt können wir die funktionalen Mittel und Operationen bestimmen, die wir zur Durchführung des Projekts benötigen. Nach der Erstellung wird der Designplan dem Unternehmen vorgelegt. Wir beziehen alle Rückmeldungen ein, bevor die eigentliche Programmierung beginnt.
Software-Entwicklung
Sind die Anforderungen klar, können die Software-Ingenieure mit der Arbeit beginnen. Das Ziel in dieser Phase ist ein Arbeitsprogramm, das zum Testen bereit ist. Dies ist auch der Produktionsstart im SDLC-Verfahren .
Testen
Die Aufgabe des Qualitätssicherungsteams besteht darin, festzustellen, ob die anfänglichen Geschäftsanforderungen erfüllt wurden. Sie prüfen die Qualität des Softwarecodes. Fehler werden behoben. Es gibt eine ganze Liste von Softwaretestmethoden, die man durchlaufen muss: Funktions-, Integrations-, Leistungstests und so weiter.
Automatisierungstests sind eine Möglichkeit, den Prozess der Ausführung sich wiederholender Tests durch die Verwendung externer Software wie Bamboo und Jenkins zu automatisieren.
Implementierung
Nachdem der Code die Testphase bestanden hat, kann er in der Produktionsumgebung bereitgestellt werden. Abhängig von der Unternehmensrichtlinie kann dieser Prozess eine Genehmigung erfordern; In den meisten Fällen handelt es sich jedoch um einen automatisierten Schritt im Lebenszyklus der Softwareentwicklung .
Wartung und Betrieb
Sobald die Software in der Produktion freigegeben ist, können alle möglichen Probleme auftauchen. Durch Überwachung können sie identifiziert und behoben werden. Auch neue Features können ihren Weg in das Produkt finden. Dies ist die Phase, in der die Leistung gemessen und verbessert werden kann.
SDLC-Modelle
Der Entwicklungsprozess einer Software ist weitgehend universell. Es gibt Raum, um weitere Stufen hinzuzufügen oder die bestehenden zu vereinfachen – aber es ist meistens dasselbe.
Dies gilt nicht , wenn wir an Entwicklungsmethoden zu suchen. Obwohl sie alle den Prozess beobachten, tun sie dies auf ganz unterschiedliche Weise.
Um die am besten geeignete auszuwählen, müssen mehrere wichtige Faktoren berücksichtigt werden. Es ist immer ein Gleichgewicht zwischen den Bedürfnissen des Kunden und den praktischen Details der Softwareentwicklung. Es gibt Faktoren wie:
- die Komplexität des Projekts
- die ausgewählte Technologie
- und die Teamgröße.
All dies bestimmt, welcher Ansatz am besten funktioniert. Wir geben einen Überblick über einige der bekanntesten und am häufigsten verwendeten SDLC-Methoden .
Wasserfall
Das Wasserfallmodell ist ein linearer sequenzieller Entwurfsprozess. Es ist die älteste bekannte Methode, die in der Softwareentwicklung verwendet wird. Es hat seinen Ursprung in der Fertigungs- und Bauindustrie in den 1970er Jahren.
Der Fortschritt eines Entwicklungsprojekts nach dem Wasserfallmodell geht strikt in die SDLC-Rohre. Ein Fortschreiten ist nur möglich, wenn die vorherige Phase des SDLC erfolgreich abgeschlossen wurde. Es gibt keinen definierten Prozess, um rückwärts zu gehen.
Der SDLC-Wasserfall ist ein sehr strukturierter Ansatz. Es funktioniert gut, wenn:
- die Anforderungen und Aktivitäten sind klar definiert und verstanden
- die technik ist zuverlässig
- das Support-Team ist verfügbar und Sie schätzen ein kurzfristiges Projekt ein
Der Nachteil der Methode liegt in ihrer mangelnden Flexibilität. Neu aufkommende Anforderungen können Sie nicht nebenbei umsetzen. Da erst spät im Entwicklungsprozess ein greifbares Produkt produziert wird, sind das Risiko und die Unsicherheit hoch. Dies kann sich als sehr kostspielig erweisen, wenn Sie sich entscheiden, die Anforderungen oder den Umfang des Projekts im Handumdrehen zu ändern.
Iterativ
Diese Methode basiert auf der Vorstellung, dass Software durch eine Folge von sich wiederholenden Zyklen erstellt werden kann. Es beginnt mit einer einfachen Reihe von Anforderungen. Bei jeder Runde lernen die Ingenieure aus dem Verhalten früherer Versionen der Software und können deren Funktionalität verbessern.
Der größte Vorteil dieses Ansatzes besteht darin, dass nach jedem Zyklus ein funktionierender Prototyp der Software erstellt wird. Dies erleichtert die Umsetzung von Änderungen, das Erkennen von Risiken. Der SDLC-Test ist relativ einfacher, wenn er bei jeder Iteration durchgeführt wird.
Die Nachteile des iterativen Modells der Softwareentwicklung liegen in den Ressourcen und den Kosten. Das Erhöhen der Anzahl der Iterationen verbraucht mehr Ressourcen. Der Projektabschlusstermin ist unbestimmt, ebenso das Risiko. Damit diese Methode funktioniert, sind daher hochqualifizierte Experten erforderlich, die die Risikoanalyse durchführen.
Für kleinere Projekte ist die Methodik nicht geeignet.
Agil
Der agile Ansatz in der Softwareentwicklung ist relativ neu. Dennoch hat es weltweit schnell an Popularität gewonnen.
Das agile SDLC basiert darauf, kleine Teile funktionierender Software bereitzustellen und sofortiges Feedback vom Kunden einzuholen. Im Zentrum dieses Ansatzes steht die starke Zusammenarbeit und die kontinuierliche Kommunikation zwischen den Teams. Jeder Zyklus dauert etwa ein bis drei Wochen, zu welchem Zeitpunkt das Arbeitsmodul/Feature an den Kunden geliefert wird. Der Vorgang wiederholt sich dann.
Die Tests werden bei jeder Iteration durchgeführt, wodurch Probleme frühzeitig behoben werden können. Es fördert die Demonstration der Softwarefunktionalität und das Einholen von Feedback. Das Modell bietet eine klare Sichtbarkeit der Ergebnisse. Es befürwortet Teamwork und gibt Software-Ingenieuren Flexibilität.
Da keine umfangreichen Dokumentationspflichten bestehen, besteht die Gefahr der Abhängigkeit von bestimmten Personen. Dies kann auch eine Herausforderung sein, wenn es um den Wissenstransfer an neue Teammitglieder geht.
Mager
Die Lean-Softwareentwicklungsmethodik wird als Teil der agilen Softwareentwicklungsmethode angesehen. Der SDLC-Prozess nach der Lean-Methodik besteht aus sieben Prinzipien:
- Abfall beseitigen
- Lernen verstärken
- Entscheide dich so spät wie möglich
- Liefere so schnell wie möglich
- Stärken Sie das Team
- Integrität aufbauen
- Das grosse Ganze sehen
Der Schlüssel zum Verständnis dieses Modells liegt in diesen Prinzipien. Das würde dazu führen, diese zu funktionalen agilen Praktiken und deren Umsetzung in den Arbeitsprozess zu transformieren.
Die Lean-Prinzipien sind um die Idee herum organisiert, einen möglichst hohen Mehrwert für die Endverbraucher zu schaffen – bei gleichzeitiger Optimierung von Qualität, Geschwindigkeit, Kosten und Geschäftserwartungen. Dazu werden einige Aufgaben eliminiert (starke Dokumentation) und andere optimiert (Sitzungsfrequenz).
DevOps
Das DevOps-Modell basiert teilweise auf Agile und Lean . Es ist ein neu entstehender Ansatz, der eine enge Zusammenarbeit zwischen der Softwareentwicklung und den Betriebsteams während des gesamten Entwicklungslebenszyklus verbindet.
Der zentrale Aspekt dieser Methodik ist die Betonung der Automatisierung des Entwicklungsprozesses. Das ultimative Ziel ist es, den SDLC zu verkürzen und gleichzeitig qualitativ hochwertige, innovative Ergebnisse zu liefern, die auf die Geschäftsanforderungen abgestimmt sind.
Bei diesem Ansatz sind Entwickler, Betriebsteams und Qualitätssicherungsmitglieder alle auf einer Seite. Sie verwenden die gleichen Tools und folgen den gleichen Prozessen. Dies verbessert die Kommunikation und führt zu besseren und zeitnaheren Ergebnissen.
Spiral
Dies ist eine Kombination aus iterativer Entwicklung und einigen Konzepten des Wasserfallmodells. Es ermöglicht Teilfreigaben der Software in jedem iterativen Zyklus.
Die vier Stufen und die Wiederholungen werden „Spiralen“ genannt. Die SDLC-Phasen sind: Planung und Erfassung von Anforderungen; Entwurf; Entwicklung und Erprobung.
Der Risikoanalyse kommt eine Schlüsselrolle zu. Bei jeder Spirale wird eine Risikoanalyse durchgeführt, damit potenzielle Risiken identifiziert und vermieden oder überwunden werden können. Es eignet sich für große Projekte, obwohl das Management und der Prozess selbst komplex sein können.
Einpacken
Die Wahl des richtigen Ansatzes für die Softwareentwicklung erfordert umfangreiche Forschung. Durch die Definition des Umfangs, der Anforderungen und des Ziels Ihres Projekts können Sie die SDLC-Phasen bestimmen, die Ihr Produkt durchlaufen muss.
Die Methodik Ihrer Wahl ist nicht nur ein Prozess zur Entwicklung eines funktionalen Produkts. Es ist eine Möglichkeit, die Werte Ihres Unternehmens und Ihrer Teams in Einklang zu bringen, um ein harmonisches Arbeitsumfeld zu schaffen.
FAQ
Je nach gewählter Methodik durchläuft Ihre Software unterschiedlich viele Phasen. Folgende Aktivitäten sollten in jedem Fall dazu gehören:
- Planung, Bedarfserfassung und Analyse
- Einigung über ein Design oder eine Systemarchitektur
- Code generieren
- Testen des produzierten Codes
- Bereitstellung des Codes in einer Produktionsumgebung
- Kontinuierliche Wartung und Verbesserung
Hobeln; Anforderungen und Analyse; Entwurf; Entwicklung; Testen; Implementierung; Instandhaltung.
Das hängt von Ihrem Projekt ab! Ihre Analyse der Branche, des Projektziels, der verfügbaren Fähigkeiten und Ressourcen, Zeit- und Kostenkennzahlen wären die Leitfaktoren bei der Auswahl der besten SDLC-Methodik.