Skip to content

Latest commit

 

History

History
532 lines (382 loc) · 50.3 KB

Software Development Lifecycle (SDLC).md

File metadata and controls

532 lines (382 loc) · 50.3 KB

Software Development Lifecycle (SDLC)

Der Software Development Lifecycle (SDLC) ist ein strukturiertes Vorgehensmodell, das den Prozess der Softwareentwicklung in verschiedene Phasen unterteilt. Diese Phasen helfen, die Entwicklung effizient und effektiv zu steuern. Die klassischen Phasen des SDLC sind:

  1. Planung (Planning):

    • Ziel dieser Phase ist es, den Umfang und die Ziele des Projekts zu definieren. Es wird eine Machbarkeitsstudie durchgeführt, Anforderungen werden gesammelt und analysiert, und ein Projektplan wird erstellt.
  2. Anforderungsanalyse (Requirements Analysis):

    • In dieser Phase werden die funktionalen und nicht-funktionalen Anforderungen an die Software detailliert beschrieben. Das Ergebnis dieser Phase ist ein detailliertes Anforderungsdokument.
  3. Entwurf (Design):

    • Hier wird die Architektur der Software entworfen. Dies umfasst die Auswahl der Technologien, das Design von Datenbanken, das Entwerfen von Schnittstellen und die Erstellung von detaillierten Entwurfsspezifikationen.
  4. Implementierung (Implementation or Coding):

    • In dieser Phase wird die eigentliche Software programmiert. Die Entwickler setzen den zuvor erstellten Entwurf in Quellcode um.
  5. Testen (Testing):

    • Nachdem der Code implementiert wurde, wird er in dieser Phase getestet. Verschiedene Testarten (z.B. Unit-Tests, Integrationstests, Systemtests) werden durchgeführt, um sicherzustellen, dass die Software fehlerfrei und funktionsfähig ist.
  6. Bereitstellung (Deployment):

    • Nach erfolgreichem Testen wird die Software in die Produktionsumgebung überführt. Dies kann die Installation auf Servern, das Einrichten von Netzwerken und die Schulung von Endbenutzern umfassen.
  7. Wartung (Maintenance):

    • Nachdem die Software bereitgestellt wurde, beginnt die Wartungsphase. Diese umfasst die Behebung von Fehlern, das Einspielen von Updates und Verbesserungen sowie die Anpassung der Software an neue Anforderungen.

Jede dieser Phasen hat ihre eigene Bedeutung und trägt zum Erfolg des gesamten Softwareprojekts bei. Der genaue Ablauf und die Bezeichnung der Phasen können je nach Entwicklungsmodell (z.B. Wasserfallmodell, agile Methoden) variieren. In der Planungsphase des Software Development Lifecycle (SDLC) werden grundlegende Informationen gesammelt und verarbeitet, um den Rahmen für das gesamte Projekt zu definieren. Diese Phase ist entscheidend, da hier die Basis für die nachfolgenden Phasen gelegt wird. Im Folgenden sind die wichtigsten Informationen, Dokumente und Aktivitäten aufgeführt, die in der Planungsphase benötigt, verarbeitet und erstellt werden:

1. Benötigte Informationen:

  • Projektziele und -vorgaben: Eine klare Definition der Ziele, die mit dem Softwareprojekt erreicht werden sollen.
  • Stakeholder-Anforderungen: Erwartungen und Anforderungen von allen Stakeholdern, einschließlich Kunden, Endbenutzern, Projektmanagern und Entwicklern.
  • Machbarkeitsanalyse: Technische, wirtschaftliche und betriebliche Machbarkeit des Projekts.
  • Ressourcenanforderungen: Verfügbarkeit und Anforderungen an Personal, Budget, Zeit und Technologie.
  • Risikofaktoren: Identifizierung potenzieller Risiken, die den Projekterfolg beeinträchtigen könnten, wie z.B. technische Herausforderungen, Budgetüberschreitungen oder Zeitverzögerungen.
  • Regulatorische Anforderungen: Gesetzliche und branchenspezifische Vorschriften, die eingehalten werden müssen.

2. Verarbeitete Informationen:

  • Anforderungsanalyse: Erste Analyse und Validierung der gesammelten Anforderungen, um sicherzustellen, dass sie machbar und vollständig sind.
  • Risikobewertung: Analyse der identifizierten Risiken und Entwicklung von Strategien zu deren Minderung.
  • Budget- und Zeitrahmen: Schätzung des Gesamtbudgets und Festlegung eines groben Zeitrahmens für das Projekt.
  • Ressourcenplanung: Ermittlung der benötigten Ressourcen (z.B. Teammitglieder, Tools, Technologien) und deren Zuweisung.

3. Erstellte Dokumente:

  • Projektcharter: Ein formelles Dokument, das die Genehmigung des Projekts beinhaltet. Es enthält eine grobe Übersicht über das Projekt, einschließlich Ziele, Umfang, Stakeholder und erste Budget- und Zeitrahmenschätzungen.
  • Machbarkeitsstudie: Ein Bericht, der die technische, wirtschaftliche und betriebliche Machbarkeit des Projekts untersucht und bewertet.
  • Risikomanagementplan: Ein Plan zur Identifizierung, Bewertung und Bewältigung von Risiken, einschließlich einer Risikomanagementstrategie.
  • Projektplan: Ein detaillierter Plan, der den Umfang, den Zeitplan, das Budget, die Ressourcen und die Qualitätsanforderungen des Projekts beschreibt. Er dient als Leitfaden für die gesamte Projektdurchführung.
  • Stakeholder-Analyse: Eine Analyse der Stakeholder, die deren Einfluss, Interessen und Erwartungen dokumentiert.
  • Erste Anforderungsdokumentation: Ein vorläufiges Dokument, das die gesammelten Anforderungen zusammenfasst. Diese Anforderungen werden in den folgenden Phasen detaillierter ausgearbeitet.

4. Wichtige Aktivitäten:

  • Stakeholder-Meetings: Durchführung von Besprechungen mit allen relevanten Stakeholdern, um Anforderungen zu sammeln und zu validieren.
  • Workshops und Brainstorming-Sitzungen: Um Ideen zu entwickeln und mögliche Lösungsansätze zu diskutieren.
  • Erstellung eines Projektplans: Festlegung der Projektstruktur, Meilensteine und Zeitpläne.
  • Risikobewertung: Identifizierung und Bewertung potenzieller Risiken und Entwicklung von Strategien zur Risikominderung.
  • Genehmigung des Projektcharters: Offizielle Genehmigung des Projekts durch die Projektleitung und andere Entscheidungsträger.

Diese Phase legt den Grundstein für das gesamte Projekt und beeinflusst maßgeblich dessen Erfolg. Fehler oder Lücken in der Planungsphase können zu erheblichen Problemen in späteren Phasen führen. Daher ist es wichtig, in dieser Phase gründlich und sorgfältig vorzugehen. Hier sind konkrete Beispiele für jeden Punkt im Abschnitt "Benötigte Informationen" der Planungsphase eines Softwareentwicklungsprojekts:

