Was ist eine funktionale Anforderung im Software Engineering?

⚡ Intelligente Zusammenfassung

Funktionale Anforderungen beschreiben jeden Dienst, den ein Softwaresystem bieten muss, und erfassen Eingaben, Verhalten und Ausgaben, sodass Entwickler, Tester und Geschäftsbeteiligte eine einheitliche, überprüfbare Definition dessen haben, was das Produkt tatsächlich leisten muss.

  • 📘 Definition: Eine funktionale Anforderung, auch Funktionsspezifikation genannt, legt fest, was das System leisten muss – Eingaben, Verhalten und Ausgaben, beschrieben aus der Perspektive des Benutzers oder des Unternehmens.
  • 📄 Dokumentumfang: Ein Dokument mit funktionalen Anforderungen umfasst Bildschirmfunktionen, Datenverarbeitungslogik, Berichte, Arbeitsabläufe, Berechtigungen und die Einhaltung gesetzlicher Bestimmungen.
  • 🗂️ Gängige Typen: Transaktionsabwicklung, Geschäftsregeln, Berichtswesen, administrative Funktionen, Berechtigungsstufen, Audit tracKönig, externe Schnittstellen und rechtliche Anforderungen.
  • 💡 Beispiele: Anmeldevalidierung, Verkaufserfassung, rollenbasierte Umsatzanzeige, Banking-API-Integration und Barrierefreiheitskonformität gehören allesamt zu den funktionalen Anforderungen.
  • 🆚 Nicht-funktionaler Kontrast: Funktionale Anforderungen beschreiben, was ein System leistet; nicht-funktionale Anforderungen beschreiben, wie gut es dies leistet – Leistung, Sicherheit und Benutzerfreundlichkeit.
  • Best Practices: Anforderungen sollten detailliert, testbar und auf ein Geschäftsziel ausgerichtet sein. Diese Anforderungen können durch Interviews und Workshops ermittelt werden.

Funktionale Anforderungen in der Softwareentwicklung

Was ist eine funktionale Anforderung?

A Funktionale Anforderung Funktionale Anforderungen (FR) beschreiben die von der Software zu erbringende Leistung. Sie beschreiben ein Softwaresystem oder dessen Komponenten. Eine Funktion wird durch Eingaben, Verhalten und Ausgaben definiert. Sie kann eine Berechnung, Datenmanipulation, einen Geschäftsprozess oder eine Benutzerinteraktion sein und legt fest, was das System leisten muss. Funktionale Anforderungen im Software-Engineering werden auch als funktionale Anforderungen bezeichnet. Funktionale Spezifikation.

Funktionale Anforderungen reichen von einem übergeordneten Bedarf eines Interessengruppenmitglieds bis hin zu einer detaillierten mathematischen Spezifikation. Funktionsfähige Software Anforderungen beschreiben das beabsichtigte Verhalten des Systems.

Was in ein Dokument mit funktionalen Anforderungen aufgenommen werden sollte

Folgendes sollte ein Dokument mit funktionalen Anforderungen umfassen:

Beispielhafte funktionale Anforderungen

Beispielhafte funktionale Anforderungen

Ein Dokument mit funktionalen Anforderungen enthält typischerweise:

  • Details zu den auf jedem Bildschirm durchgeführten Vorgängen
  • Datenverarbeitungslogik, die das System anwenden muss
  • DescriptSystemberichte und andere Ausgaben
  • Vollständige Informationen zu den Arbeitsabläufen, die das System ausführt
  • Wer ist berechtigt, Daten im System zu erstellen, zu ändern oder zu löschen?
  • Wie das System die geltenden regulatorischen und Compliance-Anforderungen erfüllt

Vorteile funktionaler Anforderungen

Die wichtigsten Vorteile eines gut formulierten Dokuments mit funktionalen Anforderungen sind:

  • Überprüft, ob die Anwendung alle spezifizierten Funktionen bereitstellt.
  • Definiert die Funktionalität des Systems und seiner Subsysteme an einem Ort
  • In Kombination mit der Anforderungsanalyse helfen funktionale Anforderungen dabei, fehlende Bedürfnisse zu identifizieren und das erwartete Systemverhalten zu verdeutlichen.
  • Fehler, die in der Anforderungsphase erkannt werden, lassen sich am günstigsten beheben.
  • Unterstützt Benutzerziele, Aufgaben und Aktivitäten

Arten von funktionalen Anforderungen

Gängige Kategorien funktionaler Anforderungen sind:

  • Transaktionsabwicklung
  • Geschäftsregeln
  • Zertifizierungsanforderungen
  • Berichtsanforderungen
  • Administrative Funktionen
  • Berechtigungsstufen
  • Audits Tracking
  • Externe Schnittstellen
  • Historische Datenverwaltung
  • Gesetzliche und regulatorische Anforderungen

Beispiele für funktionale Anforderungen

Nachfolgend finden Sie praktische Beispiele für funktionale Anforderungen:

  • Die Software soll Kunden automatisch anhand des ABC-Kontaktmanagementsystems validieren.
  • Das Verkaufssystem soll es den Benutzern ermöglichen, Kundenverkäufe zu erfassen.
  • Die Hintergrundfarbe aller Fenster in der Anwendung soll blau mit dem hexadezimalen RGB-Wert 0x0000FF sein.
  • Ausschließlich Mitarbeiter auf Führungsebene haben das Recht, Umsatzdaten einzusehen.
  • Das Softwaresystem muss sich in die Banking-API integrieren lassen.
  • Das Softwaresystem muss folgende Anforderungen erfüllen: Abschnitt 508 Anforderungen an die Barrierefreiheit.

Funktionale vs. nicht-funktionale Anforderungen

Hier sind die wichtigsten Unterschiede zwischen funktionalen und nicht-funktionalen Anforderungen in Software Engineering:

