Was sind die verschiedenen Phasen im Lebenszyklus der Systementwicklung?
Lebenszyklus der Systementwicklung

Artikel
Gespräch
Lesen
Bearbeiten
Geschichte ansehen

Werkzeuge
Aus Wikipedia, der freien Enzyklopädie
Dieser Artikel befasst sich mit dem Lebenszyklus der Systementwicklung. Für das Computer-Kommunikationsprotokoll von IBM, siehe Synchronous Data Link Control.

Modell des Softwareentwicklungslebenszyklus mit Schwerpunkt auf der Wartungsphase
In der Systemtechnik, den Informationssystemen und dem Software-Engineering ist der Systementwicklungslebenszyklus (SDLC), der auch als Lebenszyklus der Anwendungsentwicklung bezeichnet wird, ein Prozess für die Planung, die Erstellung, das Testen und den Einsatz eines Informationssystems. Das SDLC-Konzept gilt für eine Reihe von Hardware- und Softwarekonfigurationen, da ein System nur aus Hardware, nur aus Software oder aus einer Kombination von beidem bestehen kann. In der Regel gibt es sechs Phasen in diesem Zyklus: Anforderungsanalyse, Entwurf, Entwicklung und Test, Implementierung, Dokumentation und Bewertung.

Überblick
Der Lebenszyklus der Systementwicklung besteht aus verschiedenen Arbeitsphasen, die von Systemingenieuren und Systementwicklern genutzt werden, um Informationssysteme zu entwickeln. Wie alles, was auf einem Fließband hergestellt wird, zielt auch der SDLC darauf ab, qualitativ hochwertige Systeme zu produzieren, die die Erwartungen auf der Grundlage der Anforderungen erfüllen oder übertreffen, indem sie innerhalb des geplanten Zeitrahmens und der geschätzten Kosten ausgeliefert werden. Computersysteme sind komplex und verbinden oft Komponenten unterschiedlicher Herkunft. Es gibt verschiedene SDLC-Methoden, z. B. Wasserfall, Spirale, Agilität, Rapid Prototyping, Inkrementierung und Synchronisierung und Stabilisierung.

SDLC-Methoden lassen sich in ein Flexibilitätsspektrum einordnen, das von agil über iterativ bis hin zu sequentiell reicht. Agile Methoden wie XP und Scrum konzentrieren sich auf leichtgewichtige Prozesse, die schnelle Änderungen ermöglichen. Iterative Methoden wie der Rational Unified Process und die Dynamic Systems Development Method konzentrieren sich auf die Stabilisierung des Projektumfangs und die iterative Erweiterung oder Verbesserung der Produkte. Sequentielle oder Big-Design-Up-Front (BDUF)-Modelle wie Waterfall konzentrieren sich auf eine vollständige und korrekte Planung, um größere Projekte zu steuern und die Risiken für erfolgreiche und vorhersehbare Ergebnisse zu begrenzen.[citation needed] Die anamorphe Entwicklung wird durch den Projektumfang und adaptive Iterationen gesteuert.

Im Projektmanagement kann ein Projekt sowohl einen Projektlebenszyklus (PLC) als auch einen SDLC umfassen, in dem etwas andere Aktivitäten stattfinden. Nach Taylor (2004) "umfasst der Projektlebenszyklus alle Aktivitäten des Projekts, während der Lebenszyklus der Systementwicklung sich auf die Umsetzung der Produktanforderungen konzentriert".

Der SDLC ist keine Methodik an sich, sondern eine Beschreibung der Phasen, die eine Methodik abdecken sollte. Die Liste der Phasen ist nicht abschließend, umfasst aber in der Regel die Phasen Planung, Analyse, Entwurf, Erstellung, Test, Implementierung und Wartung/Support. Im Scrum-Framework könnte man zum Beispiel sagen, dass eine einzige User Story innerhalb eines zweiwöchigen Sprints alle Phasen des SDLC durchläuft. Im Gegensatz dazu wird bei der Wasserfall-Methode jede Geschäftsanforderung in Funktionsbeschreibungen übersetzt, die dann in der Regel über einen Zeitraum von Monaten oder länger umgesetzt werden.

Geschichte
Laut Elliott & Strachan & Radford (2004) entstand der SDLC "in den 1960er Jahren, um im Zeitalter der großen Unternehmenskonglomerate große funktionale Geschäftssysteme zu entwickeln. Die Aktivitäten im Bereich der Informationssysteme drehten sich um umfangreiche Datenverarbeitungs- und Number Crunching-Routinen."

Die Structured Systems Analysis and Design Method (SSADM) wurde in den 1980er Jahren für das Office of Government Commerce der britischen Regierung entwickelt. Seitdem wurden laut Elliott (2004) "die traditionellen Lebenszyklusansätze für die Systementwicklung zunehmend durch alternative Ansätze und Rahmenwerke ersetzt, die versuchten, einige der inhärenten Mängel des traditionellen SDLC zu überwinden".

