Was ist der Unterschied zwischen funktionalen und nicht funktionalen Anforderungen? [geschlossen]

282

Was ist der Unterschied zwischen funktionalen und nicht funktionalen Anforderungen beim Entwurf eines Softwaresystems?

Nennen Sie Beispiele für jeden Fall.

Omid7
quelle
@TravisJ Lassen Sie uns das Tag noch einmal bei Fragen belassen, bis wir mit der ersten Phase der Tag-Verbrennung fertig sind.
TylerH

Antworten:

524

Eine funktionale Anforderung beschreibt , was ein Software - System tun soll, während nicht-funktionale Anforderungen stellen Beschränkungen auf , wie das System so tun.

Lassen Sie mich näher darauf eingehen.

Ein Beispiel für eine funktionale Anforderung wäre:

  • Ein System muss eine E-Mail senden, wenn eine bestimmte Bedingung erfüllt ist (z. B. eine Bestellung aufgegeben, ein Kunde angemeldet usw.).

Eine verwandte nicht funktionale Anforderung für das System kann sein:

  • E-Mails sollten mit einer Latenz von nicht mehr als 12 Stunden ab einer solchen Aktivität gesendet werden.

Die funktionale Anforderung beschreibt das Verhalten des Systems in Bezug auf die Funktionalität des Systems. Die nicht funktionale Anforderung erarbeitet ein Leistungsmerkmal des Systems.

Typischerweise fallen nicht funktionale Anforderungen in Bereiche wie:

  • Barrierefreiheit
  • Kapazität, aktuell und prognostiziert
  • Beachtung
  • Dokumentation
  • Notfallwiederherstellung
  • Effizienz
  • Wirksamkeit
  • Erweiterbarkeit
  • Fehlertoleranz
  • Interoperabilität
  • Wartbarkeit
  • Privatsphäre
  • Portabilität
  • Qualität
  • Verlässlichkeit
  • Elastizität
  • Reaktionszeit
  • Robustheit
  • Skalierbarkeit
  • Sicherheit
  • Stabilität
  • Unterstützbarkeit
  • Testbarkeit

Eine vollständigere Liste finden Sie im Wikipedia-Eintrag für nicht funktionale Anforderungen .

Nicht funktionale Anforderungen werden manchmal in Form von Metriken definiert (dh etwas, das über das System gemessen werden kann), um sie greifbarer zu machen. Nicht funktionale Anforderungen können auch Aspekte des Systems beschreiben, die sich nicht auf seine Ausführung, sondern auf seine zeitliche Entwicklung beziehen (z. B. Wartbarkeit, Erweiterbarkeit, Dokumentation usw.).

LBushkin
quelle
Ich werde Ihnen natürlich angesichts Ihres Rufs und Ihrer beruflichen Laufbahn (die ich mir vor dem Schreiben angesehen habe) aufschieben: Könnte Ihr Beispiel für nicht funktionale Anforderungen nicht als Verhalten angesehen werden? Oder geht es Ihnen eher um die Tatsache, dass nicht funktionale Anforderungen Einschränkungen in Bezug auf Verhaltensweisen beschreiben?
Thomas
1
Um meine Frage ein wenig zu klären (und sie ist möglicherweise nicht zu beantworten): Gibt es eine Möglichkeit, die Grenze dessen, was Verhalten ausmacht, besser aufzuklären?
Thomas
plus 1 für ein schönes Beispiel für ein E-Mail-System. :)
Ahtisham
33

Funktionsanforderungen sind die wichtigsten Dinge, die der Benutzer von der Software erwartet. Wenn es sich bei der Anwendung beispielsweise um eine Bankanwendung handelt, sollte die Anwendung in der Lage sein, ein neues Konto zu erstellen, das Konto zu aktualisieren, ein Konto zu löschen usw. Die Funktionsanforderungen sind detailliert und spezifiziert im Systemdesign

Nicht funktionale Anforderungen sind nicht einfach die Anforderungen des Systems, sondern hängen (in gewisser Weise) mit der Benutzerfreundlichkeit zusammen. Beispielsweise ist für eine Bankanwendung eine wichtige nicht funktionale Anforderung verfügbar. Die Anwendung sollte rund um die Uhr ohne Ausfallzeiten verfügbar sein wenn möglich.

Pulasthi
quelle
27

Funktionale Anforderungen

  1. Die funktionalen Anforderungen geben eine Funktion an, die ein System oder eine Systemkomponente ausführen muss. Es kann auf verschiedene Arten dokumentiert werden. Die häufigsten sind schriftliche Beschreibungen in Dokumenten und Anwendungsfälle.

  2. Anwendungsfälle können Textaufzählungslisten sowie Diagramme sein, die Benutzeraktionen beschreiben. Jeder Anwendungsfall veranschaulicht Verhaltensszenarien anhand einer oder mehrerer funktionaler Anforderungen. Oft beginnt ein Analyst jedoch damit, eine Reihe von Anwendungsfällen zu ermitteln, aus denen der Analyst die funktionalen Anforderungen ableiten kann, die implementiert werden müssen, damit ein Benutzer jeden Anwendungsfall ausführen kann.

  3. Funktionale Anforderungen ist das, was ein System erfüllen soll . Es kann sein

    • Berechnungen
    • Technische Details
    • Datenmanipulation
    • Datenverarbeitung
    • Andere spezifische Funktionen
  4. Eine typische funktionale Anforderung enthält einen eindeutigen Namen und eine eindeutige Nummer, eine kurze Zusammenfassung und eine Begründung. Diese Informationen werden verwendet, um dem Leser zu helfen, zu verstehen, warum die Anforderung benötigt wird, und um die Anforderung durch die Entwicklung des Systems zu verfolgen.

Nicht-funktionale Anforderungen