1. Projektziele und -vorgaben:

  • Beispiel: Ein Unternehmen plant die Entwicklung einer neuen mobilen E-Commerce-App. Das Hauptziel des Projekts ist es, die Kundenzufriedenheit durch eine benutzerfreundliche mobile Anwendung zu steigern, die es ermöglicht, Produkte einfach zu durchsuchen und zu kaufen. Eine spezifische Vorgabe könnte sein, dass die App innerhalb von sechs Monaten auf den Markt kommen muss und mindestens 500.000 Nutzer im ersten Jahr erreichen soll.

2. Stakeholder-Anforderungen:

  • Beispiel: Die Geschäftsführung erwartet, dass die App Umsatz und Markentreue steigert. Das Marketingteam benötigt eine Funktion, um personalisierte Angebote zu erstellen, basierend auf dem Nutzerverhalten. Die IT-Abteilung fordert, dass die App in bestehende Backend-Systeme integriert wird, während Kunden eine intuitive Benutzeroberfläche und schnelle Ladezeiten erwarten.

3. Machbarkeitsanalyse:

  • Beispiel: Das Team führt eine technische Machbarkeitsanalyse durch, um festzustellen, ob die vorhandene Infrastruktur in der Lage ist, die erwartete Anzahl von Nutzern zu bewältigen. Eine wirtschaftliche Machbarkeitsanalyse könnte ergeben, dass das Projekt ein anfängliches Budget von 500.000 Euro benötigt und dass sich diese Investition nach 18 Monaten amortisieren wird. Eine betriebliche Machbarkeitsanalyse prüft, ob genügend Entwickler und andere Ressourcen zur Verfügung stehen, um das Projekt innerhalb des festgelegten Zeitrahmens durchzuführen.

4. Ressourcenanforderungen:

  • Beispiel: Für die Entwicklung der E-Commerce-App werden vier Softwareentwickler, zwei UI/UX-Designer, ein Projektmanager und ein Qualitätssicherungs-Team benötigt. Das Projekt erfordert ein Budget von 500.000 Euro und eine Projektlaufzeit von sechs Monaten. Zudem werden Tools wie JIRA für das Projektmanagement und AWS für das Hosting benötigt.

5. Risikofaktoren:

  • Beispiel: Ein identifiziertes Risiko ist die mögliche Verzögerung bei der Integration mit den bestehenden Backend-Systemen des Unternehmens. Ein weiteres Risiko könnte darin bestehen, dass die mobile App nicht den erwarteten Benutzeranforderungen entspricht, was zu einer geringen Akzeptanz führt. Das Projektteam identifiziert auch das Risiko von Budgetüberschreitungen, falls unvorhergesehene technische Probleme auftreten.

6. Regulatorische Anforderungen:

  • Beispiel: Die E-Commerce-App muss den Datenschutzanforderungen der DSGVO (Datenschutz-Grundverordnung) entsprechen. Dies beinhaltet die Implementierung von Funktionen zur Einwilligung in die Datenverarbeitung, das Recht auf Datenlöschung und die sichere Speicherung von Kundendaten. Darüber hinaus muss die App PCI-DSS-konform sein, um sichere Kreditkartentransaktionen zu gewährleisten.

Diese Beispiele veranschaulichen die Art von Informationen, die in der Planungsphase gesammelt und verarbeitet werden, um eine solide Grundlage für das Softwareprojekt zu schaffen. Die Aussagen „Anforderungen werden gesammelt und analysiert“ in der Planungsphase (Punkt 1) und in der Anforderungsanalyse (Punkt 2) beziehen sich auf ähnliche Aktivitäten, haben jedoch unterschiedliche Ziele, Umfang und Detailgrad. Hier sind die konkreten Unterschiede:

1. Planung (Planning) – Anforderungen werden gesammelt und analysiert:

  • Ziel: In der Planungsphase liegt der Fokus darauf, einen Überblick über die groben Anforderungen und die allgemeine Machbarkeit des Projekts zu bekommen. Es geht darum, die Rahmenbedingungen festzulegen, um sicherzustellen, dass das Projekt überhaupt durchführbar ist und welche Ressourcen, Zeit und Budget benötigt werden.

  • Umfang: Die Anforderungen werden auf hoher Ebene gesammelt. Dies umfasst die Identifizierung der Hauptziele des Projekts und die grundlegenden Bedürfnisse der Stakeholder. Die Analyse ist eher oberflächlich und dient dazu, die grundlegenden Anforderungen zu verstehen und erste Schätzungen und Pläne zu erstellen.

  • Detailgrad: Die Anforderungen werden nicht detailliert ausgearbeitet. Es handelt sich um eine erste Sammlung und grobe Analyse, um das Projekt zu definieren und zu entscheiden, ob es weiterverfolgt werden sollte. Beispiele sind grobe Zielsetzungen, wie „Entwicklung einer E-Commerce-App“ oder „Integration in bestehende Systeme“.

  • Dokumentation: Es wird ein Projektcharter oder eine erste Anforderungsübersicht erstellt, die die wesentlichen Anforderungen und Ziele des Projekts zusammenfasst. Diese Dokumente sind eher kurz und fokussiert auf das „Big Picture“.

2. Anforderungsanalyse (Requirements Analysis):

  • Ziel: Die Anforderungsanalyse hat das Ziel, die Anforderungen detailliert und präzise zu definieren. Hier geht es darum, genau zu verstehen, was die Software leisten muss, um die Bedürfnisse aller Stakeholder zu erfüllen. Diese Phase bildet die Grundlage für das Design und die Implementierung der Software.

  • Umfang: Die Anforderungen werden umfassend und systematisch gesammelt. Dies beinhaltet detaillierte Gespräche mit Stakeholdern, Workshops, die Analyse bestehender Systeme und das Erstellen von Use Cases, User Stories oder anderen Modellen. Alle Anforderungen – sowohl funktionale als auch nicht-funktionale – werden detailliert erarbeitet.

  • Detailgrad: Die Anforderungen werden vollständig und präzise beschrieben. Jedes Detail, wie Funktionen, Benutzerinteraktionen, technische Spezifikationen und Sicherheitsanforderungen, wird dokumentiert. Beispielsweise würde in dieser Phase genau beschrieben, wie die E-Commerce-App Produkte anzeigen soll, wie der Bestellvorgang ablaufen soll, welche Zahlungsoptionen integriert werden müssen usw.

  • Dokumentation: Am Ende der Anforderungsanalyse wird ein umfassendes Anforderungsdokument (z.B. Lastenheft, Pflichtenheft) erstellt, das alle funktionalen und nicht-funktionalen Anforderungen im Detail beschreibt. Dieses Dokument dient als Referenz für die nachfolgenden Phasen der Softwareentwicklung, insbesondere für das Design und die Implementierung.

Zusammenfassung:

  • Planung: Grobe Sammlung und erste Analyse der Anforderungen, um das Projekt zu definieren und die Machbarkeit zu prüfen.
  • Anforderungsanalyse: Detaillierte Erarbeitung und präzise Dokumentation der Anforderungen, die als Grundlage für das Design und die Entwicklung der Software dienen.

