Anforderung (Technik)

In der Technik, den Ingenieurwissenschaften und der Informatik ist eine Anforderung (englisch requirement) eine spezifische Angabe, die die zu erfüllende Funktionalität, Eigenschaft oder Leistung eines Produkts, Systems oder Prozesses beschreibt.

Allgemeines

Technischen Anforderungen grenzen sich in ihrer Charakteristik und Ausprägung von anderen Anforderungen ab. In der Regel unterscheiden sie sich in ihrer Art, ihrer Struktur und ihren Inhalten. Genauer gesagt existieren Anforderungen auf verschiedenen Ebenen, die die verschiedenen Detailtiefen eines zu bauenden Produkts beschreiben. Ein Produkt kann eine Hardware (Elektrik, Elektronik oder Mechanik), eine Software, ein Softwaresystem oder ein informationstechnisches System sein. Der Begriff Produkt umfasst somit mechanische oder elektronische Geräte, Maschinen, Konstruktionen, Anlagen oder andere Systeme.

Die praktische Ausarbeitung der technischen Anforderungen in Form von Ermittlung, Analyse (Systemanalyse) und Spezifikation ist Teil des Requirements Engineering (RE), einer Teildisziplin des Anforderungsmanagements. Sie müssen so formuliert sein, dass sie verifizierbar und validierbar sind. Dazu dienen Methoden und Aktivitäten wie Experimente, Tests oder Erprobungen.

In der computerbasierten Entwicklung wird seit den 1990er Jahren auf Anforderungsmanagement-Software zurückgegriffen, um der Komplexität technischer Produkte mit geeigneten Werkzeugen gerecht zu werden. Anforderungen werden in der Softwaretechnik und dem Systems Engineering zudem mithilfe von Modellierungssprachen wie UML oder SysML entwickelt. Anforderungen an Software wurden in der ISO/IEC/IEEE 29148 normiert. Die Softwareentwicklung nach dem agilen Modell verwendet dabei auf iterative Vorgehensmodelle ausgerichtete Werkzeuge. Bei dieser Methode werden Anforderungen als Teil des Scrum als Backlog, Features oder Epics verwaltet.

Arten von Anforderungen

Es existieren unterschiedliche Ansätze zur Klassifikation von Anforderungen. Wenn sie als Qualitätskriterien an Systeme und Softwareprodukte verstanden werden, können sie nach ISO/IEC 25000, bzw. entsprechend der Qualitätsmodelle aus ISO/IEC 25010 klassifiziert werden. Am verbreitetsten ist dabei die Unterteilung in funktionale und nichtfunktionale Anforderungen:

Die nichtfunktionalen Anforderungen beschreiben, wie gut das System die Leistung erbringen soll; sie werden vielfach als Randbedingungen und Qualitätseigenschaften verstanden. Ein Beispiel: „Das Produkt soll dem Anwender innerhalb von einer Sekunde antworten.“ ist eine nichtfunktionale Anforderung bezogen auf die Reaktionszeit.

Auf übergeordneter Ebene, im Inhalts- und Umfangsmanagement als Teil des Projektmanagements, werden Randbedingungen zu Anforderungen. Beispiele hierfür sind eine Obergrenze für die Projektkosten oder ein einzuhaltender Termin für den Abschluss des Projekts (Schedulemanagement).

Anders als bei funktionalen bzw. nichtfunktionalen Anforderungen beschreiben Testfälle, wie ein Produkt überprüft und somit verifiziert oder validiert werden kann.

Klassifikation nichtfunktionaler Anforderungen

Während funktionale Anforderungen je nach Projekt unterschiedlich geordnet werden, gibt es für nichtfunktionale Anforderungen typische Gliederungen, beispielsweise als Vorlagen von dem Beratungsunternehmen Volere oder aus der DIN 66272. Nichtfunktionale Anforderungen können in zwei Hauptkategorien unterteilt werden:

Ausführungsqualität

Dies ist während des Betriebs (zur Laufzeit) beobachtbar.

