Kravdiagram
Kravdiagram ger en visualisering av krav och deras inbördes kopplingar samt deras relationer till andra dokumentelement.
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
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.
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
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
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:
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
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