Diese beiden Phasen bauen aufeinander auf, wobei die Planungsphase eine erste, grobe Grundlage legt, die in der Anforderungsanalyse detailliert ausgearbeitet wird. In der Phase der Anforderungsanalyse (Requirements Analysis) des Software Development Lifecycle (SDLC) werden die Anforderungen an das Softwareprojekt im Detail erarbeitet und dokumentiert. Diese Phase ist entscheidend, da sie die Grundlage für das Design, die Implementierung und das Testen der Software bildet. Hier sind die wichtigen Informationen, Dokumente und Aktivitäten, die in dieser Phase benötigt, verarbeitet und erstellt werden:

1. Benötigte Informationen:

  • Stakeholder-Informationen:

    • Detaillierte Informationen über alle relevanten Stakeholder, einschließlich ihrer Erwartungen, Bedürfnisse und Prioritäten.
    • Beispiel: Das Marketingteam erwartet, dass die App personalisierte Angebote basierend auf Nutzerverhalten ermöglicht.
  • Vorhandene Systeme und Prozesse:

    • Informationen über bestehende Systeme, in die die neue Software integriert werden muss, sowie bestehende Geschäftsprozesse, die unterstützt oder verbessert werden sollen.
    • Beispiel: Die App muss sich nahtlos in das bestehende CRM-System des Unternehmens integrieren.
  • Regulatorische Anforderungen und Compliance:

    • Informationen über gesetzliche Vorschriften, Branchenstandards und Compliance-Anforderungen, die die Software erfüllen muss.
    • Beispiel: Die App muss DSGVO-konform sein und Funktionen zur Datenlöschung und Nutzeranfragen bieten.
  • Technische Einschränkungen und Möglichkeiten:

    • Technische Rahmenbedingungen, wie die unterstützten Plattformen, vorhandene Technologien und Entwicklungswerkzeuge, sowie technische Einschränkungen, die berücksichtigt werden müssen.
    • Beispiel: Die App muss sowohl für iOS als auch für Android entwickelt werden und auf einer Cloud-Infrastruktur gehostet werden.
  • Anforderungsdokumentation aus der Planungsphase:

    • Die groben Anforderungen und Zielsetzungen, die in der Planungsphase gesammelt wurden, dienen als Ausgangspunkt für die detaillierte Anforderungsanalyse.
    • Beispiel: Das in der Planungsphase erstellte Projektcharter oder eine erste Anforderungsübersicht.

2. Verarbeitete Informationen:

  • Detaillierte Anforderungen:

    • Die Anforderungen werden systematisch erfasst, analysiert und detailliert beschrieben. Dies umfasst sowohl funktionale Anforderungen (was die Software tun soll) als auch nicht-funktionale Anforderungen (wie die Software diese Aufgaben erfüllen soll).
    • Beispiel: Die App muss eine Produktsuche bieten, die Ergebnisse basierend auf Nutzerpräferenzen filtert. Sie muss auch unter hoher Last stabil bleiben und Ladezeiten unter 2 Sekunden halten.
  • Priorisierung der Anforderungen:

    • Anforderungen werden nach ihrer Wichtigkeit und Dringlichkeit priorisiert, um sicherzustellen, dass die wichtigsten Funktionen zuerst entwickelt werden.
    • Beispiel: Die Möglichkeit, Produkte zu suchen und in den Warenkorb zu legen, hat höchste Priorität, während die Integration von Social-Media-Sharing als sekundär eingestuft wird.
  • Modellierung und Prototyping:

    • Erstellung von Modellen, wie Use Cases, User Stories, Prozessdiagrammen, Wireframes oder Prototypen, um Anforderungen visuell darzustellen und Missverständnisse zu vermeiden.
    • Beispiel: Ein Wireframe des Bestellvorgangs, der zeigt, wie Nutzer durch den Checkout-Prozess geführt werden.
  • Anforderungen validieren und abstimmen:

    • Die erfassten und dokumentierten Anforderungen werden mit den Stakeholdern überprüft und validiert, um sicherzustellen, dass sie vollständig und korrekt sind.
    • Beispiel: Durch Workshops oder Review-Sitzungen mit Stakeholdern wird bestätigt, dass die Anforderungsdokumentation deren Erwartungen und Bedürfnisse widerspiegelt.

3. Erstellte Dokumente:

  • Lastenheft (Requirements Specification):

    • Ein umfassendes Dokument, das alle funktionalen und nicht-funktionalen Anforderungen beschreibt, einschließlich Prioritäten, Akzeptanzkriterien und Abhängigkeiten.
    • Beispiel: Ein Kapitel beschreibt detailliert die Funktionalität für die Produktsuche, einschließlich Filteroptionen, Suchalgorithmen und Interface-Design.
  • Use Cases oder User Stories:

    • Dokumente, die beschreiben, wie verschiedene Benutzergruppen die Software verwenden werden, oft unter Verwendung von Szenarien oder Storytelling-Techniken.
    • Beispiel: Ein Use Case beschreibt, wie ein Kunde ein Produkt sucht, Details anzeigt und es in den Warenkorb legt.
  • Prozessdiagramme und Datenflussdiagramme:

    • Visuelle Darstellungen von Geschäftsprozessen und Datenflüssen innerhalb der Software, um das Verständnis der Anforderungen zu verbessern.
    • Beispiel: Ein Datenflussdiagramm zeigt, wie Bestelldaten von der App zum Backend-System fließen und dort verarbeitet werden.
  • Mockups, Wireframes und Prototypen:

    • Visuelle Modelle der Benutzeroberfläche und Funktionalität, die zur Veranschaulichung und Überprüfung der Anforderungen genutzt werden.
    • Beispiel: Ein Wireframe des Checkout-Prozesses wird erstellt, um das Layout und die Benutzerinteraktionen zu verdeutlichen.
  • Akzeptanzkriterien:

    • Detaillierte Kriterien, die beschreiben, wie die Erfüllung der Anforderungen geprüft wird, um sicherzustellen, dass die Software den Erwartungen entspricht.
    • Beispiel: Ein Akzeptanzkriterium könnte sein, dass die Suchfunktion in der App Ergebnisse in weniger als einer Sekunde zurückgibt.
  • Rückverfolgbarkeitsmatrix:

    • Ein Dokument, das die Anforderungen mit den entsprechenden Implementierungen und Tests verknüpft, um sicherzustellen, dass alle Anforderungen vollständig abgedeckt sind.
    • Beispiel: Die Rückverfolgbarkeitsmatrix zeigt, welche Anforderungen in welchen Modulen der Software implementiert und wie sie getestet werden.

Wichtige Aktivitäten:

  • Workshops und Interviews: Durchführung von Sitzungen mit Stakeholdern zur Sammlung detaillierter Anforderungen.
  • Anforderungen dokumentieren: Erstellung von detaillierten Anforderungsdokumenten, die als Referenz für das weitere Projekt dienen.
  • Validierung: Regelmäßige Überprüfungen und Validierungen der Anforderungen mit Stakeholdern, um sicherzustellen, dass die Dokumentation korrekt und vollständig ist.