Modelle

Eine Zehn-Phasen-Version des Systementwicklungs-Lebenszyklus
Der SDLC bietet eine Reihe von Phasen/Schritten/Aktivitäten, denen Systemdesigner und -entwickler folgen können. Jede Phase baut auf den Ergebnissen der vorhergehenden auf. Nicht bei jedem Projekt müssen die Phasen nacheinander durchlaufen werden. Bei kleineren, einfacheren Projekten können die Phasen auch kombiniert werden oder sich überschneiden.

Wasserfall
Das älteste und bekannteste Modell ist das Wasserfallmodell, das eine lineare Abfolge von Schritten verwendet. Es gibt verschiedene Varianten des Wasserfalls. Eine Variante sieht folgendermaßen aus:

Vorläufige Analyse
Führe eine Voranalyse durch, erwäge alternative Lösungen, schätze Kosten und Nutzen und lege einen vorläufigen Plan mit Empfehlungen vor.

Durchführen einer vorläufigen Analyse: Bestimme die Ziele der Organisation und lege Art und Umfang des Projekts fest. Stelle sicher, dass das Projekt zu den Zielen passt.
Erwäge alternative Lösungen: Alternativen können sich aus der Befragung von Mitarbeitern, Kunden, Lieferanten und Beratern ergeben, aber auch aus einer Wettbewerbsanalyse.
Kosten-Nutzen-Analyse: Analysiere die Kosten und den Nutzen des Projekts.
Systemanalyse, Definition der Anforderungen
Zerlege die Projektziele[Erläuterung erforderlich] in definierte Funktionen und Abläufe. Dazu gehört das Sammeln und Interpretieren von Fakten, das Diagnostizieren von Problemen und das Empfehlen von Änderungen. Analysiere den Informationsbedarf der Endnutzer und beseitige Unstimmigkeiten und Unvollständigkeiten:

Sammle Fakten: Erfasse die Anforderungen der Endbenutzer/innen durch Dokumentenprüfung, Kundengespräche, Beobachtung und Fragebögen.
Bestehende(s) System(e) unter die Lupe nehmen: Erkenne die Vor- und Nachteile.
Analysiere das vorgeschlagene System: Finde Lösungen für Probleme und erstelle ein Lastenheft, in das du die Vorschläge der Nutzer/innen einarbeitest.
Systementwurf
In diesem Schritt werden die gewünschten Funktionen und Abläufe detailliert beschrieben, einschließlich Bildschirmlayouts, Geschäftsregeln, Prozessdiagrammen, Pseudocode und anderen Ergebnissen.

Entwicklung
Schreibe den Code.

Integration und Testen
Baue die Module in einer Testumgebung zusammen. Prüfe auf Fehler, Bugs und Interoperabilität.

Abnahme, Installation, Bereitstellung
Nimm das System in Betrieb. Das kann bedeuten, dass Benutzer geschult, Hardware installiert und Informationen aus dem vorherigen System geladen werden müssen.

Wartung
Überwache das System, um zu prüfen, ob es noch tauglich ist. Nimm bei Bedarf kleinere Änderungen und Korrekturen vor.

Bewertung
Das System und der Prozess werden überprüft. Zu den relevanten Fragen gehört, ob das neu eingeführte System die Anforderungen erfüllt und die Projektziele erreicht, ob das System nutzbar, zuverlässig/verfügbar, richtig skaliert und fehlertolerant ist. Zu den Prozessprüfungen gehören die Überprüfung von Zeitplänen und Kosten sowie die Nutzerakzeptanz.

Entsorgung
Am Ende der Lebensdauer werden Pläne für die Einstellung des Systems und den Übergang zu seinem Ersatz entwickelt. Die zugehörigen Informationen und die Infrastruktur müssen unter angemessener Wahrung der Sicherheit wiederverwendet, archiviert, entsorgt oder zerstört werden.

Im folgenden Diagramm werden diese Phasen in zehn Schritte unterteilt, von der Definition bis zur Erstellung und Änderung von IT-Arbeitsprodukten:

Systemanalyse und -entwurf
Systemanalyse und -design (SAD) kann als Meta-Entwicklungsaktivität betrachtet werden, die dazu dient, den Rahmen abzustecken und das Problem einzugrenzen. SAD kann helfen, konkurrierende Anforderungen auf hoher Ebene auszugleichen. SAD interagiert mit der verteilten Unternehmensarchitektur, der IT-Architektur des Unternehmens und der Geschäftsarchitektur und stützt sich stark auf Konzepte wie Partitionierung, Schnittstellen, Personen und Rollen sowie Einsatz- und Betriebsmodellierung, um eine Systembeschreibung auf hoher Ebene zu erstellen. Diese High-Level-Beschreibung wird dann in Komponenten und Module zerlegt, die separat analysiert, entworfen und konstruiert und integriert werden können, um das Geschäftsziel zu erreichen. SDLC und SAD sind die Eckpfeiler der Produkt- und Systemplanung über den gesamten Lebenszyklus.

