Diagram požadavků
Diagram požadavků poskytuje vizualizaci požadavků a jejich vzájemných spojení a také vztahů k dalším prvkům dokumentace.
Kopírovat
Vložení
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
element test_entity {
type: simulation
}
test_entity - satisfies -> test_req
Syntaxe
Diagram požadavků obsahuje tři typy komponent: požadavky, prvky a vztahy.
Slova v lomených závorkách jsou klíčová slova výčtu, jako například, jejichž možnosti jsou podrobně popsány v tabulce. user_defined... se používá všude, kde je vyžadován vstup od uživatele.
Důležitá poznámka k uživatelskému textu: všechny vstupy mohou být uzavřeny do dvojitých uvozovek nebo mohou být bez nich. Uživatel však musí být při použití vstupu bez uvozovek opatrný. Pokud jsou detekována jiná klíčová slova, editor selže při vykreslování.
Požadavek
Definice požadavku obsahuje typ požadavku, název, ID, text, riziko a metodu ověření. Syntaxe je následující:
Kopírovat
Vložení
<type> user_defined_name {
id: user_defined_id
text: user_defined text
risk: <risk>
verifymethod: <method>
}
Typ, riziko a metoda jsou výčty definované v SysML.
| Klíčové slovo | Možnosti |
|---|---|
| Typ | požadavek, funkční požadavek, požadavek na rozhraní, výkonnostní požadavek, fyzický požadavek, konstrukční omezení |
| Riziko | nízké, střední, vysoké |
| Metoda ověření | analýza, kontrola, test, demonstrace |
Prvek
Definice prvku obsahuje název prvku, typ a odkaz na dokument, přičemž všechny tři jsou definovány uživatelem. Funkce prvku je navržena tak, aby zůstala odlehčená a zároveň umožňovala propojit požadavky s částmi jiných dokumentů.
Kopírovat
Vložení
element myElement {
type: string
docref: some/doc/path
}
Formát Markdown
V místech, kde je uživateli povolen vlastní text (jako je název, text požadavku, odkaz na dokument prvku atd.), můžete:
- uzavřít text do dvojitých uvozovek
- použít formát markdown uvnitř dvojitých uvozovek
Kopírovat
Vložení
requirementDiagram
requirement "__test_req__" {
id: 1
text: "*italicized text* **bold text**"
risk: high
verifymethod: test
}
Vztah
Vztah se skládá ze zdrojového uzlu, cílového uzlu a typu vztahu.
Řídí se následujícím formátem definice:
Kopírovat
Vložení
{name of source} - <type> -> {name of destination}
nebo
Kopírovat
Vložení
{name of destination} <- <type> - {name of source}
"Zdrojový uzel" a "cílový uzel" by měly být názvy uzlů požadavků nebo prvků definovaných jinde.
Typ vztahu může být jeden z: obsahuje, kopíruje, odvozuje, uspokojuje, ověřuje, zpřesňuje nebo sleduje.
Podrobný případ
Tento příklad využívá všechny funkce diagramu.
Kopírovat
Vložení
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
Směr
Pomocí příkazu direction můžete nastavit vykreslení diagramu v různých směrech; platné hodnoty jsou:
- TB - shora dolů (výchozí)
- BT - zdola nahoru
- LR - zleva doprava
- RL - zprava doleva
Kopírovat
Vložení
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
Styl
Požadavky a prvky lze stylovat pomocí přímého stylu nebo tříd. Obecně platí, že při použití stylu nebo třídy přijímá seznam názvů požadavků nebo prvků a seznam názvů tříd, což umožňuje přiřadit více tříd najednou. Jedinou výjimkou je zkrácená syntaxe :::, kde operátor může přiřadit více tříd, ale vždy pouze jednomu požadavku nebo prvku najednou.
Přímý styl
Kopírovat
Vložení
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
Definice třídy je uvedena v následujícím příkladu:
Definice opakovaně použitelných stylů pomocí classDef:
Kopírovat
Vložení
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
Výchozí třída
Pokud je některá třída pojmenována default, použije se na všechny uzly. Konkrétní styly a třídy by měly být definovány až poté, aby přepsaly použitý výchozí styl.
Kopírovat
Vložení
classDef default fill:pink,stroke:#333,stroke-width:4px;
Třída použití
Třídu lze použít dvěma způsoby:
1. Použití syntaxe class:
Kopírovat
Vložení
class test_req,test_entity important
2. Použití zkrácené syntaxe operátoru ::: během definice nebo po ní:
Kopírovat
Vložení
requirement test_req:::important {
id: 1
text: class styling example
risk: low
verifymethod: test
}
Kopírovat
Vložení
element test_elem {}
test_elem:::myClass
Příklad kombinace
Kopírovat
Vložení
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