Wie man eine Anforderung schreibt, die nicht missverstanden werden kann

Eine Anforderung hat genau eine Aufgabe: die Lücke zwischen dem, was gewünscht wird, und dem, was gebaut wird, zu schließen. Die meisten schlechten Anforderungen scheitern nicht, weil der Autor nachlässig war, sondern weil es keine Vorlage gab. Dieser Beitrag liefert diese Vorlage — die Qualitätsmerkmale nach IEEE 29148, die Satzmuster von EARS und die Schlüsselwort-Disziplin, die jeden Satz testbar macht.
Die Qualitätslatte: acht Prüfungen
ISO/IEC/IEEE 29148 definiert die Eigenschaften einer wohlgeformten Anforderung. Denken Sie daran als acht Prüfungen, die jede Anforderung bestehen muss, bevor sie ins Dokument darf.
- Notwendig — würde man sie streichen, änderte sich das System; sie hat ihren Platz verdient.
- Eindeutig — genau eine Interpretation.
- Vollständig — keine TBDs, keine Platzhalter für später.
- Singulär — eine Anforderung pro Aussage, niemals „A und B“.
- Umsetzbar — mit den bekannten Randbedingungen realisierbar.
- Verifizierbar — es existiert ein Test, der sie als wahr oder falsch belegt.
- Korrekt — sie gibt wieder, was die Stakeholder tatsächlich vereinbart haben.
- Nachverfolgbar — sie verweist zurück auf eine Quelle und nach vorn auf einen Test.
EARS: fünf Satzmuster
EARS (Easy Approach to Requirements Syntax, von Alistair Mavin und Kollegen bei Rolls-Royce) führt fast jede Anforderung auf eines von fünf Mustern zurück. Kennt man sie, verschwindet Mehrdeutigkeit weitgehend, weil die Struktur feststeht.
- Allgegenwärtig — „Das <System> muss <Reaktion>.“ Beispiel: „Das System muss jeden Authentifizierungsversuch protokollieren.“
- Ereignisgesteuert — „Wenn <Auslöser>, muss das <System> <Reaktion>.“ Beispiel: „Wenn der Benutzer das Formular absendet, muss das System jedes Feld validieren.“
- Unerwünschtes Verhalten — „Falls <Bedingung>, muss das <System> <Reaktion>.“ Beispiel: „Falls die Verbindung abbricht, muss das System mit exponentiellem Backoff erneut versuchen.“
- Zustandsgesteuert — „Solange <Zustand>, muss das <System> <Reaktion>.“ Beispiel: „Solange sich das System im Wartungsmodus befindet, muss es alle Schreibzugriffe ablehnen.“
- Optionale Funktion — „Wo <Funktion> vorgesehen ist, muss das <System> <Reaktion>.“ Beispiel: „Wo das Analyse-Modul aktiviert ist, muss das System einen täglichen Nutzungsbericht erzeugen.“
Die Schlüsselwort-Disziplin: muss, soll, kann
Die verwendeten Wörter sind ein Vertrag, keine Dekoration. Anforderungsdokumente folgen einem strengen dreistufigen Vokabular — und die deutsche Konvention ist das genaue Gegenstück zur englischen.
- Muss — eine verbindliche, testbare Anforderung (engl. „shall“). Das einzige Wort für einen Satz, der eintreten MUSS.
- Soll — eine Empfehlung oder ein Ziel (engl. „should“). Es wird nicht getestet und blockiert keinen Release; jedes „soll“ ist ein bewusst zurückgestelltes „muss“.
- Kann — eine Option oder Erlaubnis (engl. „may“). Das System darf es, muss es aber nicht.
- „Wird“ beschreibt eine Tatsache oder Zusage über ein externes System — keine Anforderung an das eigene System.
Fünf Gerüche und ihre Korrekturen
- „Schnell“ → „stellt die Liste für 500 Einträge in unter 500 ms dar“.
- „Benutzerfreundlich“ → „ein neuer Benutzer erledigt die Kernaufgabe in unter 3 Minuten ohne Dokumentation“.
- „Bei Bedarf“ → den Auslöser benennen: „wenn die Warteschlange 1.000 Nachrichten überschreitet“.
- Ein „soll“, das eigentlich ein „muss“ ist → heraufstufen und den Test schreiben.
- TBD oder TBA → jetzt klären oder ausdrücklich als unvollständig mit Verantwortlichem und Datum markieren.
Beispiele
Vorher: „Das Gerät muss bei hohen Temperaturen zuverlässig arbeiten.“
Nachher: „Das Gerät muss bei Umgebungstemperaturen von −20 °C bis +60 °C dauerhaft ohne Drosselung arbeiten.“
Vorher: „Die Software soll sicher sein.“
Nachher: „Die Software muss für jede administrative Anmeldung eine Mehrfaktor-Authentifizierung verlangen.“
Vorher: „Das System kann mehrere Sprachen unterstützen.“
Nachher: „Wo Mehrsprachigkeit aktiviert ist, muss das System alle sichtbaren Texte in der gewählten Sprache anzeigen.“