Objektorientierte Analyse und Design
Objektorientierte Analyse und Design (OOAD) ist ein Prozess, bei dem ein Problembereich analysiert wird, um ein konzeptionelles Modell zu entwickeln, das dann als Leitfaden für die Entwicklung dient. In der Analysephase entwickelt ein Programmierer schriftliche Anforderungen und ein formales Visionsdokument durch Interviews mit den Beteiligten.

Das konzeptionelle Modell, das aus dem OOAD hervorgeht, besteht in der Regel aus Anwendungsfällen sowie Klassen- und Interaktionsdiagrammen. Es kann auch ein Mock-up der Benutzeroberfläche enthalten.

Ein Output-Artefakt muss nicht vollständig definiert sein, um als Input für das objektorientierte Design zu dienen; Analyse und Design können parallel stattfinden. In der Praxis können die Ergebnisse der einen Aktivität in einem iterativen Prozess in die andere einfließen.

Einige typische Input-Artefakte für OOAD:

Konzeptuelles Modell: Ein konzeptionelles Modell ist das Ergebnis einer objektorientierten Analyse. Es fasst die Konzepte des Problembereichs zusammen. Das konzeptionelle Modell ist ausdrücklich unabhängig von den Implementierungsdetails.
Anwendungsfälle: Ein Anwendungsfall ist eine Beschreibung von Ereignisabfolgen, die zusammengenommen eine erforderliche Aufgabe erfüllen. Jeder Anwendungsfall enthält Szenarien, die zeigen, wie das System mit den Akteuren (Benutzern) interagieren soll. Bei den Akteuren kann es sich um Endnutzer oder andere Systeme handeln. Anwendungsfälle können mithilfe von Diagrammen weiter ausgearbeitet werden. Solche Diagramme identifizieren die Akteure und die Prozesse, die sie ausführen.
Systemsequenzdiagramm: Ein Systemsequenzdiagramm (SSD) ist ein Bild, das für einen bestimmten Anwendungsfall die von den Akteuren erzeugten Ereignisse und deren Reihenfolge zeigt, einschließlich der Ereignisse zwischen den Systemen.
Benutzeroberflächendokument: Ein Dokument, das die Benutzeroberfläche zeigt und beschreibt.
Datenmodell: Ein Datenmodell beschreibt, wie Datenelemente zueinander in Beziehung stehen. Das Datenmodell wird vor der Entwurfsphase erstellt. Objektorientierte Entwürfe lassen sich direkt vom Datenmodell abbilden. Relationale Entwürfe sind aufwändiger.
Systemlebenszyklus
Der Systemlebenszyklus ist eine Sichtweise auf ein System oder ein geplantes System, die alle Phasen seiner Existenz umfasst: Systemkonzeption, Design und Entwicklung, Produktion und/oder Konstruktion, Vertrieb, Betrieb, Wartung und Unterstützung, Ausmusterung, Auslauf und Entsorgung.

Konzeptioneller Entwurf
Die Konzeptionsphase ist die Phase, in der ein festgestellter Bedarf untersucht, Anforderungen für mögliche Lösungen definiert, mögliche Lösungen bewertet und eine Systemspezifikation entwickelt wird. Die Systemspezifikation stellt die technischen Anforderungen dar, die als Leitfaden für die Systementwicklung dienen. Da dieses Dokument die gesamte weitere Entwicklung bestimmt, kann diese Phase erst abgeschlossen werden, wenn bei einer Überprüfung des Konzepts festgestellt wurde, dass die Systemspezifikation dem Bedarf entspricht.

Zu den wichtigsten Schritten in der Konzeptionsphase gehören:

Bedarfsermittlung
Durchführbarkeitsanalyse
Analyse der Systemanforderungen
Spezifikation des Systems
Überprüfung des konzeptionellen Entwurfs
Vorläufiger Systementwurf
In dieser Phase des Systemlebenszyklus werden die Teilsysteme, die die gewünschten Systemfunktionen ausführen, in Übereinstimmung mit der Systemspezifikation entworfen und spezifiziert. Die Schnittstellen zwischen den Teilsystemen werden definiert, ebenso wie die allgemeinen Test- und Bewertungsanforderungen. Am Ende dieser Phase wird eine Entwicklungsspezifikation erstellt, die für die detaillierte Planung und Entwicklung ausreicht.

Zu den wichtigsten Schritten in der Vorentwurfsphase gehören:

