it-swarm.com.de

Was ist der Unterschied zwischen Benutzeranforderungen und Systemanforderungen?

Nach dem, was ich gelesen habe, glaube ich, dass Benutzeranforderungen nur die Systemanforderungen sind, die in Laienbegriffen angegeben sind. Ist das richtig? Ich beziehe mich speziell auf das Buch "Software Engineering" von Ian Sommerville, dem ich folgen muss. Warum gibt es im folgenden Beispiel aus diesem Buch keine Benutzeranforderung, die der zweiten Systemanforderung entspricht? Beispiel: "Der Benutzer verlangt, dass der Bericht nach 17.30 Uhr am letzten Arbeitstag des Monats erstellt wird." Für mich ist das immer noch in natürlicher Sprache, so dass es für den Benutzer lesbar ist. Wie viele Details sollten in einer Benutzeranforderung im Vergleich zur Systemanforderung enthalten sein und wo ziehen Sie die Grenze?

Benutzeranforderungsdefinition :

1. The MHC-PMS shall generate monthly management reports showing
   the cost of drugs prescribed by each clinic during that month.

Systemanforderungsspezifikation :

1.1. On the last working day of each month, a summary of the drugs
     prescribed, their cost, and the prescribing clinics shall be generated.
1.2. The system shall automatically generate the report for printing after
     17.30 on the last working day of the month.
6
5had3sofQu4rtz

Ich werde mit Ihren Beispielen sprechen.

Das erste Beispiel für eine "Benutzeranforderung" ähnelt eher einem Wunsch oder einer "Funktion". Sie können den Unterschied zwischen einem Feature und einer Anforderung erkennen, indem die Anforderung genügend Details enthält, um sie zu erstellen testbar. Anforderung 1 ist nicht testbar, da es sich um einen Wunsch handelt. "Ich wünschte, das System hätte einige Berichte für die Manager." Woher wissen Sie, dass die Anforderung erfüllt wurde, dass Sie Erfolg erklären können?

Anforderung 1.1 ist testbar, da Sie bis zum letzten Arbeitstag des Monats warten und prüfen können, ob an diesem Tag ein Bericht erstellt wird (oder Sie können Daten in das System einfügen und dessen Verhalten beobachten).

Anforderung 1.2 ist aus den gleichen Gründen überprüfbar.

Keine der Systemanforderungen gibt jedoch Auskunft darüber, wie die Berichte aussehen sollen, wie die Daten angeordnet sind oder wie die Berechnungen durchgeführt werden. Sie beschreiben die Berichte nur allgemein. In der Praxis wird es eine Art Software-Design-Spezifikation geben, die Ihnen detailliert sagt, wie diese Berichte aussehen werden.

12
Robert Harvey

Im Sinne von Ian Sommervilles Software-Engineering-Buch :

Benutzeranforderungen sprechen über die Problemdomäne, die Welt des Benutzers. Sie beschreiben, welche Effekte erzielt werden müssen. Diese Effekte sind die kombinierte Verantwortung der Software, der Hardware und der Benutzer (zusammen: das sozio-technische System).

Systemanforderungen sprechen über die Lösungsdomäne, die Welt der Softwarelogik. Sie beschreiben, was die Software tun muss (im Gegensatz zu den Effekten in der Benutzerwelt, die dadurch erzielt werden können oder nicht). Sie liegen allein in der Verantwortung des technischen Systems (ohne den sozialen Teil).

Zum Beispiel für eine Buchhaltungssoftware,

  • die Benutzeranforderung besteht darin, die korrekten Einnahmen zu berechnen.
  • Die Systemanforderung besteht jedoch nur darin, die korrekte Summe der vom Benutzer eingegebenen Teileinnahmen zu berechnen.

Wenn der Benutzer falsche Teileinnahmen eingibt, muss die Software diese nicht auf magische Weise korrigieren: Die Ausgabe ist die korrekte Summe der Eingaben, aber nicht die korrekte Gesamteinnahmen.

Der Unterschied ist für die meisten einfachen Informationssysteme nicht besonders interessant. Dies kann für lebenswichtige Software sehr wichtig sein. siehe zum Beispiel die verschiedenen Unfälle, bei denen die Schubumkehr in einem Verkehrsflugzeug aktiviert werden kann oder nicht: Die Benutzeranforderung "Rückwärtsschub kann nur aktiviert werden, wenn sich das Flugzeug auf einer Landebahn befindet" hat sich als überraschend schwierig, sich in Systemanforderungen zu verwandeln, die zuverlässig zum gewünschten Effekt führen .

10
Lutz Prechelt

Benutzeranforderungen Geben Sie an, was die Anwendung tun muss/sollte, um die Anforderungen des Benutzers zu erfüllen. Es ist eine Liste von Funktionen, die eine Anwendung haben muss/sollte, und es wird eine Anleitung verwendet, wenn Sie eine Anwendung entwickeln: Dann werden alle Punkte überprüft, Sie sind (wahrscheinlich) fertig.

Ich neige dazu, dies einfach die "Liste der Funktionen" zu nennen.

Systemanforderungen Geben Sie an, welches System das Programm ausführen muss:

  • Hardware: CPU, Speicher, Speicherplatz usw.
  • Software: Betriebssystem, Bibliotheken, Pakete usw.

Es gibt ein bisschen Verwirrung:

  • In "Benutzeranforderungen" ist der Benutzer ein Subjekt, dasjenige, das benötigt, und das zu entwickelnde Programm ist ein Objekt.
  • In "Systemanforderungen" ist das zu entwickelnde Programm ein Thema (und es wird nicht einmal in einem Satz erwähnt), während "System" ein Objekt ist.

Das Wort "System" kann sich auf verschiedene Dinge beziehen:

  • software wird entwickelt
  • physisches Gerät, auf dem die zu entwickelnde Software ausgeführt wird
  • netzwerk solcher Geräte
  • Betriebssystem zusammen mit Ausführungsumgebung

Das, was Sie " System Anforderungsspezifikation" genannt haben, ist wahrscheinlich so etwas wie die Software Anforderungsspezifikation - Ich halte das für eine Obermenge von Benutzeranforderungen.

0
scriptin