LBushkin hat bereits mehr über nicht funktionale Anforderungen erklärt. Ich werde mehr hinzufügen.

  1. Nichtfunktionale Anforderungen sind andere Anforderungen als funktionale Anforderungen. Dies sind die Anforderungen, die Kriterien angeben, anhand derer der Betrieb eines Systems beurteilt werden kann, und nicht bestimmte Verhaltensweisen .

  2. Nichtfunktionale Anforderungen bestehen in Form von "System muss sein" , einer Gesamteigenschaft des Systems als Ganzes oder eines bestimmten Aspekts und nicht einer bestimmten Funktion. Die Gesamteigenschaften des Systems kennzeichnen üblicherweise den Unterschied zwischen dem Erfolg oder dem Misserfolg des Entwicklungsprojekts.

  3. Nichtfunktionale Anforderungen - können in zwei Hauptkategorien unterteilt werden:

    • Ausführungsqualitäten wie Sicherheit und Benutzerfreundlichkeit, die zur Laufzeit beobachtet werden können.
    • Evolutionsqualitäten wie Testbarkeit, Wartbarkeit, Erweiterbarkeit und Skalierbarkeit, die in der statischen Struktur des Softwaresystems enthalten sind.
  4. Nicht funktionale Anforderungen beschränken das zu entwickelnde Produkt und den Entwicklungsprozess und legen externe Einschränkungen fest, die das Produkt erfüllen muss.
  5. Der IEEE-Std 830 - 1993 listet 13 nicht funktionale Anforderungen auf, die in ein Dokument mit Softwareanforderungen aufgenommen werden sollen.
  1. Leistungsanforderungen
  2. Schnittstellenanforderungen
  3. Betriebsanforderungen
  4. Ressourcenanforderungen
  5. Überprüfungsanforderungen
  6. Akzeptanzanforderungen
  7. Dokumentationsanforderungen
  8. Sicherheitsanforderungen
  9. Portabilitätsanforderungen
  10. Qualitätsanforderungen
  11. Zuverlässigkeitsanforderungen
  12. Wartbarkeitsanforderungen
  13. Sicherheitsanforderungen

Ob eine Anforderung als funktionale oder nicht funktionale Anforderung ausgedrückt wird oder nicht, kann abhängen:

  • auf der Detailebene, die in das Anforderungsdokument aufgenommen werden soll
  • das Maß an Vertrauen, das zwischen einem Systemkunden und einem Systementwickler besteht.

Ex. Möglicherweise muss ein System dem Benutzer eine Anzeige der Anzahl der Datensätze in einer Datenbank anzeigen. Dies ist eine funktionale Anforderung. Wie aktuell [Aktualisierung] diese Nummer sein muss, ist eine nicht funktionale Anforderung. Wenn die Anzahl in Echtzeit aktualisiert werden muss, müssen die Systemarchitekten sicherstellen, dass das System in der Lage ist, die Anzahl der [angezeigten] Datensätze innerhalb eines akzeptabel kurzen Intervalls nach der Anzahl der sich ändernden Datensätze zu aktualisieren.

Verweise:

  1. Funktionale Anforderung
  2. Nicht funktionale Anforderung
  3. Quantifizierung und Rückverfolgbarkeit von Anforderungen
Somnath Muluk
quelle
1
gut erklärt. Vielen Dank!
Arslan Ramay
1
Schöne Antwort mit guten Referenzen. Ich möchte nur den aktuelleren Standard hinzufügen, da IEEE 830-1993 abgelöst wurde. Der neueste Standard ist ISO / IEC / IEEE 29148: 2018 "System- und Software-Engineering - Lebenszyklusprozesse - Anforderungs-Engineering" ( iso.org/standard/72089.html )
Abmeldung
8

Funktionale Anforderungen sind solche, die sich auf die technische Funktionalität des Systems beziehen.

Eine nicht funktionierende Anforderung ist eine Anforderung, die Kriterien angibt, anhand derer der Betrieb eines Systems unter bestimmten Bedingungen und nicht unter bestimmten Verhaltensweisen beurteilt werden kann.

Wenn Sie beispielsweise eine Einkaufsseite in Betracht ziehen, unterliegt das Hinzufügen von Artikeln zum Warenkorb, das Durchsuchen verschiedener Artikel, das Anwenden von Angeboten und Angeboten und das erfolgreiche Aufgeben von Bestellungen funktionalen Anforderungen.

Während als Leistung des Systems in Spitzenzeiten, Zeit, die das System benötigt, um Daten aus der Datenbank abzurufen, Sicherheit der Benutzerdaten, Fähigkeit des Systems zu verarbeiten, wenn eine große Anzahl von Benutzeranmeldungen unter nicht funktionale Anforderungen fällt.

Maruthi Srinivas
quelle
Hervorragende Antwort.
Iftekhar
3

FUNKTIONSANFORDERUNGEN Die Aktivitäten, die das System ausführen muss

  • Unternehmen nutzen Funktionen, die die Benutzer ausführen
  • Beispiel für Anwendungsfälle, wenn Sie für ein Abrechnungssystem die erforderlichen Funktionen entwickeln
  • elektronische Überweisungen generieren
  • Berechnungsprovisionsbeträge
  • Lohnsteuern berechnen
  • Steuerabzug dem IRS melden
ABDUL
quelle
2

Ich denke, die funktionale Anforderung ist von Client zu Entwickler, was die Funktionalität für den Benutzer durch die Software betrifft, und die nicht funktionale Anforderung ist von Entwickler zu Client, dh die Anforderung wird nicht vom Client gegeben, sondern vom Entwickler bereitgestellt, um das System reibungslos auszuführen, z Sicherheit, Flexibilität, Skalierbarkeit, Verfügbarkeit usw.

Rajnor DS
quelle