Zusammenfassung der Ressource
Requirements Engineering and
Management
- Grundlagen
- Motivation
- Probleme bei der Anforderungserhebung
- unklare Zielvorstellungen
- Hohe Problemkomplexität
- schlechte Anforderungsqualität
- ständig veränderte Ziele
und Anforderungen
- Kommunikation
- Fähigkeiten des Analytikers
- Stakeholder identifizieren
- gemeinsamen Terminologie schaffen
- Bewusstsein für Anforderungsdefinition schaffen
- Projektergebnisse präsentieren und erklären
- Soziale Spannungen erkennen und beseitigen
- Begriffe
- Requirements Engineering
Anmerkungen:
- 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
Anmerkungen:
- - 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
Anmerkungen:
- 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
Anmerkungen:
- 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
Anmerkungen:
- 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
- ... Erhöhung der Kundenzufriedenheit
- ... Reduzierung der Projektkosten
- ... Verbesserung der Teamkommunikation
- Exkurs: Schätzen