CPRE Flashcards
WAS IST REQUIREMENTS ENGINEERING (RE)?
-systematischer und disziplinierter Ansatz zur Spezifikation und Management von Anforderungen
-Stakeholder zufriedenstellen
-Risiko minimieren
-Kombination von Regeln und Elementen
WARUM BENÖTIGEN WIR REQUIREMENTS ENGINEERING?
-Lieferung von anspruchsgerechten Produkten und Qualitäten
-Ermöglichen konstruktiver Zusammenarbeit und Kundenzufriedenheit
-Vermeidung von impliziten Missverständnissen durch explizite Ziel-und Systemdefinition
-Reduzierung von Aufwand und Kosten
HAUPTTÄTIGKEITEN IM REQUIREMENTS ENGINEERING
-Anforderungs-Ermittlung: Quellen identifizieren, Prozess definieren, Relevante Anforderungen erheben
-Anforderungs-Dokumentation: Anforderungen explizit aufnehmen, Anforderungsspezifikation erstellen, Arbeitsprodukte verwalten
-Anforderungs-Validierung: Arbeitsprodukte prüfen, Akzeptanz und Abnahme sicherstellen, Fehler aufdecken und korrigieren
-Anforderungs-Management: Lifecycle Management, Versionierung und Konfiguration, Änderungskontrolle (CR)
Aufnehmen, aufschreiben, validieren, managen
WIE WENDEN WIR REQUIREMENTS ENGINEERING „RICHTIG“ AN?
-Keine universelle Prozessbeschreibung für „WANN“ und „WIE“ –> “it depends”
WO BENÖTIGEN WIR REQUIREMENTS ENGINEERING?
-Volatility - laufende Änderung der Anforderungen
-Uncertainty - mangelnde Einschätzbarkeit
-Complexity - Unvorhersehbarkeit
-Ambiguity - Wahrscheinliche Missverständnisse
SYMPTOME VON MANGELHAFTEM REQUIREMENTS ENGINEERING
-Fehlende oder unklare Anforderungen
-Kommunikationsprobleme
-fehlende Methodik
-schlechter Projektverlauf
WAS IST EIN “SYSTEM”?
Einzelne Elemente die für bestimmten Zweck koordiniert werden
System besteht aus
-Softwarekomponenten
-Physische Elemente
-Organisatorische Elemente
Grundtypen von Systemen
-Cyber-physische Systeme
-Sozio-technische Systeme (beinhaltet Personen und Regeln) z.B Filter von Hate-Speech bei Facebook
WAS IST EINE „ANFORDERUNG”?
-Bedürfnis (Warum?)
-Funktion (Was?)
-schriftliches Artefakt (Wo?)
Anforderungsspezifikation = systematische Sammlung von Anforderungen, die Qualitätskriterien des RE erfüllt
KLASSIFIKATION VON ANFORDERUNGEN
-Funktionale Anforderung (FR) - Beschreibung der Funktion (qualitativ) (FR/NFR erweitern, definieren, bedingen einander)
-Qualitäts-Anforderung (NFR) - metrische Anforderungen (quantitativ)
-Randbedingung - unveränderbar (schränken FR/NFR ein)
ROLLE UND AUFGABEN EINES REQUIREMENTS ENGINEER
- Haupttätigkeiten RE
- Definition von RE-Prozessen
- RE-Praktiken auswählen und anwenden
- Lücke zwischen Problem und potentiellen Lösungen überbrücken
ZUGRUNDELIEGENDE KOMPETENZEN VON REQUIREMENTS ENGINEERS
-Kommunikation und Moderation
-Analytisches Denken
-Empathie und reflektierende Kommunikation
-Neutralität und Konfliktlösungs-Fähigkeit
-Führungsstärke und Selbstvertrauen
-Überzeugungs-Fähigkeit und Motivation
STAKEHOLDER
Person oder Organisation die mit System in Verbindung steht
-Wichtigste Quelle für Anforderungen und Feedback
-Aktives Management von Erwartungen
WERTORIENTIERUNG -MEHRWERT ALS MAß FÜR ANFORDERUNGEN
-Anforderungen müssen Zweck erfüllen
-muss langfristig Wert schaffen
-Aufwand bemisst sich nach Auswirkungen wenn ich es nicht mache und Relevanz für Stakeholder
GEMEINSAMES VERSTÄNDNIS -IMPLIZIT UND EXPLIZIT
-Erfolgreiche Systementwicklung ist nicht möglich ohne gemeinsame Basis
-Explizites gemeinsames Verständnis - dokumentierte und vereinbarte Anforderungen (planbasierten Prozessen)
-Implizites gemeinsames Verständnis - gemeinsames Wissen über Bedürfnisse, Visionen, Kontext (Agile RE-Prozesse)
-gewisses Maß an implizites Wissen vorteilhaft
-Konzentration auf relevantes gemeinsames Verständnis
-Glossare, Prototypen und existierende Systeme als Bezugspunkt
KONTEXT –SYSTEME EXISTIEREN NIE ISOLIERT
-Anforderungen nie isoliert betrachten, immer im System/Beziehungen zu einander
-Nicht ohne grundlegende Bewertung des Kontexts starten
-System, Umfang, Grenzen, Schnittstellen bestimmen und an Umgebung anpassen
SYSTEMKONTEXT-MODELL
-System: alles was kontrolliert werden kann und mir gehört
-Systemgrenze: Ziel: scharfe Abgrenzung zwischen System und umgebenden Kontext - Eliminierung Grauzonen
-Schnittstellen: Interaktionspunkt zwischen System und Kontext
-Kontext: Dokumente, Gesetze, Stakeholder - beeinflussen System
-Kontextgrenze
-Irrelevante Umgebung
PROBLEM –ANFORDERUNG -LÖSUNG
-Probleme, Anforderungen und Lösungen sollten nicht voneinander isoliert werden
-Fokus auf Separation of Concerns - Abgrenzung von Problemen
-„Ende-zu-Ende“ denken und in realistischen Schritten agieren
VALIDIERUNG –KEINE SPEZIFIKATION OHNE PRÜFUNG
-Kernaktivität im Requirements Engineering: nicht-validierte Anforderungen sind nutzlos
- Shift-left: So früh wie möglich mit Validierung beginnen
EVOLUTION –ÄNDERUNGEN SIND NATÜRLICH
-RE muss sich Anforderungsänderung bewusst sein - es passiert sowieso!
-Passende Ansätze nutzen
SYSTEMATISCHE UND DISZIPLINIERTE ARBEIT
-Kein “One-size-fits-all” Ansatz im Requirements Engineering
-Vergangenes RE angemessen reflektieren
-Nervöser Aktionismus und dauerhafter Panikmodus sind Gift
WAS IST EIN “ARBEITSPRODUKT”?
-Aufgezeichnetes Zwischen-o. Endergebnis erzeugt in einem Arbeitsprozess (=Artefakt)
-kann alles sein was Anforderungen ausrückt (einzelner Satz oder Buch)
-kann andere Arbeitsprodukte enthalten
ABSTRAKTIONSEBENEN
Ein Arbeitsprodukt kann andere verschiedene Arbeitsprodukte enthalten
-Geschäft: Geschäftsanforderungs-Spezifikation, Visionsdokumente, Strategiepapiere
-System: Systemanforderungs-Spezifikation
-Komponente: Technische Anforderungs-Spezifikation
-Kein universeller „richtiger” Grad für Anforderungsdetails
-Höhere Abstraktionsebenen zuerst dann niedrigere
-Arbeitsprodukte auf höheren Systemebenen können auf niedrigeren Systemebenen verfeinert werden
-Detaillierungsgrad hängt von Kontext ab