Siehe auch Anforderungen vs. Ziele
1. Beschreibung
Anforderungen/Requirements…
-
…bilden die Grundlage für jedes (Software-) Projekt
-
sie sind die Basis für Konzeption, Design und Entwicklung
-
sie bilden die Basis für Validierung und Verifikation der Ergebnisse
-
sie sind außerdem die Basis für…
-
…die Kommunikation der Prjektbeteiligten, insbesondere mit dem Auftraggeber
-
…Optimierung und Rationalisierung
-
…Ausschreibungen und Vertragsgestaltung
-
-
-
…sind schwer zu ermitteln
-
sie erfodern also ein strukturiertes Requirements-Engineering
-
die Kommunikation zwischen allen Stakeholdern schlägt oft fehl, da sie sich verschiedener Fachsprachen bedienen und die des anderen nicht beherrschen. Beteiligte Stakeholder, die eine unterschiedliche Sprache sprechen:
-
Kunde
-
Vertriebler
-
Projektleiter
-
Software-Architekt / Software-Entwickler
-
…
-
-
-
…sind wenig stabil über die Projekt- bzw. Produktlaufzeit gesehen
-
sie erfordern also einen angemessenen Change-Management-Prozess
-
2. Einteilung
In der Regel wird zwischen Funktionalen und Nicht-Funktionalen Anforderungen unterschieden.
- Funktional
-
Fachliche Anforderungen unter Berücksichtigung von Geschäftsprozessen, Domnäne, Strategie, …
- Nicht-Funktional
-
Alle Anforderungen, die sich nicht aus den funktionalen Anforderungen ergeben, z. B.:
-
Sicherheit und Datenschutz
-
effizienter Betrieb (Wartung und Service)
-
angemessene Benutzeroberfläche
-
rechtlich-vertragliche Anforderungen
-
sonstige Qualitätsanforderungen (Testabdeckung, Auditoring, …)
-
3. Kategorisierung
Es gibt 3 Kategorien: Funktionale Anforderungen, Nicht-Funktionale Anforderungen und Rand- bzw. Rahmenbedingungen.
- Funktional (Leistungen)
-
Fachliche Leistungsmerkmale
-
Was soll die Software in bestimmten Situationen tun?
-
technische Anforderungen können auch funktional sein, wenn die Umgebung das bedingt (z. B. das technische Merkmal Hochverfügbarkeit bei einem Kassenautomaten in einem 24/7 Parkhaus)
-
- Nicht-Funktional (Eigenschaften)
-
Anforderungen, die über die Funktionalen Anforderungen hinausgehen
-
Qualitätsanforderungen
-
Look & Feel
-
Performance & Effizienz
-
Security
-
…
-
- Rand- und Rahmenbedingungen
-
Bedingungen, die weiter einschränken, wie das System realisiert werden soll (werden manchmal auch als Teil der Nicht-Funktionalen Anforderungen ausgedrückt)
-
organisatorisch
-
technisch
-
rechtlich
-
ethisch
-
3.1. Kategorisierung nach Priorität
Siehe auch Zielfindungsprozess: Priorisierung
- Pflicht
-
Ist zwingend zu erfüllen und juristisch verbindlich.
- Wunsch
-
Zeigt die Intention der Umsetzung, besonders bei Vorschlägen vom Kunden.
- Absicht
-
Deutet zukünftige Entwicklungen an.
- Negation
-
Wird nicht umgesetzt.
4. Tätigkeiten des Requirements-Engineering
Tätigkeiten und beispielhafte Methoden:
- Erheben
-
-
Interview
-
Fragebogen
-
On-Site-Customer
-
Videonalyse
-
Apprenticing
-
Osborn Checkliste
-
SOPHIST REgelwerk
-
- Prüfen
-
-
Review
-
Inspektion
-
Testfall-Erstellung
-
Validieren
-
Konsolidieren
-
- Dokumentieren
-
-
Prosa
-
Styleguide
-
Use-Cases
-
Aktivitätsdiagramme
-
SOPHIST REgelwerk
-
- Verwalten
-
-
Releases
-
Branches
-
Versionen
-
Levels
-
Tools
-
evaluieren…
-
…und einsetzen
-
-
4.1. Zu Beachten
Bei Befragungen geben Nutzer gerne bei den Anforderungen an eine Software und die Arbeitsweise ein Idealbild an, das sie selbst gar nicht ausfüllen. Sprich, sie beschreiben weniger die tatsächliche Nutzung, als vielmehr die von ihnen als idealisiert wahrgenommene Nutzung. Wird die Software dann, ohne die Aussagen zu hinterfragen, so gebaut, kommt es zu Beschwerden.
- Beispiel
-
Die Nutzer geben an, dass sie, wenn sie nicht weiter wissen, gerne die Hilfe der Software benutzen. In der Folge wird bei der Implementierung der Software weniger auf eine ansprechend und intuitiv gestaltete Oberfläche geachtet und mehr auf eine komprehensive Dokumentation und Hilsfunktion. Bei der Einführung beschweren sich die Nutzer über die komplizierte Steuerung.