Auf einen Blick: Der Software Development Lifecycle (SDLC) beschreibt einen strukturierten Prozess für die Softwareentwicklung, einschließlich Phasen wie Anforderungsanalyse, Machbarkeitsstudie und Implementierung. Er verbessert die Softwarequalität und die Nutzerzufriedenheit durch Methoden wie Agile und Wasserfall.
- SDLC fördert die Zusammenarbeit zwischen funktionsübergreifenden Teams.
- Moderne Rahmenwerke ermöglichen iterative und schrittweise Entwicklung.
Der Software Development Lifecycle (SDLC) beschreibt den systematischen Ansatz zur Softwareentwicklung. In diesem Artikel betrachten wir:
Wie sieht der Softwareentwicklungszyklus ab?
Das SDLC trägt dazu bei, sicherzustellen, dass hochwertige Software schnell und zu optimierten Kosten an Endanwender entwickelt und freigegeben wird. Wie Sie die Qualität Ihrer Software bestimmen, kann variieren, aber allgemeine Maße umfassen:
- Die Robustheit der Softwarefunktionalität
- Gesamtleistung
- Sicherheit
- Letztlich geht es um das Nutzererlebnis
Unabhängig davon, welche Softwareentwicklung Sie abonnieren – Agile, Waterfall oder andere Varianten – kann dieser Lebenszyklus gelten.
Wer benutzt das SDLC?
Noch vor nicht allzu langer Zeit bemerkte Watt S. Humphrey, bekannt als Vater der Qualität in der Software:
"Jedes Unternehmen ist ein Softwaregeschäft."
Kürzlich wiederholte Microsoft-CEO Satya Nadella das Zitat: "Jedes Unternehmen ist ein Softwareunternehmen."
Natürlich können wir auf viele spezifische Technologieunternehmen verweisen, die Software entwickeln. Wenn es eine App gibt, hat sie jemand entwickelt.
Aber Geschäftsorganisationen, die nicht "in der Software" tätig sind, sind auf Software und Technologie angewiesen, um Geschäfte zu machen (also alle). Diese Organisationen müssen zumindest einige Standardlösungen anpassen, um die Software wahrscheinlich so anzupassen, dass sie sich an ihre individuellen Geschäftsabläufe anpasst und optimiert.
Deshalb sollten Menschen über Entwickler oder Ingenieure hinaus den SDLC-Ansatz verstehen: Viele Stakeholder können in verschiedenen Phasen involviert sein. Außerdem könnten funktionsübergreifende Teams das SDLC nutzen, um an agile- und DevOps-basierten Projekten zusammenzuarbeiten. Die Einhaltung moderner SDLC-Praktiken und -Frameworks kann den Softwareentwicklungsprozess erheblich verbessern.
Also, wer benutzt das SDLC? Kurz gesagt, alle.
Das SDLC folgt einer Reihe von Phasen in der Softwareentwicklung. Je nach SDLC-Framework können diese Phasen sequentiell oder parallel übernommen werden. (Mehr dazu unten.)
Die SDLC-Workflows können wiederholte Übergänge oder Iterationen über die Phasen hinweg umfassen, bevor die Endphase erreicht wird.
Phasen des SDLC
Phase 1: Anforderungsanalyse
Die Anfangsphase des SDLC umfasst Stakeholder aus Technologie-, Geschäfts- und Führungsbereichen der Organisation. In diesem Anfangszustand werden Sie:
- Analysieren und übersetzen Sie Geschäftsfragen in technische Probleme, indem Sie verschiedene Faktoren berücksichtigen: Kosten, Leistung, Funktionalität und Risiko.
- Bewerten Sie den umfassenden Umfang des Projekts und identifizieren Sie dann verfügbare Ressourcen.
- Berücksichtigen Sie Projektchancen und Risiken im technischen und geschäftlichen Bereich bei jeder Entscheidungsentscheidung in jeder SDLC-Phase.
Diese Phase kann über einen längeren Zeitraum andauern und beinhaltet Vorkehrungen für strategische Änderungen, während sich das SDLC weiterentwickelt.
(Lernen Sie, wie man Softwareanforderungsspezifikationen schreibt, auch bekannt als SRS.)
Phase 2: Machbarkeitsstudie
Bewerten Sie in dieser Phase die Anforderungen hinsichtlich der Machbarkeit. Nicht jede einzelne Anforderung ist für Ihren aktuellen Umfang machbar. Das Ziel dieser Phase ist es, die Chancen und Risiken der Erfüllung der vereinbarten Anforderungen mit der Vielzahl der verfügbaren Ressourcen und Strategien zu quantifizieren.
Die Machbarkeitsstudie bewertet unter anderem folgende Schlüsselaspekte:
- Wirtschaftlich: Ist es finanziell tragfähig, basierend auf den verfügbaren Ressourcen in das Projekt zu investieren?
- Rechtlich: Wie groß ist der Umfang der Vorschriften und wie groß ist die Fähigkeit der Organisation, die Einhaltung zu garantieren?
- Operationelle: Können wir die Anforderungen innerhalb der Umfangsdefinition gemäß dem vorgeschlagenen operativen Rahmen und den Arbeitsabläufen erfüllen?
- Technisch: Wie ist die Verfügbarkeit von Technologie- und HR-Ressourcen zur Unterstützung des SLDC-Prozesses?
- Zeitplan: Können wir das Projekt rechtzeitig fertigstellen?
Führungskräfte sollten diese Fragen beantworten und dokumentieren und sorgfältig studieren – bevor sie mit dem Softwaredesign- und Implementierungsprozess fortfahren.
Phase 3: Architektonisches Design
Als Nächstes dokumentieren, überprüfen und bewerten die zuständigen technischen und geschäftlichen Akteure die Designspezifikationen und -entscheidungen im Hinblick auf Risiken, Chancen, praktische Modalitäten und Einschränkungen.
In dieser Phase haben Sie technische Dokumentation, die Folgendes festlegt:
- Systemarchitektur
- Konfigurationen
- Datenstruktur
- Ressourcenbeschaffungsmodell
Die gewünschten Ergebnisse können Prototypen, Pseudocode, Minimal Viable Products (MVPs) und/oder Architekturberichte und Diagramme umfassen, die die notwendigen Technologiedetails enthalten:
- Zu den übergeordneten Designdetails gehören die gewünschte Funktionalität von Software und Systemmodulen.
- Niedrigstufige Designdetails können die funktionale Logik, Interface-Details, Abhängigkeitsprobleme und Fehler umfassen.
Phase 4: Softwareentwicklung
Die Implementierung folgt der Designphase. Mehrere unabhängige Teams und Einzelpersonen arbeiten gemeinsam an Feature-Entwicklung und Codierung. Häufig bauen einzelne Entwickler ihre eigene Codebasis innerhalb der Entwicklungsumgebung und führen sie dann mit den kollaborierenden Teams in einer gemeinsamen Build-Umgebung zusammen.
Während die Anforderungsanalyse und Designentscheidungen bereits definiert sind, wird das Feedback der Entwicklungsteams auf mögliche Änderungen der Designstrategien geprüft.
Dies ist der längste Prozess in der SDLC-Pipeline und unterstützt nachfolgende Phasen des Softwaretests und der Bereitstellung.
(Untersuchen Sie verhaltensgetriebene Entwicklung, einen Ansatz zur Softwareentwicklung.)
Phase 5: Tests
In dieser Phase wirst du Tests nutzen, um:
- Untersuchen Sie die Leistung der Software
- Entdecken und identifizieren Sie potenzielle Probleme, die behoben oder behoben werden können
Testteams erstellen einen Testplan basierend auf den vordefinierten Softwareanforderungen. Der Testplan sollte:
- Identifizieren Sie die verfügbaren Ressourcen für Tests
- Bereitstellen Sie Anweisungen und Aufgaben für Tester
- Wählen Sie verschiedene Testarten aus, die durchgeführt werden sollen.
- Bestimmen, was an technische Führungskräfte und Entscheidungsträger gemeldet werden soll
Tester arbeiten oft gemeinsam mit Entwicklungsteams zusammen und überarbeiten den Codebasis, um Testergebnisse zu verbessern.
Es ist sehr üblich, dass Teams die Entwicklungs- und Testphasen mehrmals wiederholen, bevor sie zu den letzten Phasen der Bereitstellung und Veröffentlichung der Software übergehen.
(Betrachten Sie die Vorteile von Testautomatisierung und Test-Frameworks wie Regressionstests, BDD und TDD.)
Phase 6: Einsatz
Sie haben die letzte Phase der SDLC-Pipeline erreicht, wenn Ihr fertiges Produkt die notwendigen Tests bestanden hat. Machen Sie es nun in der realen Umgebung für Endnutzer zur Veröffentlichung bereit. Mehrere Verfahren und Vorbereitungsmaßnahmen sind erforderlich, bevor ein Softwareprodukt ausgeliefert werden kann, darunter:
- Dokumentation
- Eigentumsübertragung und Lizenzierung,
- Bereitstellung und Installation des Produkts auf Kundensystemen
(Erfahren Sie mehr über die Bereitstellungs- und Veröffentlichungsphasen.)
Traditionelle vs. moderne SDLC-Methodologien
Bei traditionellen SDLC-Methodologien wie Waterfall werden diese Phasen unabhängig voneinander in Reihen von unterschiedlichen Teams durchgeführt. Unter der agilen Methodik werden diese Phasen in kurzen, iterativen, inkrementellen Sprints durchgeführt.
Eine SDLC-Pipeline und ein Rahmenwerk können so vielfältig sein wie die Anzahl der Organisationen, die sie übernehmen – praktisch jedes Unternehmen versucht, eine Strategie zu verfolgen, die für seine Organisation am besten funktioniert.
Im heutigen Zeitalter der Softwareentwicklung werden diese Phasen jedoch nicht immer nacheinander eingehalten. Moderne SDLC-Frameworks wie DevOps und Agile ermutigen funktionsübergreifende Organisationen, die Verantwortung über diese parallel durchgeführten Phasen zu teilen.
Zum Beispiel ermutigt das DevOps SDLC-Framework Entwickler, Ops und QA-Mitarbeiter, gemeinsam an kontinuierlichen Entwicklungs-, Test- und Bereitstellungsaktivitäten zu arbeiten. Zusätzlich wird das Testverfahren in der SDLC-Pipeline nach links und früh verschoben , sodass Softwaremängel erkannt werden, bevor es zu spät ist, sie zu beheben.
Verwandte Literatur
- BMC DevOps Blog
- Wie und warum man eine Softwarefabrik wird
- Unterschiede zwischen Continuous Integration (CI), Delivery (CD) und Deployment
- Orchestrierung in SDLC für DevOps
- Agile Rollen und Verantwortlichkeiten
- 15 Best Practices für den Aufbau einer Microservices-Architektur
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.