Konzept: Anforderungen
Jede Anforderung definiert "eine Bedingung oder Fähigkeit, die das System erfüllen bzw. erbringen muss".
Beziehungen
Hauptbeschreibung

Jede Anforderung definiert "eine Bedingung oder Fähigkeit, die das System erfüllen bzw. erbringen muss".

Es gibt viele verschiedene Arten von Anforderungen. Eine Möglichkeit, Anforderungen zu kategorisieren, ist das FURPS+-Modell [GRA92]. Das Akronym FURPS beschreibt die Hauptkategorien der Anforderungen mit den folgenden Unterkategorien:

Das Pluszeichen ("+") in FURPS+ erinnert Sie an die Berücksichtigung von Anforderungen wie

(Siehe auch [IEEE Std 610.12.1990].)

Solche Kategorien und Beispiele nicht funktionaler Anforderungen können wie eine Prüfliste verwendet werden, um sich zu fragen, ob Sie eine Anforderung in einer bestimmten Kategorie haben. Aber wie kommen Sie zu einer vollständigen Liste mit geeigneten nicht funktionalen Anforderungen. Einige zusätzliche Quellen sind im Folgenden beschrieben:

  • Eine Beschreibung eines systematischen Ansatzes für die Erfassung von Anforderungen gemäß FURPS+ finden Sie im Artikel 'Capturing Architectural Requirements' von Peter Eeles auf der Website The Rational Edge (http://www.ibm.com/developerworks/rational/library/4706.html).  Dieser Artikel enthält einen Fragenkatalog, in dem eine Vielzahl nicht funktionaler Anforderungen und Fragen zur Bestimmung ihrer Anwendbarkeit aufgelistet sind.
  • Das Software Engineering Institute hat ebenfalls einen Katalog mit 'allgemeinen Szenarios' (Beschreibungen von erforderlichen Qualitätsattributen) erstellt, der für viele unterschiedliche Arten von Systemen wiederverwendet werden kann, um Qualitätsanforderungen zu definieren. Weitere Informationen finden Sie in http://www.sei.cmu.edu/publications/documents/01.reports/01tr014.html or Software Architecture in Practice, 2nd Ed., by Len Bass, Paul Clements, and Rick Kazman (Addison-Wesley, 2003).

Funktionale Anforderungen geben Aktionen an, die das System ohne die Berücksichtigung physischer Einschränkungen ausführen können muss. Diese werden am besten in einem Anwendungsfallmodell und in Anwendungsfällen beschrieben. Funktionale Anforderungen legen somit das Eingabe- und Ausgabeverhalten eines Systems fest.

Anforderungen, die nicht funktionaler Natur sind, wie beispielsweise die im Folgenden aufgelisteten, werden zuweilen nicht funktionale Anforderungen genannt. Viele Anforderungen sind nicht funktional und beschreiben nur Attribute des Systems oder Attribute der Systemumgebung. Nicht funktionale Anforderungen sind Anforderungen, die Probleme wie die folgenden beschreiben.   

Funktionalität

Funktionale Anforderungen:

  • Feature-Gruppen
  • Fähigkeiten
  • Sicherheit

Benutzerfreundlichkeit

Anforderungen an die Benutzerfreundlichkeit können in die folgenden Unterkategorien eingeteilt werden:

  • Menschliche Faktoren
  • Ästhetik
  • Konsistenz innerhalb der Benutzerschnittstelle
  • Online- und Kontexthilfe
  • Assistenten und Agenten
  • Benutzerdokumentation
  • Schulungsmaterial

Zuverlässigkeit

Anforderungen an die Zuverlässigkeit beziehen sich auf:

  • Häufigkeit und Schweregrad von Fehlern
  • Wiederherstellbarkeit
  • Vorhersagbarkeit
  • Genauigkeit
  • Mittlere Zeit zwischen auftretenden Fehlern

Leistung

Eine Leistungsanforderung stellt Bedingungen an die Funktionalität. Sie kann beispielsweise für eine bestimmte Aktion Leistungsparameter für Folgendes vorgeben:

  • Geschwindigkeit
  • Effizienz
  • Verfügbarkeit
  • Genauigkeit
  • Durchsatz
  • Antwortzeit
  • Wiederanlaufzeit
  • Ressourcennutzung

Servicefreundlichkeit

Anforderungen an die Servicefreundlichkeit:

  • Testfähigkeit
  • Erweiterbarkeit
  • Anpassungsfähigkeit
  • Wartungsfreundlichkeit
  • Kompatibilität
  • Konfigurierbarkeit
  • Servicefreundlichkeit
  • Installierbarkeit
  • Lokalisierbarkeit (Internationalization)

Designanforderung

Eine Designanforderung (oder Designvorgaben) spezifiziert oder schränkt das Design eines Systems ein.

Implementierungsanforderung

Eine Implementierungsanforderung spezifiziert oder schränkt die Codierung oder Konstruktion eines Systems ein. Beispiele:

  • erforderliche Standards
  • Implementierungssprachen
  • Richtlinien für die Datenbankintegrität
  • Ressourcengrenzen
  • Betriebsumgebungen

Schnittstellenvoraussetzung

Eine Schnittstellenvoraussetzung spezifiziert Folgendes:

  • ein internes Element, mit dem ein System interagieren muss.
  • Vorgaben für Formate, Ablaufsteuerungen und andere Faktoren, die von einer solchen Interaktion verwendet werden

Physische Voraussetzung

Eine physische Voraussetzung spezifiziert ein physisches Merkmal, das ein System besitzen muss, z. B.:

  • Material
  • Form
  • Größe
  • Gewicht

Dieser Typ von Anforderung kann für die Darstellung der Hardwarevoraussetzungen verwendet werden, z. B. die erforderlichen Netzkonfigurationen.