Weiterentwicklungsqualität / Evolutionsqualität

Dies ist in der statischen Struktur des Systems verkörpert.

  • Betrieb und Umgebungsbedingungen
  • Flexibilität (Unterstützung von Standards)
  • Portierbarkeit und Übertragbarkeit (Anpassbarkeit, Installierbarkeit, Konformität, Austauschbarkeit)
  • Randbedingungen
  • Skalierbarkeit (Änderungen des Problemumfangs bewältigen)
  • Wartbarkeit, Änderbarkeit (Analysierbarkeit, Stabilität, Prüfbarkeit, Erweiterbarkeit)

Format und Spezifikation

Technische Anforderungen werden in den folgenden Formaten erfasst:

Bereits erwähnt wurden Hilfswerkzeuge wie die Modellierungssprachen UML oder SysML. Müssen die Anforderungen möglichst detailliert erfasst werden, kommen formale Methoden zum Einsatz. Anforderungen sollten kurz, prägnant und eindeutig formuliert werden. Sie beschreiben, was ein technisches Produkt, System oder Prozess leisten oder erfüllen soll, nicht, wie die Umsetzung erfolgt. Dazu werden funktionale Anforderungen geschrieben. Nichtfunktionale Anforderungen beschreiben Qualitätsmerkmale und Rahmenbedingungen, etwa Leistung oder Verfügbarkeit.

Die Verwendung von Schlüsselwörtern konkretisiert die Definition von Anforderungen oder Spezifikationen. Typische Schlüsselwörter sind:

Ein einfaches Beispiel:

Alle Anforderungen sollten verifizierbar sein. Zu diesem Zweck werden Tests eingesetzt und von Testingenieuren oder Entwicklern geplant und durchgeführt. Die Maßnahmen sind Teil einer Verifizierung und Validierung (V&V). Zudem müssen Anforderungen an die Qualität im Rahmen der Qualitätssicherung definiert und erfüllt werden.

Qualitätskriterien

Zur Verbesserung der Qualität definierte die IEEE 830 Software Requirements Specification folgende Charakteristiken. Eine Anforderung sollte

„Korrekt“ und „vollständig“ beziehen sich dabei auf tatsächlichen Anforderungen (externer Bezug). Widerspruchsfreiheit bezieht sich auf die Anforderungen in einer Spezifikation (interner Bezug). Unzweideutigkeit lässt genau eine Interpretation zu, Verifizierbarkeit begrenzt die Komplexität einer Anforderungsbeschreibung zusätzlich auf ein effizient prüfbares Maß. Modifizierbarkeit setzt insbesondere Redundanzfreiheit voraus. Rückverfolgbarkeit umfasst die vor- und rückwärtige Richtung.

Struktur einer Anforderung

Anforderungen können inhaltlich und in ihren Eigenschaften unterschiedlich aufgebaut sein. Im Folgenden wird eine grobe Übersicht gegeben, welche Bestandteile oder Merkmale eine Anforderung aufweisen kann. In der Regel werden diese Merkmale bereits exemplarisch von einer Anforderungsmanagement-Software vorgegeben, sollten jedoch projektspezifisch hinterfragt und angepasst werden. Einige Elemente werden implizit von einer Anwendersoftware erledigt, beispielsweise die Identifizierung, Verknüpfung oder Versionskontrolle der Inhalte. Die Struktur ist allgemein gehalten und sollte von allen Ebenen berücksichtigt werden. Nur im Detail unterscheiden sich die Anforderungen.

Grundelemente

Typischerweise besteht eine einzelne Anforderung aus folgenden Standardbestandteilen:

  • Identifikator (Requirement Number): Identifiziert die Anforderung eindeutig. (Eine ID wird meistens von der verwendeten Anforderungssoftware vergeben.)
  • Beschreibung (Description): Beschreibt bzw. spezifiziert die Anforderung mit wenigen Sätzen kurz und prägnant. (Merke: Was ist gefordert, nicht wie etwas gelöst wird.)
  • Quelle (Originator): Identifiziert die anfordernde Person oder ein Dokument, aus dem sich die Anforderung ergibt, beispielsweise eine Rechtsvorschrift.
  • Verifikationskriterium (Testkriterium, Charakteristika): Beschreibt eine mess- und testbare Bedingung, mit der später überprüft werden kann, ob die Anforderung erfüllt wurde. In der Regel wird dieses Merkmal auch als separater Testfall (Testanforderung) beschrieben.