Funktionsanalyse
Zuordnung der Anforderungen
Detaillierte Abwägungsstudien
Synthese von Systemoptionen
Vorläufiger Entwurf von technischen Modellen
Entwicklungsspezifikation
Vorläufige Entwurfsprüfung
Als Systemanalytiker der Viti Bank wurdest du zum Beispiel damit beauftragt, das aktuelle Informationssystem zu untersuchen. Die Viti Bank ist eine schnell wachsende Bank auf den Fidschi-Inseln. Kunden in abgelegenen ländlichen Gebieten haben Schwierigkeiten, die Bankdienstleistungen in Anspruch zu nehmen. Sie brauchen Tage oder sogar Wochen, um zu einem Ort zu reisen, um die Bankdienstleistungen in Anspruch zu nehmen. Mit der Vision, die Bedürfnisse der Kunden zu erfüllen, hat die Bank dich gebeten, das aktuelle System zu untersuchen und Lösungen oder Empfehlungen zu erarbeiten, wie das aktuelle System den Bedürfnissen der Bank angepasst werden kann.

Detaildesign und Entwicklung
Diese Phase umfasst die Entwicklung detaillierter Entwürfe, die die anfängliche Entwurfsarbeit in eine fertige Form von Spezifikationen bringt. Diese Arbeit umfasst die Spezifikation der Schnittstellen zwischen dem System und seiner vorgesehenen Umgebung sowie eine umfassende Bewertung der Anforderungen an Logistik, Wartung und Support des Systems. Die Detailplanung und -entwicklung ist für die Erstellung der Produkt-, Prozess- und Materialspezifikationen verantwortlich und kann zu erheblichen Änderungen der Entwicklungsspezifikation führen.

Zu den wichtigsten Schritten in der Phase der Detailplanung und -entwicklung gehören:

Detaillierter Entwurf
Detaillierte Synthese
Entwicklung von Konstruktions- und Prototypmodellen
Überarbeitung der Entwicklungsspezifikation
Produkt-, Prozess- und Materialspezifikation
Kritische Entwurfsprüfung
Produktion und Konstruktion
In der Produktions- und/oder Konstruktionsphase wird das Produkt gemäß den Anforderungen in den Produkt-, Prozess- und Materialspezifikationen gebaut oder montiert und in der betrieblichen Zielumgebung eingesetzt und getestet. Es werden Systembewertungen durchgeführt, um Mängel zu beheben und das System für weitere Verbesserungen anzupassen.

Die wichtigsten Schritte in der Produktentwicklungsphase sind:

Produktion und/oder Konstruktion von Systemkomponenten
Abnahmetest
Verteilung und Betrieb des Systems
Betriebliche Prüfung und Bewertung
Systembewertung
Nutzung und Unterstützung
Sobald das System vollständig eingerichtet ist, wird es für die vorgesehene betriebliche Aufgabe genutzt und in der betrieblichen Umgebung gewartet.

Zu den wichtigsten Schritten in der Nutzungs- und Unterstützungsphase gehören:

Betrieb des Systems in der Benutzerumgebung
Änderungsmanagement
Systemänderungen zur Verbesserung
Bewertung des Systems
Ausmusterung und Entsorgung
Die Effektivität und Effizienz des Systems muss kontinuierlich bewertet werden, um festzustellen, wann das Produkt seine maximale Lebensdauer erreicht hat. Zu den Überlegungen gehören: Fortbestehen der betrieblichen Notwendigkeit, Übereinstimmung zwischen betrieblichen Anforderungen und Systemleistung, Durchführbarkeit der Systemausmusterung im Vergleich zur Wartung und Verfügbarkeit von Alternativsystemen.

Phasen

Dieser Abschnitt enthält eine Liste mit Referenzen, weiterführender Literatur oder externen Links, aber die Quellen bleiben unklar, da es keine Inline-Zitate gibt. Bitte hilf mit, diesen Abschnitt zu verbessern, indem du genauere Zitate einfügst. (Januar 2023) (Erfahre, wie und wann du diese Vorlagenmeldung entfernen kannst)
Systemuntersuchung
In diesem Schritt werden die aktuellen Prioritäten, die davon betroffen wären, und die Art und Weise, wie sie gehandhabt werden sollten, untersucht. In einer Machbarkeitsstudie wird ermittelt, ob die Schaffung eines neuen oder verbesserten Systems sinnvoll ist. Sie hilft dabei, Kosten, Nutzen, Ressourcenbedarf und spezifische Nutzerbedürfnisse abzuschätzen.

Die Machbarkeitsstudie sollte betriebliche, finanzielle, technische, menschliche und rechtliche/politische Aspekte berücksichtigen.

Analyse
Das Ziel der Analyse ist es, herauszufinden, wo das Problem liegt. In diesem Schritt wird das System in seine Bestandteile zerlegt, die Projektziele werden analysiert, die zu erstellenden Elemente werden aufgeschlüsselt und die Nutzer/innen werden einbezogen, um die Anforderungen zu definieren.

