Best Practice für die Verwendung von Soll und Muss beim Schreiben von Anforderungen


22

Ich habe vorhin eine E-Mail gesendet, in der wir unsere Entwickler daran erinnerten, dass die Verwendung des Wortes "Shall" in Ihren abgeleiteten Anforderungen nicht Ihren funktionalen Anforderungen entsprechen sollte. Beim Schreiben von funktionalen Anforderungen wird das Wort "Muss" verwendet, um die Funktion zu beschreiben, die eine abgeleitete Anforderung ausführen muss.
Abgeleitet =
System Muss Voraussetzung sein Funktional = System muss Voraussetzung erfüllen

Es wurde von einem unserer Senioren zurückgeschickt, dass dies falsch war und in jeder Anforderung verwendet werden sollte.

Liege ich hier falsch und Soll in jeder Anforderung verwendet werden. Ich habe nichts gefunden, um das zu belegen.


Wir verwenden "muss" in jeder Anforderung, die obligatorisch ist. Aber "soll" und "muss" bedeuten mehr oder weniger dasselbe. Siehe auch tynerblain.com/blog/2009/04/22/dont-use-shall
Robert Harvey

4
Denken Sie vielleicht über die MUSTvs SHOULDin RFCs nach? ietf.org/rfc/rfc2119.txt
user10326


Äh, um nicht der Party-Pooper zu sein, aber was gewinnen Sie, wenn jeder das richtige Wort in der richtigen Situation verwendet?
Peter

Antworten:


43

RFC 2119 "Schlüsselwörter zur Verwendung in RFCs zur Angabe von Anforderungsstufen" beschreibt die Bedeutung verschiedener Wörter für Anforderungen.

Die Schlüsselwörter "MUSS", "MUSS NICHT", "ERFORDERLICH", "MUSS", "MUSS NICHT", "MUSS NICHT", "EMPFOHLEN", "MAI" und "OPTIONAL" in diesem Dokument sind zu interpretieren wie in RFC 2119 beschrieben.

Aus diesem Dokument:

  • MUSTist gleichbedeutend mit REQUIREDund SHALLzeigt an, dass die Definition eine absolute Anforderung ist.
  • MUST NOTist äquivalent zu SHALL NOTund zeigt an, dass es ein absolutes Verbot der Spezifikationen ist.
  • SHOULDist gleichbedeutend mit RECOMMENDED: Es gibt triftige Gründe, eine bestimmte Anforderung zu ignorieren, aber die Auswirkungen müssen abgewogen werden.
  • SHOULD NOTund NOT RECOMMENDEDbedeutet, dass ein bestimmtes Verhalten akzeptabel oder nützlich sein kann, aber auch hier müssen die Auswirkungen abgewogen werden.
  • MAYbedeutet OPTIONALund dass die Anforderung wirklich optional ist. Die Interoperabilität mit verschiedenen Systemen, die möglicherweise eine optionale Anforderung implementieren oder nicht, muss durchgeführt werden.

Befolgen Sie diese RFC SHOULD, um die Konsistenz der Kommunikation zwischen Ihren internen Dokumenten und der Standardwelt insgesamt sicherzustellen.


1
solide Antwort; Requisiten zum Ausgraben des RFC

1
@ GlenH7 Ich wusste davon (ich lese gerne RFCs vom 1. April und ein Teil des Humors steckt in "sollte" und "muss", und 2119 ist es sogar auf der Wikipedia- Seite). Ich habe danach gesucht, es gefunden und dann das gelesen Kommentar, den ich gerade machen wollte - zwei darüber war wieder der RFC. Also nicht ganz riesige Requisiten zum Ausgraben.

Meiner Meinung nach müssen Anforderungen / funktionale Anforderungen alle Funktionen für ein abgeleitetes Objekt erfordern, das existieren soll. Aber gegeben werden und müssen Definitionen und wie alle anderen sie verwenden, war ich nur falsch
Tim Lieberman

6

Nicht sicher , wo Sie kamen zu dem Schluss , dass shallund mustgehören auf verschiedenen Ebenen der Dokumentation. Das ist eine ziemlich willkürliche Unterscheidung, die von keiner mir bekannten Quelle gestützt wird.

Shallund mustsind lexikalisch gleichwertig. Es ist eine Aktion, die erforderlich ist.

Ob Sie ein Dokument verwenden shalloder mustwirklich, hängt vom Rest des Dokuments ab, in dem Sie schreiben, und davon, was für einen Satz grammatikalisch sinnvoll ist.

Also ja, du liegst falsch. Aber du bist auch falsch darin, immer shallstatt zu verwenden must. Sie stellen den gleichen Grad der Verpflichtung dar.


3
Shouldund maysind nicht ganz gleichwertig. Sie kennzeichnen beide optionale Funktionen, setzen jedoch shouldim Gegensatz dazu mayvoraus, dass Sie einen guten Grund haben, diese nicht zu implementieren. Ich stimme mit Ihnen auf shallvs. must, though.
Keith Thompson

@KeithThompson - das ist ein guter Punkt und Sie haben Recht. Ich habe diese Zeile aus der Antwort gezogen.

1
Mein Gedanke wurde, dass funktionale Anforderungen verwendet werden müssen, weil, wenn ein abgeleitetes Objekt existieren soll, alle seine Funktionen funktionieren müssen.
Tim Lieberman

Ich denke, irgendwann werde ich als neues Objekt in meinen Kopf eingebettet und muss als Funktion.
Tim Lieberman

@ TimLieberman - das ist keine schlechte Sichtweise, zumal es die beiden Ebenen der Spezifikationen miteinander verbindet. Eigentlich irgendwie nützlich, da manche Leute durch die Semantik der Begriffe verwirrt werden. Zumal ich Prozessdokumente repariert habe, in denen "soll" mehr als nur nicht als Ersatz für "sollte" verwendet wurde. Es ist jedoch nicht sinnvoll genug, dies als bestimmten Standard zu fordern.

2

Wenn Sie zufällig im Rahmen von DO-178- oder DO-254- Richtlinien arbeiten, haben diese ihre eigenen Definitionen für Anforderungen im Allgemeinen und abgeleitete Anforderungen . Diese Richtlinien legen jedoch nicht fest, welches Wort zum Spezifizieren der Anforderungen verwendet werden soll, soll, muss .

Wenn Ihr Anforderungsmanagement-Tool abgeleitete Anforderungen für Sie nicht automatisch aufzeigt, kann es von Vorteil sein, diese von funktionalen Anforderungen durch die Verwendung eines Muss anstelle eines Muss zu unterscheiden, um beispielsweise nachzuweisen, dass die Verifizierungsziele für abgeleitete Anforderungen ebenfalls erfüllt wurden. Dies könnte ein möglicher Grund für die scheinbar willkürliche Dokumentationspflicht sein.

Beachten Sie, dass in DO-178 und DO-254 abgeleitete Anforderung tatsächlich eine Anforderung bedeutet, die nicht von einer übergeordneten Anforderung abgeleitet wurde. Eine abgeleitete Anforderung leitet daher im Wesentlichen eine neue Rückverfolgbarkeitskette ein.

Sowohl der DO-178 als auch der DO-254 sind kommerzielle Richtliniendokumente, die für die Entwicklung von Avionik-Software und -Elektronik verwendet werden und nur gegen eine Gebühr unter www.rtca.org erhältlich sind .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.