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

Diagram požadavkůSyntaxe

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.

Kód
                            
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
Kód
                            
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.

Kód
                            
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
Kód
                            
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

Kód
                            
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:

Kód
                            
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

Kód
                            
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