Entwurf
Beim Systemdesign werden die Funktionen und Abläufe im Detail beschrieben, einschließlich Bildschirmlayouts, Geschäftsregeln, Prozessdiagrammen und anderen Unterlagen. Modulares Design reduziert die Komplexität und ermöglicht es, das System als eine Sammlung von Subsystemen zu beschreiben.

In der Entwurfsphase werden die bereits definierten Anforderungen als Input verwendet. Für jede Anforderung wird ein Satz von Entwurfselementen erstellt.

Zu den Entwurfsdokumenten gehören in der Regel Funktionshierarchiediagramme, Bildschirmlayouts, Geschäftsregeln, Prozessdiagramme, Pseudocode und ein vollständiges Datenmodell mit einem Datenwörterbuch. Diese Elemente beschreiben das System so detailliert, dass Entwickler und Ingenieure das System mit minimalem zusätzlichem Aufwand entwickeln und liefern können.

Testen
Bei den Softwaretests wird der Code auf verschiedenen Ebenen getestet. In der Regel werden Unit-, System- und Benutzerakzeptanztests durchgeführt. Für das Testen gibt es viele verschiedene Ansätze.

Die folgenden Arten von Tests können relevant sein:

Pfad-Tests
Testen von Datensätzen
Unit-Tests
Systemtests
Integrationstests
Black-box-Tests
White-box-Tests
Regressionstests
Automatisierungstests
Benutzerakzeptanztests
Testen der Softwareleistung
Schulung und Umstellung
Sobald ein System durch Tests stabilisiert wurde, stellt der SDLC sicher, dass eine angemessene Schulung vorbereitet und durchgeführt wird, bevor das System an das Supportpersonal und die Endbenutzer übergeben wird. Die Schulungen umfassen in der Regel sowohl Betriebsschulungen für das Supportpersonal als auch Schulungen für die Endnutzer.

Nach der Schulung stellen Systemingenieure und Entwickler das System auf die Produktionsumgebung um.

Betrieb und Wartung
Die Wartung umfasst Änderungen, Korrekturen und Erweiterungen.

Bewertung
In der letzten Phase des SDLC geht es darum, die Effektivität des Systems zu messen und mögliche Verbesserungen zu bewerten.

Lebenszyklus
Verwaltung und Kontrolle

SDLC-Phasen im Zusammenhang mit Managementkontrollen
Die Ziele der SDLC-Phasen werden in diesem Abschnitt mit den wichtigsten Ergebnissen, einer Beschreibung der empfohlenen Aufgaben und einer Zusammenfassung der damit verbundenen Kontrollziele für ein effektives Management beschrieben. Für den Projektmanager ist es wichtig, während der Projektdurchführung Kontrollziele festzulegen und zu überwachen. Kontrollziele sind klare Aussagen über das gewünschte Ergebnis oder den Zweck und sollten während des gesamten Projekts festgelegt und überwacht werden. Kontrollziele können in Hauptkategorien (Domänen) eingeteilt werden und beziehen sich auf die SDLC-Phasen, wie in der Abbildung dargestellt.

Um eine umfangreiche SDLC-Initiative zu verwalten und zu kontrollieren, wird die Arbeit in einem Projektstrukturplan (PSP) erfasst und terminiert. Der Projektstrukturplan und alle programmatischen Materialien sollten im Abschnitt "Projektbeschreibung" des Projektbuchs aufbewahrt werden. Der Projektmanager wählt ein PSP-Format, das das Projekt am besten beschreibt.

Das Diagramm zeigt, dass sich die Abdeckung über zahlreiche Phasen des SDLC erstreckt, aber der zugehörige MCD[Erläuterung erforderlich] zeigt die Zuordnungen zu den SDLC-Phasen. Zum Beispiel werden Analyse und Design in erster Linie als Teil der Akquisitions- und Implementierungsdomäne durchgeführt, und Systemaufbau und Prototyp werden in erster Linie als Teil der Lieferung und Unterstützung durchgeführt.

Strukturierte Organisation des Projektaufbaus

Projektstrukturplan
Der obere Teil des Projektstrukturplans gibt einen Überblick über den Projektumfang und den Zeitplan. Er sollte auch die wichtigsten Phasen und Meilensteine zusammenfassen. Der mittlere Abschnitt orientiert sich an den SDLC-Phasen. Die PSP-Elemente bestehen aus Meilensteinen und Aufgaben, die abgeschlossen werden müssen, anstatt aus Aktivitäten, die durchgeführt werden müssen und einen Termin haben. Jede Aufgabe hat ein messbares Ergebnis (z. B. ein Analysedokument). Eine PSP-Aufgabe kann sich auf eine oder mehrere Aktivitäten stützen (z. B. Codierung). Für Teile des Projekts, die von Auftragnehmern unterstützt werden müssen, sollte eine Arbeitsbeschreibung (SOW) erstellt werden. Die Entwicklung eines SOW findet nicht in einer bestimmten Phase des SDLC statt, sondern umfasst die Arbeiten des SDLC-Prozesses, die von Auftragnehmern durchgeführt werden können.