Diese Informationen und Dokumente aus der Anforderungsanalyse bilden die Grundlage für die erfolgreiche Entwicklung und Implementierung der Software, indem sie sicherstellen, dass alle Bedürfnisse und Erwartungen klar und präzise festgehalten sind. In der Phase „Entwurf (Design)“ des Software Development Lifecycle (SDLC) wird die Architektur und das detaillierte Design der Software entwickelt. Diese Phase baut auf den Ergebnissen der Anforderungsanalyse auf und definiert, wie die Software die spezifizierten Anforderungen technisch umsetzen wird. Hier sind die wichtigen Informationen, Dokumente und Aktivitäten, die in dieser Phase benötigt, verarbeitet und erstellt werden:

1. Benötigte Informationen:

  • Anforderungsdokumentation:

    • Detaillierte Anforderungen aus der Anforderungsanalyse, wie das Lastenheft oder Pflichtenheft, werden verwendet, um das Design der Software zu leiten.
    • Beispiel: Die Anforderung, dass die App eine Suchfunktion mit Filtern haben soll, wird im Design berücksichtigt, indem ein entsprechendes Suchmodul entworfen wird.
  • Technologische Rahmenbedingungen:

    • Informationen über die eingesetzten Technologien, Entwicklungsumgebungen, Programmiersprachen und Tools, die im Projekt verwendet werden sollen.
    • Beispiel: Entscheidung, ob die App in einer bestimmten Programmiersprache wie Java oder Swift entwickelt wird und welche Datenbanken genutzt werden sollen.
  • Regulatorische und Compliance-Anforderungen:

    • Gesetzliche Vorschriften und branchenspezifische Standards, die das Design beeinflussen könnten, wie Sicherheits- und Datenschutzanforderungen.
    • Beispiel: Berücksichtigung der DSGVO-Anforderungen beim Design der Datenbankstruktur, um sicherzustellen, dass personenbezogene Daten korrekt behandelt werden.
  • Erfahrungen und Best Practices:

    • Frühere Projekte, bewährte Methoden und Architektur-Patterns, die für das aktuelle Projekt nützlich sein könnten.
    • Beispiel: Nutzung eines bewährten MVC (Model-View-Controller)-Musters für die Trennung der Logik in der Anwendung.

2. Verarbeitete Informationen:

  • Architekturentscheidungen:

    • Basierend auf den Anforderungen und technologischen Rahmenbedingungen werden Entscheidungen über die Architektur der Software getroffen, einschließlich der Auswahl der wichtigsten Komponenten und ihrer Interaktionen.
    • Beispiel: Entscheidung für eine Microservices-Architektur, um die App in unabhängige, skalierbare Dienste aufzuteilen.
  • Modulare Struktur:

    • Die Software wird in Module unterteilt, die jeweils spezifische Funktionen erfüllen. Diese Struktur erleichtert die Implementierung, Wartung und Erweiterung der Software.
    • Beispiel: Aufteilung der E-Commerce-App in Module für Benutzerverwaltung, Produktsuche, Warenkorb und Zahlungsabwicklung.
  • Datenbankdesign:

    • Entwurf der Datenbankstruktur, einschließlich Tabellen, Beziehungen, Schlüssel und Indizes, basierend auf den funktionalen und nicht-funktionalen Anforderungen.
    • Beispiel: Design einer relationalen Datenbank mit Tabellen für Produkte, Benutzer, Bestellungen und Zahlungsinformationen.
  • Schnittstellendefinitionen:

    • Definition der Schnittstellen zwischen verschiedenen Systemen und Modulen, einschließlich API-Design und Kommunikationsprotokollen.
    • Beispiel: Gestaltung einer RESTful API für den Zugriff auf Produktdaten und Bestellungen durch die mobile App.

3. Erstellte Dokumente:

  • Softwarearchitekturdokument (SAD):

    • Ein umfassendes Dokument, das die Gesamtarchitektur der Software beschreibt, einschließlich der wichtigsten Komponenten, deren Interaktionen und der zugrunde liegenden Prinzipien und Entscheidungen.
    • Beispiel: Das SAD beschreibt die Aufteilung der E-Commerce-App in Frontend, Backend und Datenbank, sowie die verwendeten Kommunikationsprotokolle.
  • Datenmodell und Datenbankentwurf:

    • Ein detailliertes Schema, das die Struktur der Datenbank beschreibt, einschließlich Entitätsbeziehungen, Tabellenstrukturen, Datenflüsse und Integritätsbedingungen.
    • Beispiel: Ein ER-Diagramm (Entity-Relationship-Diagramm), das die Beziehungen zwischen Benutzern, Produkten, Bestellungen und Zahlungen darstellt.
  • Modul- und Komponentenspezifikationen:

    • Detaillierte Beschreibungen jedes Moduls und jeder Komponente, einschließlich ihrer Funktionalität, Schnittstellen und Interaktionen mit anderen Modulen.
    • Beispiel: Eine Spezifikation des Warenkorb-Moduls, das beschreibt, wie Artikel hinzugefügt, entfernt und gespeichert werden, sowie die Schnittstellen zu den Modulen für Benutzer und Bestellungen.
  • Schnittstellendesign (API-Spezifikationen):

    • Dokumentation der APIs, die die Interaktion zwischen verschiedenen Softwarekomponenten und externen Systemen regeln, einschließlich Endpunkte, Datenformate und Authentifizierungsmechanismen.
    • Beispiel: Eine API-Spezifikation für den Zugriff auf Benutzerprofile, die die verfügbaren Endpunkte, akzeptierten HTTP-Methoden und die Struktur der Anfragen und Antworten beschreibt.
  • UI/UX-Design-Dokumente:

    • Detaillierte Entwürfe der Benutzeroberfläche, einschließlich Wireframes, Mockups und Interaktionsdesigns, die die Benutzererfahrung und das Interface beschreiben.
    • Beispiel: Ein interaktives Mockup der App, das zeigt, wie Nutzer durch den Bestellvorgang geführt werden, einschließlich Layouts, Farbschemata und Navigationsstrukturen.
  • Design-Entscheidungsprotokolle:

    • Dokumentation der getroffenen Designentscheidungen, einschließlich der Gründe und Überlegungen hinter diesen Entscheidungen.
    • Beispiel: Ein Protokoll, das erklärt, warum die Entscheidung getroffen wurde, die App als hybride App zu entwickeln, um sowohl iOS als auch Android mit einem einzigen Codebase zu unterstützen.

Wichtige Aktivitäten:

  • Architekturentwurf: Erstellung der Softwarearchitektur, die die Basis für das System bildet.
  • Datenmodellierung: Gestaltung des Datenmodells, das die Datenstruktur der Anwendung definiert.
  • Schnittstellendesign: Definition der Schnittstellen und Kommunikationsprotokolle zwischen verschiedenen Systemen und Modulen.
  • UI/UX-Design: Gestaltung der Benutzeroberfläche und Benutzererfahrung, um sicherzustellen, dass die Anwendung benutzerfreundlich und ansprechend ist.
  • Prototyping: Erstellung von Prototypen oder Mockups, um das Design zu visualisieren und Feedback von Stakeholdern zu erhalten.

Diese Informationen und Dokumente aus der Entwurfsphase sind entscheidend für den Übergang zur Implementierungsphase, da sie den Entwicklern klare Anweisungen und eine strukturierte Vorlage für die Entwicklung der Software geben. In der Phase „Implementierung (Implementation or Coding)“ des Software Development Lifecycle (SDLC) wird das Softwaredesign in funktionierenden Code umgewandelt. In dieser Phase setzen Entwickler die zuvor entworfenen Pläne um und erstellen die eigentliche Software. Hier sind die wichtigen Informationen, Dokumente und Aktivitäten, die in dieser Phase benötigt, verarbeitet und erstellt werden:

1. Benötigte Informationen:

  • Design-Dokumentation:

    • Die detaillierten Design-Dokumente aus der Entwurfsphase, einschließlich Softwarearchitektur, Datenmodell, Modul- und Komponentenspezifikationen sowie API-Spezifikationen.
    • Beispiel: Entwickler verwenden das Softwarearchitekturdokument, um den Aufbau der App zu verstehen, und die API-Spezifikationen, um externe und interne Schnittstellen zu implementieren.
  • Programmierrichtlinien und -standards:

    • Unternehmens- oder projektweite Richtlinien und Standards für das Schreiben von Code, einschließlich Namenskonventionen, Code-Formatierung, Kommentarregeln und Best Practices.
    • Beispiel: Eine Coding-Styleguide, der die Verwendung von Tabs vs. Spaces, die Benennung von Variablen und Klassen sowie die Struktur von Funktionen und Methoden regelt.
  • Technische Dokumentation zu verwendeten Frameworks und Tools:

    • Dokumentation und Anleitungen für die Entwicklungsumgebungen, Frameworks, Bibliotheken und Tools, die im Projekt verwendet werden.
    • Beispiel: Die Dokumentation zu React oder Angular für die Entwicklung der Frontend-Komponenten oder zu Spring Boot für das Backend.
  • Quellcodeverwaltung:

    • Zugriff auf das Versionskontrollsystem (z.B. Git), in dem der Quellcode gespeichert und verwaltet wird, sowie Richtlinien für das Branching, Merging und Versioning.
    • Beispiel: Ein Git-Repository mit einer definierten Branching-Strategie, wie „feature branches“ und „release branches“.

2. Verarbeitete Informationen:

  • Implementierungsanforderungen:

    • Die Anforderungen aus den Design-Dokumenten werden in Code umgesetzt. Dabei müssen die Entwickler die Funktionalität und die nicht-funktionalen Anforderungen (z. B. Leistung, Sicherheit) berücksichtigen.
    • Beispiel: Die in der Entwurfsphase definierten Module und Klassen werden implementiert, wobei der Code so geschrieben wird, dass er den festgelegten Anforderungen und Spezifikationen entspricht.
  • Fehlermanagement und Debugging:

    • Während der Implementierung werden Fehler identifiziert, analysiert und behoben. Dies umfasst das Testen einzelner Komponenten (Unit Testing) und das Debugging.
    • Beispiel: Ein Entwickler stellt fest, dass eine bestimmte API-Aufrufsequenz unerwartete Ergebnisse liefert, und nutzt Debugging-Tools, um das Problem zu identifizieren und zu beheben.
  • Refactoring:

    • Der Code wird optimiert und umstrukturiert, um die Qualität, Lesbarkeit und Wartbarkeit zu verbessern, ohne die äußere Funktionalität zu ändern.
    • Beispiel: Ein Entwickler vereinfacht eine komplexe Funktion, indem er redundanten Code entfernt und die Logik klarer strukturiert.

3. Erstellte Dokumente:

  • Quellcode:

    • Der entwickelte Code, der die Funktionen und Anforderungen der Software umsetzt. Dieser wird in einer Versionskontrollplattform verwaltet.
    • Beispiel: Implementierung der Benutzerregistrierung und -anmeldung, basierend auf den Spezifikationen aus der Entwurfsphase.
  • Technische Dokumentation:

    • Dokumentation des Codes, einschließlich Kommentare im Code, README-Dateien, Installationsanleitungen, und technischen Beschreibungen, die für die Wartung und Erweiterung der Software notwendig sind.
    • Beispiel: Eine README-Datei, die beschreibt, wie das Projekt aufgebaut, getestet und ausgeführt wird, sowie Kommentare im Code, die die Funktionsweise kritischer Abschnitte erklären.
  • Unit-Test-Cases:

    • Tests, die entwickelt werden, um einzelne Funktionen und Module zu überprüfen. Diese Unit-Tests sind entscheidend für die Sicherstellung der Code-Qualität.
    • Beispiel: Ein Satz von Unit-Tests für die Funktionen der Produktsuche, um sicherzustellen, dass sie die erwarteten Ergebnisse liefern und Fehler korrekt behandeln.
  • Build- und Deployment-Skripte:

    • Skripte, die den Prozess des Kompilierens, Testens und Deployments der Software automatisieren.
    • Beispiel: Ein Jenkins-Skript, das die Anwendung automatisch kompiliert, Unit-Tests durchführt und die Anwendung auf einem Testserver bereitstellt.
  • Versionskontroll-Protokolle:

    • Protokolle und Änderungsverläufe im Versionskontrollsystem, die alle Änderungen, Commits und Merge-Aktivitäten dokumentieren.
    • Beispiel: Git-Commit-Nachrichten, die beschreiben, welche Änderungen in welchem Codeabschnitt vorgenommen wurden und warum.

Wichtige Aktivitäten:

  • Codierung: Entwicklung der Software gemäß den Spezifikationen aus der Entwurfsphase.
  • Unit-Testing: Schreiben und Ausführen von Tests für einzelne Codeeinheiten, um sicherzustellen, dass sie korrekt funktionieren.
  • Code-Reviews: Überprüfung des Codes durch andere Entwickler, um sicherzustellen, dass er den Qualitätsstandards entspricht und keine Fehler enthält.
  • Fehlerbehebung: Identifizierung und Behebung von Fehlern, die während der Implementierung entdeckt werden.
  • Versionierung: Verwaltung des Quellcodes und der Fortschritte im Versionskontrollsystem.

Die Implementierungsphase ist der Kern der Softwareentwicklung, in der die theoretischen Entwürfe in funktionierende Software umgesetzt werden. Die in dieser Phase erstellten Artefakte bilden die Grundlage für die folgenden Phasen, insbesondere für das Testen und die Integration. In der Phase „Testen (Testing)“ des Software Development Lifecycle (SDLC) wird die entwickelte Software auf ihre Qualität und Funktionsfähigkeit geprüft. Ziel ist es, sicherzustellen, dass die Software den spezifizierten Anforderungen entspricht und frei von Fehlern ist. Hier sind die wichtigen Informationen, Dokumente und Aktivitäten, die in dieser Phase benötigt, verarbeitet und erstellt werden:

1. Benötigte Informationen:

  • Anforderungsdokumentation:

    • Detaillierte Anforderungen aus der Anforderungsanalyse, die als Grundlage für die Testfälle dienen. Diese Dokumente beschreiben, was die Software leisten soll.
    • Beispiel: Die Anforderungen zur Produktsuche und zur Anmeldung in der App werden als Basis verwendet, um zu prüfen, ob diese Funktionen wie gewünscht arbeiten.
  • Design-Dokumentation:

    • Die Softwarearchitektur und das Design, das während der Entwurfsphase erstellt wurde, um zu verstehen, wie die Software aufgebaut ist und wie die einzelnen Komponenten zusammenarbeiten.
    • Beispiel: Das Verständnis der Datenbankstruktur hilft bei der Erstellung von Tests, die sicherstellen, dass Daten korrekt gespeichert und abgerufen werden.
  • Implementierungsdokumentation:

    • Technische Dokumentation und Quellcode, die von den Entwicklern während der Implementierungsphase erstellt wurden, um zu verstehen, wie die Software intern funktioniert.
    • Beispiel: Kommentare im Code und die README-Datei werden genutzt, um spezifische Testfälle für komplexe Funktionen zu erstellen.
  • Testpläne und Teststrategien:

    • Vorab definierte Pläne und Strategien, die festlegen, welche Arten von Tests durchgeführt werden, welche Bereiche der Software getestet werden sollen und welche Methoden verwendet werden.
    • Beispiel: Ein Testplan, der die Durchführung von Unit-Tests, Integrationstests und Systemtests vorsieht, sowie eine Strategie für die Testautomatisierung.

2. Verarbeitete Informationen:

  • Testfälle und Testszenarien:

    • Detaillierte Szenarien und Anweisungen, die beschreiben, wie die Software getestet werden soll. Diese basieren auf den Anforderungen und dem Design und decken verschiedene Anwendungsszenarien ab.
    • Beispiel: Ein Testfall für die Anmeldung eines Benutzers prüft, ob ein Nutzer sich mit korrekten Anmeldedaten erfolgreich einloggen kann und ob bei falschen Daten eine Fehlermeldung angezeigt wird.
  • Testergebnisse und Fehlerberichte:

    • Ergebnisse der durchgeführten Tests, einschließlich dokumentierter Fehler und deren Reproduzierbarkeit. Diese Informationen werden genutzt, um die Qualität der Software zu beurteilen und notwendige Korrekturen vorzunehmen.
    • Beispiel: Ein Fehlerbericht dokumentiert, dass die Suchfunktion bei bestimmten Eingaben falsche Ergebnisse liefert, einschließlich der Schritte zur Reproduktion des Fehlers.
  • Rückverfolgbarkeitsmatrix:

    • Ein Dokument, das sicherstellt, dass alle Anforderungen durch entsprechende Tests abgedeckt sind. Es verbindet Anforderungen mit Testfällen und Testergebnissen.
    • Beispiel: Die Rückverfolgbarkeitsmatrix zeigt, dass die Anforderung „Benutzer muss sich registrieren können“ durch mehrere Testfälle abgedeckt wird, die verschiedene Aspekte der Registrierung testen.

3. Erstellte Dokumente:

  • Testprotokolle:

    • Detaillierte Aufzeichnungen der durchgeführten Tests, die die Testergebnisse, aufgetretene Fehler und deren Behebung dokumentieren.
    • Beispiel: Ein Testprotokoll dokumentiert die Ergebnisse des Integrationstests der Zahlungsabwicklung, einschließlich aller durchgeführten Transaktionen und auftretenden Fehlern.
  • Fehlerberichte (Bug Reports):

    • Berichte, die aufgetretene Fehler detailliert beschreiben, einschließlich Informationen zur Reproduzierbarkeit, Schwere und Priorität des Fehlers.
    • Beispiel: Ein Bug Report dokumentiert, dass die App abstürzt, wenn der Nutzer auf den „Kaufen“-Button klickt, und gibt die genauen Schritte zur Reproduktion an.
  • Testzusammenfassungen und Abschlussberichte:

    • Zusammenfassungen der Testergebnisse, die die Gesamtqualität der Software bewerten und aufzeigen, ob die Software bereit für den Einsatz ist.
    • Beispiel: Ein Testabschlussbericht fasst zusammen, dass alle kritischen Fehler behoben wurden und die Software die Anforderungen erfüllt, empfiehlt aber noch weitere Performance-Optimierungen.
  • Akzeptanztestberichte:

    • Berichte, die die Ergebnisse von Tests zusammenfassen, die von Endnutzern oder Stakeholdern durchgeführt wurden, um sicherzustellen, dass die Software ihre Anforderungen erfüllt.
    • Beispiel: Ein Akzeptanztestbericht, der bestätigt, dass die Software die festgelegten Geschäftsanforderungen erfüllt und für den Produktivbetrieb freigegeben werden kann.
  • Automatisierte Testskripte:

    • Skripte, die zur Automatisierung von Tests erstellt werden, insbesondere bei wiederkehrenden Tests wie Regressionstests.
    • Beispiel: Ein automatisiertes Testskript, das die wichtigsten Workflows in der App simuliert und regelmäßig ausgeführt wird, um sicherzustellen, dass neue Änderungen keine bestehenden Funktionen beeinträchtigen.

Wichtige Aktivitäten:

  • Testplanung: Definieren, welche Tests durchgeführt werden und wie diese organisiert sind.
  • Testdurchführung: Ausführen der geplanten Testfälle, sowohl manuell als auch automatisiert.
  • Fehleridentifikation und -analyse: Erkennen und Analysieren von Fehlern, die während des Testens auftreten.
  • Fehlerbehebung und Re-Testing: Korrigieren der gefundenen Fehler und erneutes Testen, um sicherzustellen, dass die Korrekturen erfolgreich sind und keine neuen Probleme verursachen.
  • Regressionstests: Überprüfen, dass neue Änderungen keine bestehenden Funktionen beeinträchtigen.

Die Testphase stellt sicher, dass die Software stabil, zuverlässig und bereit für den Einsatz ist, indem sie systematisch auf Fehler und Probleme geprüft wird. Die in dieser Phase erstellten Dokumente sind entscheidend für die Qualitätssicherung und liefern wertvolle Informationen für die endgültige Freigabe und den Betrieb der Software. In der Phase „Bereitstellung (Deployment)“ des Software Development Lifecycle (SDLC) wird die entwickelte und getestete Software in die Produktionsumgebung überführt und für die Endbenutzer bereitgestellt. Diese Phase umfasst auch das Setup der notwendigen Infrastruktur und die Vorbereitung der Software für den produktiven Einsatz. Hier sind die wichtigen Informationen, Dokumente und Aktivitäten, die in dieser Phase benötigt, verarbeitet und erstellt werden:

1. Benötigte Informationen:

  • Freigabedokumentation (Release Notes):

    • Eine Übersicht über die Änderungen und Neuerungen der Softwareversion, die für die Bereitstellung freigegeben wird. Sie enthält auch bekannte Probleme und Versionshinweise.
    • Beispiel: Ein Dokument, das die neuen Funktionen, behobenen Fehler und etwaige Einschränkungen der Version 1.0 der App beschreibt.
  • Systemanforderungen und -spezifikationen:

    • Technische Anforderungen an die Hardware und Software der Produktionsumgebung, wie Serverkonfigurationen, Datenbankanforderungen und Betriebssysteme.
    • Beispiel: Angaben über die benötigte Serverkapazität, den Speicherbedarf und die Betriebssystemversion, die zur Ausführung der Software erforderlich sind.
  • Deployment-Pläne und -Strategien:

    • Detaillierte Pläne, die den Bereitstellungsprozess beschreiben, einschließlich der Reihenfolge der Schritte, Rollback-Strategien und Notfallpläne.
    • Beispiel: Ein Plan, der beschreibt, wie die Software zuerst auf einem Testserver bereitgestellt wird, gefolgt von einer schrittweisen Einführung in der Produktionsumgebung.
  • Infrastruktur- und Netzwerkanforderungen:

    • Informationen über die Netzwerkarchitektur, Firewalls, Load Balancer und andere Infrastrukturkomponenten, die für die Bereitstellung der Software notwendig sind.
    • Beispiel: Dokumentation der notwendigen Firewall-Regeln und die Konfiguration des Load Balancers, um sicherzustellen, dass der Datenverkehr korrekt verteilt wird.
  • Benutzerdokumentation:

    • Anleitungen und Handbücher, die den Endbenutzern helfen, die Software effektiv zu nutzen. Diese können auch Schulungsunterlagen umfassen.
    • Beispiel: Ein Benutzerhandbuch für Administratoren, das erklärt, wie neue Benutzer angelegt und Berechtigungen verwaltet werden.

2. Verarbeitete Informationen:

  • Konfigurationsdaten:

    • Einstellungen und Parameter, die die Software an die Produktionsumgebung anpassen, wie Datenbankverbindungen, API-Schlüssel und andere Umgebungsvariablen.
    • Beispiel: Konfigurationsdateien, die die Verbindungen zur Produktionsdatenbank festlegen, im Gegensatz zu denen, die in der Entwicklungs- oder Testumgebung verwendet wurden.
  • Test- und Validierungsdaten:

    • Ergebnisse aus dem Pre-Deployment-Testing, wie z.B. Staging-Tests oder Nutzerakzeptanztests, die sicherstellen, dass die Software bereit für die Produktionsumgebung ist.
    • Beispiel: Berichte, die bestätigen, dass die Software auf der Staging-Umgebung ohne Fehler funktioniert und alle Tests erfolgreich abgeschlossen wurden.
  • Lizenz- und Compliance-Informationen:

    • Informationen über Softwarelizenzen und Compliance-Anforderungen, die in der Produktionsumgebung eingehalten werden müssen.
    • Beispiel: Ein Lizenzdokument für die verwendete Datenbanksoftware, das die zulässige Anzahl von Benutzern oder Servern definiert.

3. Erstellte Dokumente:

  • Deployment-Skripte:

    • Automatisierte Skripte, die den Bereitstellungsprozess durchführen, einschließlich der Installation, Konfiguration und Start der Software in der Produktionsumgebung.
    • Beispiel: Ein Shell-Skript, das die Anwendung auf dem Produktionsserver installiert, alle notwendigen Datenbankmigrationen durchführt und die Dienste startet.
  • Release-Dokumentation:

    • Detaillierte Beschreibung der bereitgestellten Softwareversion, einschließlich aller implementierten Änderungen und behobenen Fehler.
    • Beispiel: Ein Release-Dokument, das die neuen Features und Bugfixes der veröffentlichten Softwareversion 2.1 auflistet.
  • Konfigurationsdokumentation:

    • Dokumente, die die Konfiguration der Software in der Produktionsumgebung beschreiben, einschließlich spezifischer Umgebungsparameter.
    • Beispiel: Ein Dokument, das beschreibt, welche Konfigurationsdateien angepasst wurden und welche Parameter gesetzt wurden, um die Software in der Produktionsumgebung korrekt zu betreiben.
  • Betriebsdokumentation:

    • Anleitungen für den Betrieb der Software in der Produktionsumgebung, einschließlich Wartungspläne, Monitoring, Backup-Strategien und Incident-Management-Prozesse.
    • Beispiel: Ein Betriebsleitfaden, der beschreibt, wie die Systemadministratoren die Anwendung überwachen, regelmäßig Backups durchführen und im Falle eines Ausfalls reagieren sollen.
  • Übergabedokumentation:

    • Dokumentation, die die Software an das Betriebsteam übergibt, einschließlich aller notwendigen Informationen, um die Software im laufenden Betrieb zu unterstützen.
    • Beispiel: Eine Übergabedokumentation, die eine Zusammenfassung der Architektur, der wichtigsten Systemfunktionen und der Wartungsprozesse für das Betriebsteam enthält.
  • Schulungsunterlagen:

    • Material, das dazu dient, Benutzer und Administratoren auf die Nutzung und Verwaltung der Software vorzubereiten.
    • Beispiel: Ein Schulungshandbuch für Endbenutzer, das Schritt-für-Schritt-Anleitungen zur Nutzung der neuen Softwarefunktionen enthält.

Wichtige Aktivitäten:

  • Bereitstellung der Software: Installation und Konfiguration der Software in der Produktionsumgebung.
  • Konfigurationsmanagement: Anpassen der Softwareeinstellungen an die Produktionsumgebung.
  • Pre-Deployment-Tests: Letzte Tests, um sicherzustellen, dass die Software in der Produktionsumgebung einwandfrei funktioniert.
  • Go-Live: Aktivierung der Software für die Endbenutzer.
  • Überwachung und Validation: Monitoring der Software nach der Bereitstellung, um sicherzustellen, dass sie stabil läuft und alle Funktionen wie erwartet arbeiten.
  • Schulung: Durchführung von Schulungen für Endbenutzer und Administratoren, um den Umgang mit der neuen Software zu erleichtern.

Die Bereitstellungsphase ist entscheidend, um sicherzustellen, dass die Software korrekt und reibungslos in die Produktionsumgebung überführt wird, und dass alle notwendigen Maßnahmen getroffen werden, um den Betrieb und die Wartung der Software sicherzustellen. Die in dieser Phase erstellten Dokumente und Informationen bilden die Grundlage für den erfolgreichen langfristigen Betrieb der Software. In der Phase „Wartung (Maintenance)“ des Software Development Lifecycle (SDLC) wird die Software nach ihrer Bereitstellung kontinuierlich überwacht, gepflegt und bei Bedarf aktualisiert. Die Wartungsphase stellt sicher, dass die Software über ihre Lebensdauer hinweg korrekt funktioniert und auf sich ändernde Anforderungen, Fehlerbehebungen und Optimierungen reagiert. Hier sind die wichtigen Informationen, Dokumente und Aktivitäten, die in dieser Phase benötigt, verarbeitet und erstellt werden:

1. Benötigte Informationen:

  • Vorherige Release-Dokumentation:

    • Dokumentation früherer Versionen der Software, einschließlich Release Notes, Änderungsprotokollen und Konfigurationsdetails.
    • Beispiel: Dokumente, die beschreiben, welche Funktionen in den letzten Updates hinzugefügt oder geändert wurden und welche bekannten Probleme bestehen.
  • Fehlerberichte und Problem-Tickets:

    • Eingehende Berichte über Probleme oder Fehler, die von Benutzern oder Monitoring-Systemen identifiziert wurden.
    • Beispiel: Ein Ticket in einem Issue-Tracking-System wie Jira, das einen Fehler beschreibt, der bei der Anmeldung auftritt und bei dem sich das Problem reproduzieren lässt.
  • Benutzerrückmeldungen und Support-Anfragen:

    • Feedback von Endbenutzern zur Software, das zur Identifizierung von Verbesserungsmöglichkeiten oder notwendigen Korrekturen verwendet wird.
    • Beispiel: Benutzerfeedback, das darauf hinweist, dass eine bestimmte Funktion langsam ist oder Schwierigkeiten bei der Bedienung bereitet.
  • Monitoring- und Performance-Daten:

    • Echtzeit- und historische Daten zur Leistung der Software, die von Monitoring-Tools erfasst werden. Diese Daten helfen bei der Erkennung von Leistungsengpässen oder Systemfehlern.
    • Beispiel: Überwachungsberichte, die zeigen, dass die Datenbankzugriffe zu Spitzenzeiten langsamer werden, was auf ein Skalierungsproblem hinweist.
  • Vertrags- und Service-Level-Agreements (SLAs):

    • Verträge und Vereinbarungen, die die Anforderungen an Verfügbarkeit, Reaktionszeiten und Support-Level festlegen.
    • Beispiel: Ein SLA, das garantiert, dass kritische Fehler innerhalb von 4 Stunden behoben werden müssen.

2. Verarbeitete Informationen:

  • Fehleranalyse und Debugging-Informationen:

    • Technische Analyse von Fehlern und Problemen, um deren Ursachen zu identifizieren und Lösungen zu entwickeln.
    • Beispiel: Eine Analyse, die zeigt, dass ein Fehler durch einen bestimmten Codeabschnitt verursacht wird, der bei einer hohen Anzahl gleichzeitiger Benutzer fehlschlägt.
  • Änderungsanforderungen (Change Requests):

    • Anforderungen für Änderungen oder neue Features, die aufgrund von Benutzeranforderungen, Geschäftsentscheidungen oder identifizierten Problemen gestellt werden.
    • Beispiel: Ein Change Request, der verlangt, dass die Software auf eine neue Version einer zugrunde liegenden Bibliothek aktualisiert wird, um Sicherheitslücken zu schließen.
  • Konfigurationsänderungen:

    • Anpassungen der Software- oder Infrastrukturkonfiguration, die zur Lösung von Problemen oder zur Optimierung der Leistung notwendig sind.
    • Beispiel: Änderungen an den Servereinstellungen, um die Skalierbarkeit der Anwendung zu verbessern, nachdem ein Performance-Problem festgestellt wurde.

3. Erstellte Dokumente:

  • Wartungsprotokolle:

    • Detaillierte Aufzeichnungen aller durchgeführten Wartungsarbeiten, einschließlich Fehlerbehebungen, Updates und Konfigurationsänderungen.
    • Beispiel: Ein Wartungsprotokoll, das dokumentiert, wann ein kritischer Fehler behoben wurde, welche Schritte unternommen wurden und wie das System nach der Korrektur getestet wurde.
  • Aktualisierte Benutzer- und Systemdokumentation:

    • Aktualisierte Dokumentation, die alle Änderungen an der Software beschreibt, einschließlich neuer oder geänderter Funktionen und Konfigurationen.
    • Beispiel: Eine aktualisierte Bedienungsanleitung, die neue Funktionen nach einem Update beschreibt, oder eine geänderte Systemdokumentation, die neue Konfigurationsparameter beinhaltet.
  • Fehler- und Änderungsberichte:

    • Dokumente, die die Details zu behobenen Fehlern und implementierten Änderungen beschreiben. Diese Berichte werden oft mit neuen Versionen der Software veröffentlicht.
    • Beispiel: Ein Änderungsbericht, der eine Liste von Fehlerbehebungen und neuen Features enthält, die in einer Wartungsversion (z.B. 2.0.1) eingeführt wurden.
  • Monitoring- und Performance-Berichte:

    • Regelmäßige Berichte über die Systemleistung und die Verfügbarkeit der Software, die verwendet werden, um potenzielle Probleme frühzeitig zu erkennen.
    • Beispiel: Ein monatlicher Performance-Bericht, der zeigt, dass die Antwortzeiten der Webanwendung im Durchschnitt zugenommen haben, was auf ein Optimierungsbedarf hindeutet.
  • Backup- und Wiederherstellungspläne:

    • Dokumentation der Backup-Strategien und Pläne für die Wiederherstellung der Software im Falle eines Ausfalls.
    • Beispiel: Ein aktualisierter Backup-Plan, der beschreibt, wie oft Daten gesichert werden und wie das System nach einem schwerwiegenden Vorfall wiederhergestellt werden kann.
  • Versionsverwaltung und Patch-Dokumentation:

    • Verwaltung von Softwareversionen und Dokumentation der installierten Patches und Updates.
    • Beispiel: Eine Versionsübersicht, die zeigt, welche Patches in welcher Reihenfolge auf die Produktionsumgebung angewendet wurden und welche Probleme diese Patches behoben haben.

Wichtige Aktivitäten:

  • Fehlerbehebung (Bug Fixing): Identifizieren und Beheben von Fehlern, die nach der Bereitstellung auftreten.
  • Software-Updates und -Upgrades: Einspielen von Software-Updates, Patches und neuen Versionen, um Fehler zu beheben oder neue Funktionen hinzuzufügen.
  • Präventive Wartung: Regelmäßige Überprüfungen und Anpassungen, um die Software stabil und sicher zu halten, bevor Probleme auftreten.
  • Support und Benutzerhilfe: Bereitstellung von Unterstützung für Endbenutzer, um Fragen zu beantworten und Probleme zu lösen.
  • Überwachung und Performance-Tuning: Kontinuierliches Monitoring der Software und Anpassung der Performance, um eine optimale Nutzung zu gewährleisten.
  • Dokumentationspflege: Aktualisieren aller relevanten Dokumente, um sicherzustellen, dass sie den aktuellen Stand der Software und ihrer Umgebung widerspiegeln.

Die Wartungsphase ist entscheidend, um sicherzustellen, dass die Software über ihre gesamte Lebensdauer hinweg den Anforderungen entspricht, zuverlässig bleibt und auf neue Herausforderungen reagieren kann. Die in dieser Phase erstellten und verwalteten Dokumente und Informationen sind zentral für die kontinuierliche Verbesserung und den langfristigen Erfolg der Software.