Prozess Typ
Grafischer Ausdruck
Denken Typ
Strukturierter Ausdruck
Notizen Typ
Effizienter Ausdruck

AnforderungsdiagrammSyntax

Anforderungsdiagramm

Das Anforderungsdiagramm bietet eine Visualisierung von Anforderungen und ihren Verbindungen untereinander sowie ihrer Beziehungen zu anderen Dokumentelementen.

Code
                            
Kopieren
Einbetten
requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req

Syntax

Das Anforderungsdiagramm enthält drei Arten von Komponenten: Anforderungen, Elemente und Beziehungen.

Wörter in spitzen Klammern sind Enumerationsschlüsselwörter, wie etwa , deren Optionen in der Tabelle ausführlich beschrieben werden. user_defined... wird überall dort verwendet, wo eine Benutzereingabe erforderlich ist.

Wichtiger Hinweis zu Benutzertext: Alle Eingaben können in doppelte Anführungszeichen gesetzt werden oder auch nicht. Benutzer müssen jedoch vorsichtig sein, wenn sie Eingaben ohne Anführungszeichen verwenden. Wenn andere Schlüsselwörter erkannt werden, schlägt das Rendering im Editor fehl.

Anforderung

Die Anforderungsdefinition enthält den Anforderungstyp, den Namen, die ID, den Text, das Risiko und die Verifizierungsmethode. Die Syntax lautet wie folgt:

                            
Kopieren
Einbetten
<type> user_defined_name { id: user_defined_id text: user_defined text risk: <risk> verifymethod: <method> }

Typ, Risiko und Methode sind in SysML definierte Enumerationen.

Schlüsselwort Optionen
Typ Anforderung, funktionale Anforderung, Schnittstellenanforderung, Leistungsanforderung, physische Anforderung, Designeinschränkung
Risiko Niedrig, Mittel, Hoch
Verifizierungsmethode Analyse, Inspektion, Test, Vorführung

Element

Die Elementdefinition enthält den Elementnamen, den Typ und die Dokumentreferenz, die alle drei benutzerdefiniert sind. Die Elementfunktion soll leichtgewichtig bleiben und gleichzeitig ermöglichen, Anforderungen mit Teilen anderer Dokumente zu verknüpfen.

                            
Kopieren
Einbetten
element myElement { type: string docref: some/doc/path }

Markdown-Format

Überall dort, wo benutzerdefinierter Text erlaubt ist (wie Name, Anforderungstext, Element-Dokumentreferenz usw.), kannst du:

  • den Text in doppelte Anführungszeichen setzen
  • innerhalb der doppelten Anführungszeichen das markdown-Format verwenden
Code
                            
Kopieren
Einbetten
requirementDiagram requirement "__test_req__" { id: 1 text: "*italicized text* **bold text**" risk: high verifymethod: test }

Beziehung

Eine Beziehung besteht aus einem Quellknoten, einem Zielknoten und einem Beziehungstyp.

Es folgt dem folgenden Definitionsformat:

                            
Kopieren
Einbetten
{name of source} - <type> -> {name of destination}

oder

                            
Kopieren
Einbetten
{name of destination} <- <type> - {name of source}

"Quellknoten" und "Zielknoten" sollten die Namen von Anforderungs- oder Elementknoten sein, die an anderer Stelle definiert wurden.

Der Beziehungstyp kann einer von enthält, kopiert, abgeleitet, erfüllt, verifiziert, verfeinert oder verfolgt sein.

Ausführliches Beispiel

Dieses Beispiel verwendet alle Funktionen des Diagramms.

Code
                            
Kopieren
Einbetten
requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } functionalRequirement test_req2 { id: 1.1 text: the second test text. risk: low verifymethod: inspection } performanceRequirement test_req3 { id: 1.2 text: the third test text. risk: medium verifymethod: demonstration } interfaceRequirement test_req4 { id: 1.2.1 text: the fourth test text. risk: medium verifymethod: analysis } physicalRequirement test_req5 { id: 1.2.2 text: the fifth test text. risk: medium verifymethod: analysis } designConstraint test_req6 { id: 1.2.3 text: the sixth test text. risk: medium verifymethod: analysis } element test_entity { type: simulation } element test_entity2 { type: word doc docRef: reqs/test_entity } element test_entity3 { type: "test suite" docRef: github.com/all_the_tests } test_entity - satisfies -> test_req2 test_req - traces -> test_req2 test_req - contains -> test_req3 test_req3 - contains -> test_req4 test_req4 - derives -> test_req5 test_req5 - refines -> test_req6 test_entity3 - verifies -> test_req5 test_req <- copies - test_entity2

Richtung

Mit der direction-Anweisung kann das Diagramm in verschiedenen Richtungen gerendert werden; gültige Werte sind:

  • TB - von oben nach unten (Standard)
  • BT - von unten nach oben
  • LR - von links nach rechts
  • RL - von rechts nach links
Code
                            
Kopieren
Einbetten
requirementDiagram direction LR requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req

Stil

Anforderungen und Elemente können mit direkten Stilen oder Klassen gestaltet werden. Im Allgemeinen akzeptiert es beim Anwenden eines Stils oder einer Klasse eine Liste von Anforderungs- oder Elementnamen sowie eine Liste von Klassennamen, wodurch mehrere Klassen auf einmal zugewiesen werden können. Die einzige Ausnahme ist die Kurzschreibweise :::, bei der der Operator mehrere Klassen zuweisen kann, aber jeweils nur einer Anforderung oder einem Element zugewiesen wird.

Direkter Stil

Code
                            
Kopieren
Einbetten
requirementDiagram requirement test_req { id: 1 text: styling example risk: low verifymethod: test } element test_entity { type: simulation } style test_req fill:#ffa,stroke:#000, color: green style test_entity fill:pink,stroke:#333, color: blue

Die Klassendefinition ist im folgenden Beispiel dargestellt:

Verwende classDef, um wiederverwendbare Stile zu definieren:

Code
                            
Kopieren
Einbetten
requirementDiagram requirement test_req { id: 1 text: "class styling example" risk: low verifymethod: test } element test_entity { type: simulation } classDef important fill:#f96,stroke:#333,stroke-width:4px classDef test fill:#ffa,stroke:#000

Standardklasse

Wenn eine Klasse default genannt wird, wird sie auf alle Knoten angewendet. Bestimmte Stile und Klassen sollten danach definiert werden, um den angewendeten Standardstil zu überschreiben.

                            
Kopieren
Einbetten
classDef default fill:pink,stroke:#333,stroke-width:4px;

Anwendungsklasse

Klassen können auf zwei Arten angewendet werden:

1. Verwendung der class-Syntax:

                            
Kopieren
Einbetten
class test_req,test_entity important

2. Verwendung der Kurzschreibweise mit dem Operator ::: während oder nach der Definition:

                            
Kopieren
Einbetten
requirement test_req:::important { id: 1 text: class styling example risk: low verifymethod: test }
                            
Kopieren
Einbetten
element test_elem {} test_elem:::myClass

Kombinationsbeispiel

Code
                            
Kopieren
Einbetten
requirementDiagram requirement test_req:::important { id: 1 text: "class styling example" risk: low verifymethod: test } element test_entity { type: simulation } classDef important font-weight:bold class test_entity important style test_entity fill:pink,stroke:#333