Informatik · Klasse 11–13 · aktualisiert
Anforderungsanalyse: Anforderungen richtig formulieren
Du lernst, wie Anforderungen ermittelt, unterschieden und so formuliert werden, dass man sie eindeutig prüfen und testen kann.
0 von 10 Aufgaben gelöst
Kurz gesagt
Anforderungsanalyse heißt, die Anforderungen des Auftraggebers an ein System zu ermitteln, zu strukturieren und zu prüfen. Du unterscheidest funktionale, nichtfunktionale Anforderungen und Randbedingungen. Gute Anforderungen sind eindeutig, atomar und nachprüfbar.
Stell dir vor, ein Team baut eine App für deine Schule, aber jeder versteht unter „schnell“ etwas anderes. Am Ende passt das Ergebnis nicht. Studien zeigen, dass 40 % bis 50 % aller Fehler in Softwaresystemen durch eine fehlerhafte Anforderung entstehen. Darum lohnt sich genaue Arbeit ganz am Anfang.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
4 Abschnitte
Eine Anforderung ist eine Aussage über eine Eigenschaft oder Leistung, die ein Produkt, ein System oder ein Prozess erfüllen soll. Die Anforderungsanalyse ist ein Teil der Systementwicklung. Ihr Ziel ist es, die Anforderungen des Auftraggebers an das zu entwickelnde System zu ermitteln, zu strukturieren und zu prüfen.
Das International Requirements Engineering Board (IREB) nennt dafür vier Tätigkeiten: Ermitteln, Dokumentieren, Prüfen und abstimmen sowie Verwalten. Üblicherweise werden Anforderungen erst gesammelt, dann dokumentiert und danach geprüft. Das Verwalten läuft dagegen neben allen anderen Tätigkeiten her.
Das Ergebnis wird meistens in einem Lastenheft dokumentiert. Das ist ein Dokument, in dem die Anforderungen des Auftraggebers festgehalten sind. Bei agiler Softwareentwicklung, zum Beispiel in Scrum, entsteht stattdessen ein Product Backlog als Ergebnis der Analyse. Die Anforderungen müssen außerdem zwischen Kunde und Entwickler abgestimmt werden. Das kann ein iterativer Prozess werden, also einer mit mehreren Runden, der die Anforderungen immer weiter verfeinert.
Definition
Anforderungsanalyse
Ein Teil der Systementwicklung. Ihr Ziel ist es, die Anforderungen des Auftraggebers an das zu entwickelnde System zu ermitteln, zu strukturieren und zu prüfen.
| Tätigkeit nach IREB | Was geschieht dabei? |
|---|---|
| Ermitteln | Mit Techniken die Anforderungen der Stakeholder (betroffene Interessengruppen) und anderer Quellen gewinnen und verfeinern |
| Dokumentieren | Erarbeitete Anforderungen angemessen beschreiben |
| Prüfen und abstimmen | Dokumentierte Anforderungen frühzeitig prüfen und abstimmen, damit sie allen geforderten Qualitätskriterien genügen |
| Verwalten | Läuft neben allen anderen Tätigkeiten: Anforderungen strukturieren und konsistent ändern |
Merke: Es gibt vier Tätigkeiten nach IREB. Die Tätigkeit Verwalten begleitet alle anderen.
Teste dich
Am verbreitetsten ist die Unterteilung in funktionale und nichtfunktionale Anforderungen. Daneben werden häufig auch Randbedingungen als Anforderungen beschrieben.
Eine funktionale Anforderung legt fest, was das Produkt tun soll. Ein Beispiel: „Das Produkt soll den Saldo eines Kontos zu einem Stichtag berechnen.“ (Saldo heißt Kontostand.)
Eine nichtfunktionale Anforderung geht über die funktionale Anforderung hinaus. Sie beschreibt, wie gut das System die Leistung erbringen soll. Ein Beispiel: „Das Produkt soll dem Anwender innerhalb von einer Sekunde antworten.“ Zu den Qualitätseigenschaften zählen etwa Zuverlässigkeit, Benutzbarkeit und Leistung mit Antwortzeiten. Achtung: Nichtfunktionale Anforderungen sind in der Literatur nicht einheitlich definiert. Sie werden vielfach als Randbedingungen und Qualitätseigenschaften verstanden. Die Grenze kann also je nach Quelle anders gezogen werden.
Häufig werden neben diesen beiden Typen auch Randbedingungen (englisch Constraints) als Anforderungen beschrieben. Häufige Randbedingungen sind eine Obergrenze für Kosten und ein einzuhaltender Termin für den Abschluss des Projekts.
Merkhilfe: „Was?“ führt zu funktional, „Wie gut?“ zu nichtfunktional, „Welcher Rahmen?“ zu einer Randbedingung.
Definition
Randbedingung
Eine Randbedingung (englisch Constraint) wird häufig neben funktionalen und nichtfunktionalen Anforderungen als Anforderung beschrieben, zum Beispiel eine Obergrenze für Kosten oder ein einzuhaltender Termin.
| Art | Leitfrage | Beispiel |
|---|---|---|
| Funktional | Was soll das Produkt tun? | Den Saldo eines Kontos zu einem Stichtag berechnen |
| Nichtfunktional | Wie gut soll das System die Leistung erbringen? | Dem Anwender innerhalb von einer Sekunde antworten |
| Randbedingung | Welcher Rahmen gilt für das Projekt? | Obergrenze für Kosten, einzuhaltender Termin |
Beispiel: Drei Aussagen einordnen (ausgedachtes Beispiel)
- 1„Die App soll Vertretungspläne anzeigen.“ → funktional, weil sie festlegt, was das Produkt tun soll.
- 2„Die App soll dem Anwender innerhalb von einer Sekunde antworten.“ → nichtfunktional, weil sie beschreibt, wie gut die Leistung erbracht wird.
- 3„Die Kosten des Projekts dürfen eine festgelegte Obergrenze nicht überschreiten.“ → Randbedingung, weil sie eine Obergrenze für Kosten setzt.
Teste dich
Anforderungen werden oft in natürlicher Sprache geschrieben. Die muss gedeutet werden, und manche Voraussetzungen gelten als selbstverständlich und werden nicht erwähnt. Deshalb braucht es möglichst präzise Kommunikation.
Drei Kriterien helfen dir:
Eindeutig: Präzise Definitionen helfen, Missverständnisse zwischen Entwickler und Auftraggeber zu vermeiden. Jeder soll dasselbe unter dem Satz verstehen.
Atomar: Es darf nur eine Anforderung pro Abschnitt oder Satz beschrieben sein. Das Kriterium für ein „Atom“ sollte die Entscheidbarkeit einer Anforderung sein. Du fragst also: Kann man klar entscheiden, ob genau diese Anforderung erfüllt ist?
Nachprüfbar: Die Anforderung wird mit einem Abnahmekriterium verknüpft. Daraus werden später Testfälle abgeleitet. Ein Wort wie „schnell“ lässt sich nicht prüfen, ein Wert wie „innerhalb von einer Sekunde“ schon.
Außerdem sollte jede Anforderung eindeutig identifizierbar sein, zum Beispiel über eine Kennung oder Nummer.
Definition
Abnahmekriterium
Das Abnahmekriterium (englisch Fit Criterion) beschreibt eine messbare Bedingung, mit der später geprüft wird, ob die Anforderung erfüllt wurde.
Beispiel: Einen Satz überarbeiten (ausgedachtes Beispiel)
- 1Vorher: „Die App soll schnell sein und Noten anzeigen.“
- 2Problem 1: Der Satz enthält zwei Anforderungen, ist also nicht atomar.
- 3Problem 2: „schnell“ lässt sich nicht prüfen.
- 4N1: „Die App zeigt dem Schüler seine Noten an.“
- 5N2: „Die App antwortet dem Anwender innerhalb von einer Sekunde.“
- 6Jetzt hat jede Anforderung eine Kennung (N1, N2) und eine Bedingung, die man mit Ja oder Nein prüfen kann.
Teste dich
Eine User Story ist eine in Alltagssprache formulierte Software-Anforderung. Sie ist bewusst kurz und umfasst in der Regel nicht mehr als zwei Sätze. Als Vorlage dient: „Als (Rolle) möchte ich (Ziel/Wunsch), um (Nutzen)“. Der Autor der Story sollte der Kunde des Software-Projektes sein. Ein Beispiel: „Als Autor möchte ich nach dem Start der Anwendung mein zuletzt bearbeitetes Dokument sehen, um Zeit zu sparen.“
User Stories werden in der agilen Softwareentwicklung zusammen mit Akzeptanztests zur Spezifikation von Anforderungen eingesetzt. Mit den Akzeptanzkriterien beschreibt der Anforderer, wie er die korrekte Umsetzung der User Story testen würde. Traditionell stehen sie auf der Rückseite der Story-Card, also der Karte, auf der die Story steht.
Im Extreme Programming (XP), einer agilen Methode, gilt: Eine User Story kann einen oder mehrere Akzeptanztests brauchen. Sie gilt nicht als abgeschlossen, wenn sie den Akzeptanztest nicht besteht.
Beim Behavior Driven Development schreibt man die Kriterien als Szenarien mit festem Aufbau. Dazu dient oft die Gherkin-Syntax mit den Wörtern Gegeben, Wenn, Dann und Und. Die Wörter sind aber nicht unumgänglich. Das Ziel ist, dass sich die Kriterien automatisch testen lassen.
So gehst du vor: Lies Rolle, Ziel und Nutzen. Überlege, wie der Anforderer die Umsetzung testen würde. Schreibe Ausgangslage, Handlung und erwartetes Ergebnis mit konkreten Werten auf. Frage dann, ob das Ergebnis immer gilt. So können weitere Szenarien entstehen. Akzeptanzkriterien müssen klar, präzise und zumindest prinzipiell automatisch testbar sein. Das Abnahmekriterium aus dem vorigen Abschnitt beschreibt eine messbare Bedingung. Darum sind konkrete Werte besser als vage Wörter.
Definition
Akzeptanzkriterium
Mit Akzeptanzkriterien beschreibt der Anforderer, wie er die korrekte Umsetzung einer User Story testen würde.
Beispiel: Szenario für den Kauf am Kiosk (ausgedachtes Beispiel)
- 1Gegeben ist, dass am Schulkiosk 5 Brötchen vorrätig sind
- 2Wenn ein Schüler 2 Brötchen kauft,
- 3Dann sind noch 3 Brötchen vorrätig.
- 4Fragt man, ob das immer gilt, kann ein weiteres Szenario entstehen, zum Beispiel für den Fall, dass nur noch 1 Brötchen vorrätig ist.
Merke: Akzeptanzkriterien müssen klar, präzise und zumindest prinzipiell automatisch testbar sein.
Teste dich
Alles auf einen Blick
Anforderungsanalyse
Tätigkeiten
Nach IREB gehören Ermitteln, Dokumentieren, Prüfen und abstimmen sowie Verwalten dazu.
Arten
Funktional sagt, was das Produkt tut; nichtfunktional, wie gut es seine Leistung erbringt.
Randbedingungen
Häufig sind es eine Obergrenze für Kosten und ein einzuhaltender Termin.
Atomar
Pro Abschnitt oder Satz darf nur eine Anforderung stehen.
Nachprüfbar
Ein Abnahmekriterium beschreibt eine messbare Bedingung für die Prüfung.
Akzeptanzkriterien
Mit ihnen beschreibt der Anforderer, wie er die korrekte Umsetzung einer User Story testen würde.
Musteraufgabe · Schritt für Schritt
Akzeptanzkriterien für eine Hausaufgaben-Story (ausgedachtes Beispiel)
- 1User Story (ausgedacht): Als Schüler möchte ich meine Hausaufgaben in eine Liste eintragen, um nichts zu vergessen.
- 2Schritt 1: Die Rolle ist der Schüler, das Ziel ist das Eintragen in eine Liste, der Nutzen ist, nichts zu vergessen.
- 3Schritt 2: Frage dich, wie der Kunde die korrekte Umsetzung testen würde: einen Eintrag machen, speichern, nachsehen.
- 4Szenario 1: Gegeben ist, dass die Liste leer ist. Wenn der Schüler „Mathe S. 12“ einträgt und speichert, Dann zeigt die Liste genau einen Eintrag „Mathe S. 12“.
- 5Szenario 2: Gegeben ist, dass die Liste leer ist. Wenn der Schüler einen leeren Text speichert, Dann bleibt die Liste leer.
- 6Schritt 3: Jedes Szenario lässt sich mit Ja oder Nein entscheiden, ist also nachprüfbar. Szenario 2 ist eine ausgedachte Annahme, die der Kunde bestätigen müsste.
Fehler finden
Prüfe die Aussagen zu einer Leihrad-App (ausgedachtes Beispiel) In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 3Ein Termin sagt nicht, was das Produkt tut. Richtig: Ein einzuhaltender Termin für den Abschluss des Projekts ist eine Randbedingung.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Atomar heißt: Pro Abschnitt oder Satz wird Anforderung beschrieben. Ein einzuhaltender Termin für den Abschluss des Projekts ist eine . Mit Akzeptanzkriterien beschreibt der Anforderer, wie er die korrekte Umsetzung einer User Story würde.
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback