Register
Process Type
Graphical expression
Mind Type
Structured expression
Note Type
Efficient expression

KravdiagramSyntax

Kravdiagram

Kravdiagram ger en visualisering av krav och deras inbördes kopplingar samt deras relationer till andra dokumentelement.

Kod
                            
Kopiera
Bädda in
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

Ett kravdiagram innehåller tre typer av komponenter: krav, element och relationer.

Ord markerade med vinkelparenteser är uppräkningsnyckelord, som , vars alternativ beskrivs i tabellen. user_defined... används där användaren behöver ange något.

Viktig anmärkning om användartext: all indata kan omges av dubbla citattecken eller skrivas utan. Användaren måste dock vara försiktig när indata utan citattecken används. Om andra nyckelord upptäcks misslyckas redigerarens rendering.

Krav

En kravdefinition innehåller kravtyp, namn, ID, text, risk och verifieringsmetod. Syntaxen är följande:

                            
Kopiera
Bädda in
<type> user_defined_name { id: user_defined_id text: user_defined text risk: <risk> verifymethod: <method> }

Typ, risk och metod är uppräkningar definierade i SysML.

Nyckelord Alternativ
Typ Krav, funktionellt krav, gränssnittskrav, prestandakrav, fysiskt krav, designbegränsning
Risk Låg, medel, hög
Verifieringsmetod Analys, kontroll, test, demonstration

Element

En elementdefinition innehåller elementnamn, typ och dokumentreferens, vilka alla tre är användardefinierade. Elementfunktionen är avsedd att hållas lättviktig samtidigt som den gör det möjligt att koppla krav till delar av andra dokument.

                            
Kopiera
Bädda in
element myElement { type: string docref: some/doc/path }

Markdown-format

Där användardefinierad text tillåts (som namn, kravtext, elementdokumentreferens osv.) kan du:

  • Omge texten med dubbla citattecken
  • Använda markdown-format inom dubbla citattecken
Kod
                            
Kopiera
Bädda in
requirementDiagram requirement "__test_req__" { id: 1 text: "*italicized text* **bold text**" risk: high verifymethod: test }

Relation

En relation består av en källnod, en målnod och en relationstyp.

Följ följande definitionsformat:

                            
Kopiera
Bädda in
{name of source} - <type> -> {name of destination}

eller

                            
Kopiera
Bädda in
{name of destination} <- <type> - {name of source}

"Källnod" och "målnod" bör vara namnen på krav- eller elementnoder som definieras någon annanstans.

Relationstypen kan vara en av innehåller, kopierar, härleder, uppfyller, verifierar, förfinar eller spårar.

Detaljerat exempel

Detta exempel använder alla funktioner i diagrammet.

Kod
                            
Kopiera
Bädda in
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

Riktning

Du kan använda direction -satsen för att rendera diagrammet i olika riktningar; giltiga värden är:

  • TB - uppifrån och ned (standard)
  • BT - nedifrån och upp
  • LR - vänster till höger
  • RL - höger till vänster
Kod
                            
Kopiera
Bädda in
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

Krav och element kan stilsättas med direkt stil eller klasser. Generellt tar det, när en stil eller klass tillämpas, emot en lista med krav- eller elementnamn samt en lista med klassnamn, vilket tillåter tilldelning av flera klasser samtidigt. Det enda undantaget är kortforms-syntaxen :::, där operatorn kan tilldela flera klasser men endast till ett krav eller element i taget.

Direkt stil

Kod
                            
Kopiera
Bädda in
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

En klassdefinition visas i följande exempel:

Använd classDef för att definiera återanvändbara stilar:

Kod
                            
Kopiera
Bädda in
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

Standardklass

Om en klass heter default tillämpas den på alla noder. Specifika stilar och klasser bör definieras efteråt för att åsidosätta den tillämpade standardstilen.

                            
Kopiera
Bädda in
classDef default fill:pink,stroke:#333,stroke-width:4px;

Tillämpa klass

Klasser kan tillämpas på två sätt:

1. Använd class -syntaxen:

                            
Kopiera
Bädda in
class test_req,test_entity important

2. Använd operatorn ::: (kortforms-syntax) under eller efter definitionen:

                            
Kopiera
Bädda in
requirement test_req:::important { id: 1 text: class styling example risk: low verifymethod: test }
                            
Kopiera
Bädda in
element test_elem {} test_elem:::myClass

Kombinerat exempel

Kod
                            
Kopiera
Bädda in
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