Requirements Engineering: Leitfaden für die Anforderungsanalyse
Was ist Requirements Analysis?
Die Anforderungsanalyse ist der Prozess der Entdeckung, Analyse, Dokumentation und Überprüfung von Leistungen und Zwängen, die für ein System und dessen operativen Betrieb erforderlich sind. Eine Spezifikation reicht dabei von einer hochrangigen, abstrakten Nennung einer Dienstleistung bis hin zu detaillierten funktionalen Einschränkungen.
Arten von Anforderungen
- Nutzeranforderungen: Aussagen in natürlicher Sprache, ergänzt durch Diagramme, die die Dienste des Systems und seine betrieblichen Einschränkungen beschreiben. Sie sind für die Nutzer geschrieben.
- Systemanforderungen: Ein strukturiertes Dokument mit detaillierten Beschreibungen der Funktionen, Dienste und betrieblichen Einschränkungen. Es legt fest, was umgesetzt werden muss, und sollte Teil eines Vertrages zwischen Kunden und Entwicklern sein.
Libsys System
Ein Bibliotheks-System, das eine einheitliche Schnittstelle für eine Reihe von Datenbanken mit Artikeln in verschiedenen Formaten bietet.
Funktionale und nichtfunktionale Anforderungen
Funktionale Anforderungen beschreiben die Dienste des Systems, wie das System auf bestimmte Eingaben reagieren und wie es sich in bestimmten Situationen verhalten soll.
Nichtfunktionale Anforderungen sind Einschränkungen der Dienste oder Funktionen, wie z. B. Timing, Entwicklungsprozesse, Standards etc. Domänenanforderungen leiten sich aus dem Anwendungsbereich ab und spiegeln Merkmale wider, die für dieses Gebiet spezifisch sind.
Klassifikation nichtfunktionaler Anforderungen
- Produkt-Anforderungen: Spezifizieren das Verhalten des gelieferten Produkts, z. B. Ausführungsgeschwindigkeit oder Zuverlässigkeit.
- Organisatorische Anforderungen: Resultieren aus der Politik und den Verfahren der Organisation, z. B. Prozess-Standards oder Anforderungen für die Umsetzung.
- Externe Anforderungen: Entstehen durch externe Faktoren, wie Interoperabilität oder rechtliche Vorgaben.
Spezifikation von Anforderungen
Das Software-Anforderungsdokument sollte in natürlicher Sprache verfasst sein und bestimmten Standards folgen:
- Verwenden Sie „muss“ für verbindliche Vorschriften und „sollte“ für wünschenswerte Anforderungen.
- Die Anforderungen müssen logisch organisiert sein (z. B. Zulassungsvoraussetzungen, Verarbeitung, Ausgabe).
- Jede Anforderung benötigt eine eindeutige Kennung (z. B. eine numerische ID).
- Vermeiden Sie Jargon.
Das Format folgt idealerweise dem Standard IEEE/ANSI 830/1998 (Einführung > Überblick > Spezifische Anforderungen > Anlagen > Index).
Probleme bei der Spezifikation
- Ambiguität: Natürliche Sprache ist oft mehrdeutig, was zu Fehlinterpretationen führen kann.
- Übermäßige Flexibilität: Dasselbe kann auf verschiedene Weise ausgedrückt werden.
- Fehlende Modularisierung: Die Struktur der Anforderungen ist oft unzureichend.
Engineering-Prozess
Der Prozess umfasst Rentabilitätsprüfung, Erhebung, Analyse, Validierung und Anforderungsmanagement, was letztlich zum Anforderungsdokument führt.
Machbarkeitsstudie
Diese kurze Studie prüft, ob das System zu den Unternehmenszielen beiträgt, technologisch umsetzbar ist, im Budget liegt und mit anderen Systemen integriert werden kann.
Erhebung und Analyse
Hierbei werden Informationen aus Dokumenten, Spezifikationen, Beobachtungen und Interviews gesammelt. Schwierigkeiten entstehen oft, weil Stakeholder ihre Bedürfnisse nicht präzise ausdrücken können, Anforderungen widersprüchlich sind oder sich das politische/technische Umfeld ständig ändert.
Validierung der Anforderungen
Die Validierung stellt sicher, dass das System wirklich das bietet, was der Kunde benötigt. Wichtige Prüfpunkte sind:
- Gültigkeit: Bietet das System die benötigten Funktionen?
- Konsistenz: Gibt es Anforderungskonflikte?
- Vollständigkeit: Wurden alle Kundenwünsche berücksichtigt?
- Realismus: Ist die Umsetzung mit dem Budget und der Technologie möglich?
- Überprüfbarkeit: Können die Anforderungen verifiziert werden?
Requirements Management
Dies ist der Prozess der Verwaltung wechselnder Anforderungen während der Systementwicklung, da Anforderungen zwangsläufig unvollständig oder inkonsistent sein können.
Rückverfolgbarkeit (Traceability)
- Rückverfolgbarkeit der Quelle: Verbindung der Anforderungen zu den Stakeholdern.
- Rückverfolgbarkeit der Anforderungen: Verbindung zwischen abhängigen Anforderungen.
- Rückverfolgbarkeit des Projekts: Verbindung der Anforderungen zu den Projektmodulen.