Kenngrößen Funktionale Anforderung Nichtfunktionale Anforderung
Was es ist Verb Attribute
Anforderung Es zwingend erforderlich ist Es ist nicht verpflichtend
Erfassungstyp Es wird im Anwendungsfall erfasst. Es wird als Qualitätsmerkmal erfasst.
Endresultat Produkteigenschaft Produkteigenschaften
Capturing Leicht zu erfassen Schwer einzufangen
Ziel Hilft Ihnen, die Funktionalität der Software zu überprüfen. Hilft Ihnen, die Leistung der Software zu überprüfen.
Schwerpunktbereich Konzentrieren Sie sich auf die Benutzeranforderungen Konzentriert sich auf die Erwartungen des Benutzers.
Dokumentation Beschreiben Sie, was das Produkt bewirkt Beschreibt, wie das Produkt funktioniert
Art der Prüfung Funktionstests wie System, Integration, End-to-End, API-Tests, usw. Nicht-funktionale Tests wie Leistung, Stress, Benutzerfreundlichkeit, Sicherheitstests, usw.
Test Ausführung Die Testausführung erfolgt vor den nicht-funktionalen Tests. Nach der Funktionsprüfung
Produkt-Info Produkt-Eigenschaften Produkteigenschaften

Best Practices für das Schreiben funktionaler Anforderungen

Die wichtigsten Best Practices für das Verfassen eines funktionalen Anforderungsdokuments sind:

  • Zwei Anforderungen sollten nicht zu einer zusammengefasst werden; jede Anforderung sollte detailliert und präzise definiert sein.
  • Bitte formulieren Sie alle Anforderungen so vollständig und präzise wie möglich.
  • Alle technischen Anforderungen sind in dem Dokument festzuhalten.
  • Ordnen Sie jede Anforderung den Zielen und Prinzipien zu, die für eine erfolgreiche Softwareentwicklung entscheidend sind.
  • Anforderungen werden durch Interviews, Workshops und informelle Gespräche ermittelt.
  • Dokumentieren Sie jede bekannte, verifizierte Einschränkung, die eine Anforderung wesentlich beeinflusst.
  • Jede Annahme sollte im Dokument festgehalten werden.

Häufige Fehler beim Schreiben funktionaler Anforderungen

Häufige Fehler bei der Erstellung eines Dokuments mit funktionalen Anforderungen sind:

  • Hinzufügen ungerechtfertigter Zusatzinformationen, die Entwickler verwirren
  • Die Details, die Entwickler zum Erstellen der Funktion benötigen, werden weggelassen.
  • Mischregeln, Beispiele, scoping Aussagen oder Ziele in die Anforderung selbst einfließen lassen.
  • Informationen weglassen, die für eine vollständige und genaue Formulierung der Anforderung unerlässlich sind.
  • Anstatt die richtige Antwort zu finden, wird bei einer Änderungsanforderung an einer bestehenden Anforderung festgehalten.
  • Anforderungen schriftlich festzuhalten, die keinem Ziel oder Prinzip zugeordnet sind.

Häufig gestellte Fragen

KI-Tools strukturieren Interviewnotizen, erstellen Entwürfe für User Stories, kennzeichnen mehrdeutige Formulierungen und erkennen Duplikate in großen Anforderungssätzen. Business-Analysten prüfen jedoch weiterhin jeden Vorschlag anhand der tatsächlichen Bedürfnisse der Stakeholder, bevor er in die genehmigte Baseline aufgenommen wird.

Copilot und GPT erstellen anhand kurzer Vorgaben Entwürfe für User Stories, Akzeptanzkriterien und Soll-Anweisungen. Ein Business Analyst prüft jeden Entwurf auf Testbarkeit und Übereinstimmung mit den Geschäftszielen vor der formalen Freigabe.

Eine Geschäftsanforderung beschreibt den Zweck eines Projekts, beispielsweise Umsatzwachstum oder die Einhaltung von Vorschriften. Eine funktionale Anforderung legt fest, was das System leisten muss, um dieses Ergebnis zu erzielen, beispielsweise eine Zahlung zu validieren oder einen Bericht zu generieren.

Verwenden Sie ein eindeutiges Subjekt, das Wort „soll“ und eine überprüfbare Handlung pro Anweisung. Vermeiden Sie mehrdeutige Wörter wie „schnell“ und beschreiben Sie nur ein Verhalten, sodass die Anforderung mit einer einzigen Prüfung (bestanden/nicht bestanden) getestet werden kann.

EARS (Easy Approach to Requirements Syntax) bietet fünf Vorlagen: allgegenwärtig, ereignisgesteuert, zustandsgesteuert, optionale Funktionen und unerwünschtes Verhalten. Jede erzwingt eine testbare Struktur, z. B.: Wenn ein Auslöser erfolgt, soll das System reagieren.

Eine Software-Anforderungsspezifikation ist das zentrale Dokument, das beschreibt, was ein System leisten muss. Funktionale Anforderungen bilden den größten Teil, gefolgt von Schnittstellen, nicht-funktionalen Anforderungen, Anwendungsfällen und Einschränkungen.

Funktionale Anforderungen bestimmen die Testfälle in System-, Integrations-, End-to-End-, API- und Benutzerakzeptanztests. Jede Anforderung ist mindestens einem Testfall zugeordnet, und die Anforderungen TracDie Absicherungsmatrix bestätigt die Abdeckung vor der Veröffentlichung.

Agile Teams formulieren funktionale Anforderungen als User Stories im Format „Als Rolle benötige ich eine bestimmte Fähigkeit, um diesen Wert zu erzielen“. Die zugehörigen Akzeptanzkriterien machen aus der Anforderung eine testbare Definition von „Fertig“.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: