ist die Disziplin zur systematischen Entwicklung einer vollständigen, konsistenten und eindeutigen Spezifikation, in der beschrieben wird, was ein Software-gestütztes Produkt tun soll, und die als Grundlage für Vereinbarungen zwischen allen Betroffenen dient.
Requirements-Engineering im
Software-Entwicklungsprozess
Einbettung im Wasserfallmodell
Wasserfall-Modell
Einbettung im
Unified
Process
Unified Process
Anwendungsfall getrieben
Architektur zentriert
iterativ und inkrementell
Einbettung in die agile
Software-Entwicklung
Process
Models
eXtreme Programming
Anforderungsmanagement in XP
Anforderungs-Dokumente
User
Stories
Akzeptanztest (Customer Test)
Planungsspiel
Untersuchungsphase
Task
Card
Verpflichtungsphase
Ziel: Auswahl und Verteilung der
Implementierungsaufgaben
Steuerungsphase
Planung anpassen (Recovery)
Story
verifizieren
Requirements Engineering
und Management Prozess
Beteiligte
Stakeholder
Stakeholder-Rollen
Auftraggeber
Anwender
Entwickler
weitere Stakeholder
Projektgegner
Betriebsrat
Gesetzgeber
Dokumente
Inputs
Systemdomäne
Wünsche der Stakeholder
Organisationsstandards
allgemeine Regeln
Aufgabe des Reverse-Engineers
Erhebung, Sichtung und Analyse
Output: Anforderungsdefinition
Verwendung der
Anforderungsdefinition
Reduktion des
Entwicklungsaufwands
Validierung und
Verifikation
Kostenschätzung
und Terminplanung
Erweiterung
Annotations:
- Anforderungsdefinition dokumentiert
- Projektziele,
- realisierte Eigenschaften und
- noch zu realisierende Eigenschaften
- Anforderungsdefinition liefert Ausgangspunkte für die
Erweiterung des System
Anforderungsdefinition
Referenzgliederung
1. Einführung
1.1 Zielsetzung des Dokuments
1.2 Vision, Produktziel
1.3 Definitionen, Akronyme und Abkürzungen
1.4 Referenzen
1.5 Überblick
2. Allgemeine Beschreibung
2.1 Produkt-Einbettung
2.2 Produkt-Funktionen
2.3 Anforderungen an die Benutzer
2.4 Allgemeine Rahmenbedingungen
2.5 Annahmen und Abhängigkeiten
2.6 weitere Anforderungen
3. Spezifische Anforderungen
3.1 Funktionale Anforderungen
3.2 Leistungsanforderungen (Performance)
3.3 Schnittstellenanforderungen
3.4 Datenbankanforderungen
3.5 Entwurfsanforderungen
3.6 Qualitätsanforderungen
präzise wie möglich sein
in der Terminologie der Leser
fachlichen und technischen
Hintergrund der intendierten
Leser angemessen sein
kompatibel zu anderen
Anforderungsbeschreibungen
Bestandteile der SRS
Annotations:
Software Requirements Specification
Vision
Machbarkeitsstudie
Systemumgebung
Domänenmodell
Anwendungsfallmodell
Anforderungsliste
(vereinbarte
Anforderungen)
funktionale Anforderungen
nicht-funktionale Anforderungen
Anforderungen an den
Entwicklungsprozess und die
Entwicklungsumgebung
Prototypen
Glossar
Aktivitäten
Anwendungsdomäne verstehen
Anforderungen erheben
Anforderungen ermitteln
Anforderungen dokumentieren
Anforderungen validieren
Anforderungen verhandeln
Anforderungen verabschieden
Anforderungen managen
Anforderungsänderungen ermitteln
Auswirkungen der
Anforderungsänderungen
abschätzen
gemeinsames Verständnis aller
Stakeholder über
Anforderungsänderungen erwirken
Anwendungsdomäne
verstehen
Vision erstellen
Problem erheben
Problem verhandeln
Problem
beschreiben
Grobgliederung
Checkliste
Kreativitätstechniken
Mind-Mapping
SENSE Mindmap
Wechsel der Perspektive
Collective Notebook
6-3-5-Methode
Systemumgebung dokumentieren
Rahmenbedingungen ermitteln
Techniken: Dokumentenstudium
Systemgrenzen festlegen
System
Annotations:
ist ein von anderen "Dingen" klar abgrenzbares "Ding"
o fasst Teile (Teilsysteme, Systemkomponenten) zusammen,
die in verschiedenen Beziehungen zueinander stehen
Softwaresysteme sollten zunächst
auf System-Ebene (statt
Technik-Ebene) betrachtet werden
Probleme
System lässt sich nicht klar abgrenzen
Vorgehen zur System-Abgrenzung
inside-out
outside-in
Domänen-Modell erstellen
Anwendungsfälle
Anwendungsfälle erheben
1 Akteure identifizieren
und beschreiben
2 Anwendungsfälle
identifizieren und beschreiben
3 Beziehungen zwischen Akteuren
und Anwendungsfällen beschreiben
4 Anwendungsfälle konkretisieren
5 Anwendungsfälle verfeinern
Anwendungsfall-
Diagramm
Anwendungsfall – Tabelle
Kontextdiagramme
Machbarkeitsstudie erstellen
Stakeholder identifizieren
Identifizieren aller relevanter Stakeholdergruppen
Auswahl von geeigneten
Ansprechpartnern aus allen
Stakeholdergruppen
Motivation der ausgewählten Stakeholder
Stakeholder-Liste
Stakeholder-Relationship Management
Anforderungen
erheben
Anforderungen ermitteln
funktionale Anforderungen ermitteln
nicht-funktionale Anforderungen ermitteln
Anforderungen sammeln
Befragung
Interview
Vorgehen
1. Befragung vorbereiten
2. Befragung einleiten
3. Befragung durchführen
4. Befragung beenden
5. Befragung nachbereiten
Fragen
Entwurf der Fragen
Hinweise zum Fragestellen
Fragestil
weiche Nachfragen und häufige Bestätigung
schnelle, aggressive Fragen
Anforderung an Interviewer
Hilfsmittel
Frageleitfaden
dient zur Strukturierung
von Intensiv-Interviews
Ziel nicht aus den
Augen zu verlieren
Vollständigkeit des Interviews
Ergebnisse zusammenfassen und validieren
Annahmen des Interviewers überprüfen
Protokoll
fasst die Ergebnisse des Interviews zusammen
Standarddaten
Befragungsergebnisse
Befragung mit Fragebogen
Bestätigung bereits vorhandener Erkenntnisse
Ermittlung des Funktionsumfangs vorhandener Systeme
Ermittlung von Priorisierungen für Weiterentwicklungen
Beobachtung
Apprenticing
Arbeitsabläufe detailliert erheben
Arbeitsumgebung im Detail erkennen
Regeln
Vertrauen zu den Beobachteten herstellen
sehr gute Mitarbeiter beobachten
Mitarbeiter befragen
Verhalten reflektieren
Beobachtung durch "Externe" durchführen
Beobachtungen für die weitere Auswertung regelmäßig notieren
Brainstorming
Anforderungen konkretisieren
Szenario-Methode
Grundsätzlicher Ablauf
1. Akteure identifizieren und beschreiben
2. Anwendungsfälle identifizieren und beschreiben
3. Beziehungen zwischen
Akteuren und Anwendungsfällen
beschreiben
4. Anwendungsfälle konkretisieren
5. Anwendungsfälle verfeinern
ermöglicht Anforderungserhebung
entlang konkreter Abläufe in der Welt
der Anwender
ermöglicht intensive Einbeziehung der Anwender
erlaubt (zeitliche, logische) Ordnung von Anforderungen
zwingt Entwickler zur Systembetrachtung
aus Sicht der Anwender
dient als Ausgangspunkt in weiteren
Workflows der Software- Entwicklung
Anforderungen dokumentieren
Have we got the right requirements?
Anfoderungen validieren
Anforderungen und Anforderungsdokument auf
Einhalten der Qualitätskriterien überprüfen
Have we got the requirements right?
Inputs
Anforderungsdokument
Standards
Wissen über Organisation
Output
Problemliste
vereinbarte Aktionen
Annotations:
Aktionen zur Beseitigung der Unvollständigkeiten
und Inkonsistenzen
Fehler in Anforderungen
unklare Anforderungen
fehlende Anforderungen
unrealistische Anforderungen
konfliktäre Anforderungen
Qualitätskriterien
Qualitätskriterien für einzelne Anforderungen
Korrektheit
Verständlichkeit
Eindeutigkeit
Konsistenz
Vollständigkeit
Notwendigkeit
Verfolgbarkeit (Traceability)
Testbarkeit (Überprüfbarkeit)
Realisierbarkeit
Qualitätskriterien für Anforderungsdokumente
Vollständigkeit
Konsistenz
Änderbarkeit/Erweiterbarkeit
Sortierbarkeit
Anforderungen verhandeln
und verabschieden
Probleme
Stakeholder sind nicht mit
dem/Teilen des
Anforderungsdokuments
einverstanden
Anforderungen der
Stakeholder
widersprechen sich
Anforderungen werden von verschiedenen
Stakeholdern unterschiedlich priorisiert
Koflikte
... sind der Normalfall
Techniken zur Konflikt-Beseitigung
Einigung
Ober sticht Unter
Abstimmung
Geringstes Übel
Kompromiss
Konfigurierbarkeit
Anforderungen
managen
Herausforderungen
Informationsaustausch
Workflow-Konzept
Transaktionsmanagement
Zugriffssteuerung
Controlling
Anforderungsänderungen ermitteln
Auswirkungen der
Anforderungsänderungen
abschätzen
gemeinsames Verständnis aller
Stakeholder über
Anforderungsänderungen erwirken
Anforderungsmanagement
... kontrolliert die Änderung von Anforderungen
... stellt Konsistenz der
Anforderungsdokumente sicher
... dokumentiert Stakeholder-spezifisch
alle Anforderungen und
Anforderungsdokumente
Verwalten und Ändern aller Informationen
über Anforderungen an
das Softwaresystem
über die Umsetzung
der Anforderungen
Gutes Anforderungsmanagement verbessert
die gesamte Projektdurchführung und damit
das Produkt durch ...
... Vereinfachung der Projektüberwachung
in allen Phasen durch Rückgriff auf den
Stand der Anforderungsbearbeitung
... Verbesserung der Qualität
der Anforderungen und
anforderungsbezogene
Software-Entwicklung