Optionale Elemente:

  • Überschrift (Heading): Subjekt, maximal ein kurzer Satz, keine IDs etc.
  • Problembeschreibung (Rationale): Beschreibt das die Anforderung verursachende Problem (Gründe).

Inhaltskontrolle

Da Anforderungen nicht konstant bleiben, sondern sich im Verlauf eines Projektes verändern, werden auch Informationen zu ihrem Lebenszyklus benötigt:

  • Versionsgeschichte (History) der Anforderung: Wann wurde sie von wem erstmals formuliert, wann von wem geändert usw.
  • Status: Identifiziert den aktuellen Zustand der Anforderung, beispielsweise ob sie von einem Auftragnehmer akzeptiert oder abgelehnt wurde.

Konfliktkontrolle

Neben diesen Standardbestandteilen existieren zusätzlich Kontrollelemente. Eine wichtige Rolle spielt dabei die Priorisierung von miteinander konkurrierenden Anforderungen um die Reihenfolge der Realisierung festzulegen oder eine Auswahl zu treffen, wenn die zur Verfügung stehenden Ressourcen (Zeit, Geld und Personen) nicht ausreichen, um alle Anforderungen zu erfüllen. Die folgenden Eigenschaften können beschrieben werden:

  • Konflikte (Conflicts): Hier können Anforderungen aufgeführt werden, die dieser Anforderung widersprechen, sodass zwischen ihnen abgewägt werden muss.
  • Priorität (Priority): Ein numerischer Wert, der die Priorität dieser Anwendung definiert und dann wichtig wird, wenn nicht alle Anforderungen erfüllt werden können.

Produktlebenszyklus

Die folgenden Eigenschaften bieten sich an, um die Anforderungen bestimmten Produkten zuzuordnen:

  • Produktversion oder -variante: Identifiziert die Version des zu erstellenden Produkts, in dem die Anforderung erfüllt werden soll.
  • Baustein, Modul oder Komponente: Identifiziert den Teil des zu erstellenden Produkts, mit dem die Anforderung erfüllt werden soll.

Diese Aspekte werden explizit im Rahmen des Konfigurationsmanagement und Variantenmanagement bearbeitet.

Unterstützende Bestandteile

Die eigentliche Beschreibung der Anforderung kann durch folgende Elemente unterstützt werden und somit das Verständnis gefördert und Missverständnisse vermieden werden:

  • Anmerkung oder Kommentar: Bietet Platz für ergänzende Bemerkungen und Klarstellungen.
  • Nomenklatur: Verweist auf formal definierte Fachbegriffe, die in der Anforderung verwendet werden. Hierzu dienen auch ein Glossar oder Abkürzungen.
  • Weiterführendes Material (Supporting Materials): Dokumente, die zum Verständnis der Anforderung benötigt werden.

Rückverfolgbarkeit

Schlussendlich stehen Anforderungen miteinander und mit anderen Artefakten eines Entwicklungsprozesses in Beziehung. Beispielsweise kann eine grobe Anforderung zu mehreren genaueren verfeinert werden. Oder es kann zu Konflikten zwischen Anforderungen kommen, die behoben werden müssen. Grundsätzlich müssen die Anforderungen aber zurückverfolgbar sein.

Geschäftliche Merkmale

Im Verlauf des Anforderungsmanagements werden wirtschaftliche Aspekte berücksichtigt, die zur Formulierung oder Verlinkungen von Anforderungen herangezogen werden können:

  • Geschäftsobjekt: Benennt ein Geschäftsobjekt, auf das sich die Anforderung bezieht.
  • Geschäftsprozess: Benennt einen von der Anforderung betroffenen Geschäftsprozess.
  • Risikomerkmale: Anforderungen können mit Eigenschaften für das Risikomanagement versehen werden.
  • Zielsetzung: Definiert das mit einer Anforderung verfolgte Ziel. Damit kann auch ein Projektauftrag konkretisiert werden. In der Regel sind dies Anforderungen auf Kundenebene zu definieren und spezifizieren.

Qualitätsmerkmale

Anforderungen können frühzeitig mit Eigenschaften im Hinblick auf die Qualität des Produkts ausgestattet werden. Beispiele sind:

  • Kundenzufriedenheit (Customer Satisfaction): Ein numerischer Wert, der angibt, wie sich die Erfüllung der Anforderung positiv auf die Zufriedenheit des Auftraggebers auswirkt.
  • Kundenunzufriedenheit (Customer Dissatisfaction): Ein numerischer Wert, der angibt, wie sich die Nichterfüllung der Anforderung negativ auf die Zufriedenheit des Auftraggebers auswirkt.
  • Abnahmekriterium (Akzeptanzkriterium): Es beschreibt eine eher qualitative Bedingung (Qualität), anhand derer später geprüft wird, ob die Anforderung bzw. das Produkt den Wünschen entspricht oder von diesen abweicht. Qualität sollte stets messbar in die Produktentwicklung integriert werden, vgl. die Quality-by-Design-Strategie.

Siehe auch

Literatur

Einzelnachweise

  1. ↑ ISO/IEC 25010:2023 - Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality model. In: ISO. Abgerufen am 28. Oktober 2026 (englisch).
  2. 1 2 3 4 5 James Robertson, Suzanne Robertson, Adrian Reed: Mastering the Requirements Process. 4. Auflage. Addison-Wesley, Hoboken 2024, ISBN 978-0-13-796950-0 (pearson.com [abgerufen am 28. Oktober 2026]).
  3. 1 2 Chris Rupp: Requirements-Engineering und -Management: aus der Praxis von klassisch bis agil. 6. Auflage. Hanser, München 2014, ISBN 978-3-446-44313-6.
  4. ↑ Rolf Böhm: System-Entwicklung in der Wirtschaftsinformatik (= vdf Wirtschaftsinformatik). 5. Auflage. vdf Hochschulverlag AG an der ETH Zürich, Zürich 2015, ISBN 978-3-7281-2762-4.
  5. ↑ Martin Eigner, Florian Gerhardt, Torsten Gilz, Fabrice Mogo Nem: Informationstechnologie für Ingenieure. Springer Berlin Heidelberg, Berlin, Heidelberg 2012, ISBN 978-3-642-24892-4, doi:10.1007/978-3-642-24893-1 (springer.com [abgerufen am 28. Oktober 2026]).
  6. ↑ S. Bradner: Key words for use in RFCs to Indicate Requirement Levels. RFC 2119. Internet Engineering Task Force, März 1997, doi:10.17487/RFC2119 (englisch, ietf.org).
  7. ↑ R. Barnes, S. Kent, E. Rescorla: Further Key Words for Use in RFCs to Indicate Requirement Levels. RFC 6919. Internet Engineering Task Force, 1. April 2013, doi:10.17487/RFC6919 (englisch, ietf.org).
  8. 1 2 3 4 Bruno Schienmann: Kontinuierliches Anforderungsmanagement: Prozesse, Techniken, Werkzeuge (= Programmer's Choice). Addison-Wesley, München Boston 2002, ISBN 3-8273-1787-8 (englisch).
  9. ↑ Orlena Gotel, Jane Cleland-Huang, Jane Huffman Hayes, Andrea Zisman, Alexander Egyed: Traceability Fundamentals. In: Software and Systems Traceability. Springer London, 2012, ISBN 978-1-4471-2238-8, S. 3–22, doi:10.1007/978-1-4471-2239-5_1 (englisch, springer.com [abgerufen am 19. Dezember 2016]).