Anforderungen natürlichsprachig dokumentieren Flashcards
Was ist gemeint mit “Transformationsprozessen” im Zusammenhang mit natürlichsprachiger Dokumentation?
Sprache ist oft mehrdeutig und interpretierbar. Bei der Formulierung von Anforderungen werden diese oft nach bestimmten Regeln transformiert, die für Unschärfe in der Dokumentation sorgen.
Ziel ist es, Formulierungen aufzudecken, die durch subjektive Erfahrungen oder Formulierungen geprägt sind, und diese durch klare Formulierungen zu ersetzen.
Was sind die für das Requirements Engineering relevanten Transformationsprozesse?
- Nominalisierung
- Substantive ohne Bezugsindex
- Universalquantoren
- unvollständig spezifizierte Bedingungen
- unvollständig spezifizierte Prozesswörter
Was ist Nominalisierung?
Ein Prozess wird zu einem Ereignis umformuliert, beispielsweise: “aufnehmen” => die Aufnahme”
Was sind die Gefahren von Nominalisierung?
Wichtige Informationen über den Prozess können verloren gehen, z.B. “Datenverlust” bedeutet: Jemand/Etwas verliert zu einem Zeitpunkt auf eine gewisse Weise Daten.
Daraus ergeben sich relevanten Fragen, wie: Welche Daten gehen verloren, wodurch, wie wird der Verlust der Daten erkannt?
Wie sollte man mit Nominalisierung umgehen?
Nicht zwangsläufig vermeiden, aber sicherstellen, dass die verwendeten Begriffe und dahinter liegende Prozesse vollständig definiert sind. Andernfalls die Begriffe im Glossar festhalten.
Was sind Substantive ohne Bezugsindex?
Unvollständig spezifizierte Substantive, wie “Der Anwender”, “Das System”
Wie sollte man mit Substantiven ohne Bezugsindex umgehen?
Vollständig spezifizieren.
Zum Beispiel: “Die Dateneingabe erfolgt über die Tastatur” - Welche Daten genau sollen über die Tastatur eingegeben werden?
Was sind Universalquantoren?
Angaben über Häufigkeiten, sie fassen eine Menge von Elementen zu einer Gruppe zusammen und treffen Aussagen über deren Verhalten
Was sind die Gefahren von Universalquantoren?
Dass sie nicht zutreffen: Obwohl beispielsweise von “alle” gesprochen wird, gibt es Elemente, für die die Bedingung nicht zutrifft.
Welche Signalwörter für Universalquantoren gibt es?
Beispielsweise:
- Nie
- Immer
- Kein
- Jeder
- Alle
- Irgendeiner
- Nichts
Achtung, Signalwörter können auch implizit vorkommen: “Dem Benutzer soll ermöglicht werden…” beinhaltet ggf. “allen Benutzern”
Wie sollte mit Universalquantoren umgegangen werden?
Erkennen durch explizite oder implizite Signalwörter, dann gezielt hinterfragen
Was sind unvollständig spezifizierte Bedingungen?
Anforderungen, die Bedingungen halten, geben vor, was passiert wenn die Bedingung eintritt, müssen aber auch beschreiben was passieren soll, wenn die Bedingung nicht eintritt. Tun sie es nicht, sind sie unvollständig spezifiziert
Was sind Signalwörter für unvollständig spezifizierte Bedingungen?
- Wenn…dann
- falls
- im Falle von
- abhängig von
Was sind unvollständig spezifizierte Prozesswörter?
Manche Prozesswörter erfordern mehr als ein Substantiv, um vollständig spezifiziert szu sein. Beispielsweise benötigt “übertragen” die Informationen “was” “von wo” “wohin” übertragen wird.
Wie lassen sich unvollständig spezifizierte Prozesswörter vermeiden?
Passiv-Formulierungen durch Aktiv-Formulierungen ersetzen, z.B. “es werden Daten eingegeben” zu “Der Benutzer muss die Möglichkeit haben, seinen Usernamen und sein Passwort über die Tastatur einzugeben”
Welche Regeln für die Formulierung von Anforderungen in natürlicher Sprache gibt es?
- Kurze Sätze (1 Anforderung pro Satz)
- Nebensätze vermeiden
- Für beschreibende Verben feste Bedeutungen festlegen
- Mögliche AUsnahmen spezifizieren
- Implizite Annahmen explizit formulieren
- Verbindlichkeiten klar festlegen (muss, sollte etc)
- Zu jedem geforderten Resultat die Funktion und die Eingabedaten, die das Resultat erzeugen, spezifizieren
Was ist eine Satzschablone?
Eine Satzschablone (Requirements Template) ist ein Bauplan für die syntaktische Struktur einer einzelnen Anforderung.
Was sind die Vorteile einer Satzschablone?
Unterstützt dabei, effektiv hochwertige ANforderungen zu erstellen
- leicht erlernbar
- leicht einsetzbar
Wie lautet eine vollständige Satzschablone inkl. Bedingungen?
(Wann, unter welcher Bedingung?) muss/sollte/wird das System (Wem?) die Möglichkeit bieten/fähig sein, (Objekt) (Prozesswort)
Welches sind die Schritte zur Formulierung von Anforderungen?
- Festlegen der Verbindlichkeit
- Kern der Anforderung benennen
- Charakterisieren der Aktivität des Systems
- Objekte einfügen
- Formulieren von logischen und zeitlichen Bedingungen
Wie wird die Verbindlichkeit einer Anforderung in einer Satzschablone ausgedrückt?
Durch die Wörter muss, sollte und wird. Muss ist bindend, sollte nicht, und wird ist in die Zukunft gerichtet.
Wie wird die Aktivität des Systems in einer Satzschablone charakterisiert?
1) Das System erledigt etwas selbstständig, oder
2) ein Benutzer interagiert mit dem System, oder
3) es liegt eine Anforderung an eine Schnittstelle vor.
Warum sollte die Konjunktion “Wenn” bei der Verwendung von Satzschablonen vermieden werden?
“Wenn” kann sowohl eine zeitliche als auch eine logische Bedingung bezeichnen. Besser ist “Falls” für logische und “sobald” “nachdem” “während”, “solange” für zeitliche Bedingungen