Prozess der Softwareentwicklung
Anforderungsdefinition
- Anforderungen ermitteln
- Anforderungen dokumentieren, beschreiben in natürlicher Sprache und erstellen von Anforderungsmodellen
- Anforderungen validieren und abstimmen, Prüfen anhand der Dokumentation und Spezifikation, Prüfen der Qualitätskriterien
- Anforderungen verwalten, Maßnahmen zu Strukturierung, Bestandsverwaltung
Ergebnisse
- Kundenanforderungen als User Stories oder Protokollen
- definierte Anwendungsfällle und Akteure
- funktionale Anforderungen
- Diagramme des Systems
- Oberflächen-Prototyp
- Pflichtenheft
Softwareentwurf
Analyse der Einsatzbedingungen, Umgebung und Randbedingungen
Entwurf der Systemarchitektur
System in Komponenten zerlegen
Spezikation des Funktions und Leistungsumfangs
Spezifikation des Verhaltens der Komponenten
Festlegung der Schnittstellen zwischen Systemkomponenten
Technisches Design der Anwendung
- Infrastruktur
- Entwicklungsumgebung
- Grobstruktur
Ergebnisse
Software-Architektur
Fragen:
- Wie soll die Software gebaut werden
- Wie wo wodurch werden funktionale Anforderungen umgesetzt
- Wie können nicht-funktionale Anforderungen erfüllt werden
Ergebnis
- Fachliches und technisches Design
- Leitfaden zur Implementierung
- Beispiele für nicht-funktionale Anforderungen
- Zuverlässigkeit, Fehlertoleranz
- Leistung und Effizienz, Antwortzeiten, Ressourcenbedarf
- Sicherheit, Datenintegrität, Verfügbarkeit, Vertraulichkeit
- Bedienarten, Technologievorgaben
Plan von Komponenten
strukturierte und hierarchische Anordnung der Komponenten
Software-Architektur
Implementierung
- Programmtechnische Umsetzung der Entwurfsergebnisse
- Umsetzung der Konzepte in Konstrukte
- Dokumentation der Problemlösung und der Implementierungsentscheidung
- Test und Verifikation der Programme einschließlich Testplanung und Testfallerstellung
- Prüfung des Zusammenwirkens der Systemkomponenten unter realen Bedingungen
Ergebnisse
- Quellprogramm
- Dokumentation
- Test-Protokolle
Testverfahren bzw. Teststufen
Komponententest
- elementare Programteile separat testen
Integrationstest
- Zusammenspiel zwischen zei oder mehreren Komponenten
- ob die Schnittstellen der Komponenten korrekt spezifiziert und implementiert wurden
Systemtest
- Funktionsfähigkeit des gesamten Systems
- entsprechend der Anforderungsspezifikationen
- Testfälle während der Anforderungsermittlung erstellt
- Performanz, Last, Stress und Robustheit
Abnahmetest
- in Zielumgebung unter realen Einsatzbedingungen
- Gebrauchstauglichkeit und äußere Qualität
Abnahme und Einführung
- Übergabe der Software und Dokumentation an Auftraggeber
- Durchführung von Abnahmetests
- Installation des Produktes in der Zielumgebung
- Schulung der Benutzer
- Inbetriebnahme
Ergebnisse
- Übergebene Software
- Abnahmeprotokoll