Grundlinien
Baselines[Erläuterung erforderlich] werden nach vier der fünf Phasen des SDLC festgelegt und sind für den iterativen Charakter des Modells entscheidend. Baselines werden zu Meilensteinen.

Funktionale Baseline: wird nach der konzeptionellen Entwurfsphase festgelegt.
Allokierte Baseline: wird nach der Vorentwurfsphase festgelegt.
Product Baseline: wird nach der Phase des Detaildesigns und der Entwicklung festgelegt.
Aktualisierte Produkt-Baseline: wird nach der Produktionsbauphase festgelegt.
Im Lebenszyklus der Systementwicklung gibt es 7 Phasen. Sie sind Systemuntersuchung, Analyse, Entwurf, Test, Schulung und Umstellung, Betrieb und Wartung sowie Bewertung.
What are the different phases in systems development life cycle?
Systems development life cycle

Article
Talk
Read
Edit
View history

Tools
From Wikipedia, the free encyclopedia
This article is about systems development life cycle. For the IBM's computer communication protocol, see Synchronous Data Link Control.

Model of the software development life cycle, highlighting the maintenance phase
In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an information system.[1] The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both.[2] There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

Overview
A systems development life cycle is composed of distinct work phases that are used by systems engineers and systems developers to deliver information systems. Like anything that is manufactured on an assembly line, an SDLC aims to produce high-quality systems that meet or exceed expectations, based on requirements, by delivering systems within scheduled time frames and cost estimates.[3] Computer systems are complex and often link components with varying origins. Various SDLC methodologies have been created, such as waterfall, spiral, agile, rapid prototyping, incremental, and synchronize and stabilize.[4]

SDLC methodologies fit within a flexibility spectrum ranging from agile to iterative to sequential. Agile methodologies, such as XP and Scrum, focus on lightweight processes that allow for rapid changes.[5] Iterative methodologies, such as Rational Unified Process and dynamic systems development method, focus on stabilizing project scope and iteratively expanding or improving products. Sequential or big-design-up-front (BDUF) models, such as waterfall, focus on complete and correct planning to guide larger projects and limit risks to successful and predictable results.[citation needed] Anamorphic development is guided by project scope and adaptive iterations.

In project management a project can include both a project life cycle (PLC) and an SDLC, during which somewhat different activities occur. According to Taylor (2004), "the project life cycle encompasses all the activities of the project, while the systems development life cycle focuses on realizing the product requirements".[6]

SDLC is not a methodology per se, but rather a description of the phases that a methodology should address. The list of phases is not definitive, but typically includes planning, analysis, design, build, test, implement, and maintenance/support. In the Scrum framework,[7] for example, one could say a single user story goes through all the phases of the SDLC within a two-week sprint. By contrast the waterfall methodology, where every business requirement[citation needed] is translated into feature/functional descriptions which are then all implemented typically over a period of months or longer.[citation needed]

History
According to Elliott & Strachan & Radford (2004), SDLC "originated in the 1960s, to develop large scale functional business systems in an age of large scale business conglomerates. Information systems activities revolved around heavy data processing and number crunching routines".[8]

The structured systems analysis and design method (SSADM) was produced for the UK government Office of Government Commerce in the 1980s. Ever since, according to Elliott (2004), "the traditional life cycle approaches to systems development have been increasingly replaced with alternative approaches and frameworks, which attempted to overcome some of the inherent deficiencies of the traditional SDLC".[8]

Models

A ten-phase version of the systems development life cycle[9]
SDLC provides a set of phases/steps/activities for system designers and developers to follow. Each phase builds on the results of the previous one.[9][10][11][12] Not every project requires that the phases be sequential. For smaller, simpler projects, phases may be combined/overlap.[9]

Waterfall
The oldest and best known is the waterfall model, which uses a linear sequence of steps.[10] Waterfall has different varieties. One variety is as follows:[9][10][13][14]

Preliminary analysis
Conduct with a preliminary analysis, consider alternative solutions, estimate costs and benefits, and submit a preliminary plan with recommendations.

Conduct preliminary analysis: Identify the organization's objectives and define the nature and scope of the project. Ensure that the project fits with the objectives.
Consider alternative solutions: Alternatives may come from interviewing employees, clients, suppliers, and consultants, as well as competitive analysis.
Cost-benefit analysis: Analyze the costs and benefits of the project.
Systems analysis, requirements definition
Decompose project goals[clarification needed] into defined functions and operations. This involves gathering and interpreting facts, diagnosing problems, and recommending changes. Analyze end-user information needs and resolve inconsistencies and incompleteness:[15]

Collect facts: Obtain end-user requirements by document review, client interviews, observation, and questionnaires.
Scrutinize existing system(s): Identify pros and cons.
Analyze the proposed system: Find solutions to issues and prepare specifications, incorporating appropriate user proposals.
Systems design
At this step, desired features and operations are detailed, including screen layouts, business rules, process diagrams, pseudocode, and other deliverables.

Development
Write the code.

Integration and testing
Assemble the modules in a testing environment. Check for errors, bugs, and interoperability.

Acceptance, installation, deployment
Put the system into production. This may involve training users, deploying hardware, and loading information from the prior system.

Maintenance
Monitor the system to assess its ongoing fitness. Make modest changes and fixes as needed.

Evaluation
The system and the process are reviewed. Relevant questions include whether the newly implemented system meets requirements and achieves project goals, whether the system is usable, reliable/available, properly scaled and fault-tolerant. Process checks include review of timelines and expenses, as well as user acceptance.

Disposal
At end of life, plans are developed for discontinuing the system and transitioning to its replacement. Related information and infrastructure must be repurposed, archived, discarded, or destroyed, while appropriately protecting security.[16]

In the following diagram, these stages of the are divided into ten steps, from definition to creation and modification of IT work products:

Systems analysis and design
Systems analysis and design (SAD) can be considered a meta-development activity, which serves to set the stage and bound the problem. SAD can help balance competing high-level requirements. SAD interacts with distributed enterprise architecture, enterprise I.T. Architecture, and business architecture, and relies heavily on concepts such as partitioning, interfaces, personae and roles, and deployment/operational modeling to arrive at a high-level system description. This high-level description is then broken down into the components and modules which can be analyzed, designed, and constructed separately and integrated to accomplish the business goal. SDLC and SAD are cornerstones of full life cycle product and system planning.

Object-oriented analysis and design
Object-oriented analysis and design (OOAD) is the process of analyzing a problem domain to develop a conceptual model that can then be used to guide development. During the analysis phase, a programmer develops written requirements and a formal vision document via interviews with stakeholders.

The conceptual model that results from OOAD typically consists of use cases, and class and interaction diagrams. It may also include a user interface mock-up.

An output artifact does not need to be completely defined to serve as input of object-oriented design; analysis and design may occur in parallel. In practice the results of one activity can feed the other in an iterative process.

Some typical input artifacts for OOAD:

Conceptual model: A conceptual model is the result of object-oriented analysis. It captures concepts in the problem domain. The conceptual model is explicitly independent of implementation details.
Use cases: A use case is a description of sequences of events that, taken together, complete a required task. Each use case provides scenarios that convey how the system should interact with actors (users). Actors may be end users or other systems. Use cases may further elaborated using diagrams. Such diagrams identify the actor and the processes they perform.
System Sequence Diagram: A System Sequence diagrams (SSD) is a picture that shows, for a particular use case, the events that actors generate, their order, including inter-system events.
User interface document: Document that shows and describes the user interface.
Data model: A data model describes how data elements relate to each other. The data model is created before the design phase. Object-oriented designs map directly from the data model. Relational designs are more involved.
System lifecycle
The system lifecycle is a view of a system or proposed system that addresses all phases of its existence to include system conception, design and development, production and/or construction, distribution, operation, maintenance and support, retirement, phase-out, and disposal.[17]

Conceptual design
The conceptual design stage is the stage where an identified need is examined, requirements for potential solutions are defined, potential solutions are evaluated, and a system specification is developed. The system specification represents the technical requirements that will provide overall guidance for system design. Because this document determines all future development, the stage cannot be completed until a conceptual design review has determined that the system specification properly addresses the motivating need.

Key steps within the conceptual design stage include:

Need identification
Feasibility analysis
System requirements analysis
System specification
Conceptual design review
Preliminary system design
During this stage of the system lifecycle, subsystems that perform the desired system functions are designed and specified in compliance with the system specification. Interfaces between subsystems are defined, as well as overall test and evaluation requirements.[18] At the completion of this stage, a development specification is produced that is sufficient to perform detailed design and development.

Key steps within the preliminary design stage include:

Functional analysis
Requirements allocation
Detailed trade-off studies
Synthesis of system options
Preliminary design of engineering models
Development specification
Preliminary design review
For example, as the system analyst of Viti Bank, you have been tasked to examine the current information system. Viti Bank is a fast-growing bank in Fiji. Customers in remote rural areas are finding difficulty to access the bank services. It takes them days or even weeks to travel to a location to access the bank services. With the vision of meeting the customers' needs, the bank has requested your services to examine the current system and to come up with solutions or recommendations of how the current system can be provided to meet its needs.

Detail design and development
This stage includes the development of detailed designs that brings initial design work into a completed form of specifications. This work includes the specification of interfaces between the system and its intended environment, and a comprehensive evaluation of the systems logistical, maintenance and support requirements. The detail design and development is responsible for producing the product, process and material specifications and may result in substantial changes to the development specification.

Key steps within the detail design and development stage include:

Detailed design
Detailed synthesis
Development of engineering and prototype models
Revision of development specification
Product, process, and material specification
Critical design review
Production and construction
During the production and/or construction stage the product is built or assembled in accordance with the requirements specified in the product, process and material specifications, and is deployed and tested within the operational target environment. System assessments are conducted in order to correct deficiencies and adapt the system for continued improvement.

Key steps within the product construction stage include:

Production and/or construction of system components
Acceptance testing
System distribution and operation
Operational testing and evaluation
System assessment
Utilization and support
Once fully deployed, the system is used for its intended operational role and maintained within its operational environment.

Key steps within the utilization and support stage include:

System operation in the user environment
Change management
System modifications for improvement
System assessment
Phase-out and disposal
Effectiveness and efficiency of the system must be continuously evaluated to determine when the product has met its maximum effective lifecycle.[19] Considerations include: Continued existence of operational need, matching between operational requirements and system performance, feasibility of system phase-out versus maintenance, and availability of alternative systems.

Phases

This section includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help to improve this section by introducing more precise citations. (January 2023) (Learn how and when to remove this template message)
System investigation
During this step, current priorities that would be affected and how they should be handled are considered. A feasibility study determines whether creating a new or improved system is appropriate. This helps to estimate costs, benefits, resource requirements, and specific user needs.

The feasibility study should address operational, financial, technical, human factors, and legal/political concerns.

Analysis
The goal of analysis is to determine where the problem is. This step involves decomposing the system into pieces, analyzing project goals, breaking down what needs to be created, and engaging users to define requirements.

Design
In systems design, functions and operations are described in detail, including screen layouts, business rules, process diagrams, and other documentation. Modular design reduces complexity and allows the outputs to describe the system as a collection of subsystems.

The design stage takes as its input the requirements already defined. For each requirement, a set of design elements is produced.

Design documents typically include functional hierarchy diagrams, screen layouts, business rules, process diagrams, pseudo-code, and a complete data model with a data dictionary. These elements describe the system in sufficient detail that developers and engineers can develop and deliver the system with minimal additional input.

Testing
The code is tested at various levels in software testing. Unit, system, and user acceptance tests are typically performed. Many approaches to testing have been adopted.

The following types of testing may be relevant:

Path testing
Data set testing
Unit testing
System testing
Integration testing
Black-box testing
White-box testing
Regression testing
Automation testing
User acceptance testing
Software performance testing
Training and transition
Once a system has been stabilized through testing, SDLC ensures that proper training is prepared and performed before transitioning the system to support staff and end users. Training usually covers operational training for support staff as well as end-user training.

After training, systems engineers and developers transition the system to its production environment.

Operations and maintenance
Maintenance includes changes, fixes, and enhancements.

Evaluation
The final phase of the SDLC is to measure the effectiveness of the system and evaluate potential enhancements.

Life cycle
Management and control

SDLC phases related to management controls[20]
SDLC phase objectives are described in this section with key deliverables, a description of recommended tasks, and a summary of related control objectives for effective management. It is critical for the project manager to establish and monitor control objectives while executing projects. Control objectives are clear statements of the desired result or purpose and should be defined and monitored throughout a project. Control objectives can be grouped into major categories (domains), and relate to the SDLC phases as shown in the figure.[20]

To manage and control a substantial SDLC initiative, a work breakdown structure (WBS) captures and schedules the work. The WBS and all programmatic material should be kept in the "project description" section of the project notebook.[clarification needed] The project manager chooses a WBS format that best describes the project.

The diagram shows that coverage spans numerous phases of the SDLC but the associated MCD[clarification needed] shows mappings to SDLC phases. For example, Analysis and Design is primarily performed as part of the Acquisition and Implementation Domain, and System Build and Prototype is primarily performed as part of delivery and support.[20]

Work breakdown structured organization

Work breakdown structure[20]
The upper section of the WBS provides an overview of the project scope and timeline. It should also summarize the major phases and milestones. The middle section is based on the SDLC phases. WBS elements consist of milestones and tasks to be completed rather than activities to be undertaken and have a deadline. Each task has a measurable output (e.g., analysis document). A WBS task may rely on one or more activities (e.g. coding). Parts of the project needing support from contractors should have a statement of work (SOW). The development of a SOW does not occur during a specific phase of SDLC but is developed to include the work from the SDLC process that may be conducted by contractors.[20]

Baselines
Baselines[clarification needed] are established after four of the five phases of the SDLC, and are critical to the iterative nature of the model.[21] Baselines become milestones.

functional baseline: established after the conceptual design phase.
allocated baseline: established after the preliminary design phase.
product baseline: established after the detail design and development phase.
updated product baseline: established after the production construction phase.
There are 7 phases in systems development life cycle. They are system investigation, Analysis, Design, Testing, Training and transition, Operations and maintenance and Evaluation