Diagram wymagań
Diagram wymagań zapewnia wizualizację wymagań i ich wzajemnych relacji połączeń, a także relacji z innymi elementami dokumentu.
Kopiuj
Osadź
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
element test_entity {
type: simulation
}
test_entity - satisfies -> test_req
Składnia
Diagram wymagań zawiera trzy komponenty: wymagania, elementy i relacje.
Słowa ujęte w nawiasy kątowe to słowa kluczowe wyliczeń, np. ; ich opcje opisano szczegółowo w tabeli. user_defined... stosuje się wszędzie tam, gdzie wymagane jest wprowadzenie danych przez użytkownika.
Ważna uwaga dotycząca tekstu użytkownika: wszystkie dane wejściowe można ująć w podwójne cudzysłowy lub pozostawić bez nich. Jednak podczas korzystania z danych wejściowych bez cudzysłowów użytkownik musi zachować ostrożność. Jeśli wykryte zostaną inne słowa kluczowe, edytor nie wyrenderuje diagramu.
Wymaganie
Definicja wymagania zawiera typ wymagania, nazwę, ID, tekst, ryzyko i metodę weryfikacji. Składnia jest następująca:
Kopiuj
Osadź
<type> user_defined_name {
id: user_defined_id
text: user_defined text
risk: <risk>
verifymethod: <method>
}
Typ, ryzyko i metoda to wyliczenia zdefiniowane w SysML.
| Słowo kluczowe | Opcje |
|---|---|
| Typ | Wymaganie, wymaganie funkcjonalne, wymaganie interfejsu, wymaganie wydajnościowe, wymaganie fizyczne, ograniczenie projektowe |
| Ryzyko | Niski, średni, wysoki |
| Metoda weryfikacji | Analiza, inspekcja, test, demonstracja |
Element
Definicja elementu zawiera nazwę elementu, typ i odwołanie do dokumentu; wszystkie trzy są definiowane przez użytkownika. Funkcja elementów ma na celu pozostanie lekką, jednocześnie umożliwiając powiązanie wymagań z częściami innych dokumentów.
Kopiuj
Osadź
element myElement {
type: string
docref: some/doc/path
}
Format Markdown
W miejscach, w których użytkownik może dostosować tekst (takich jak nazwa, tekst wymagania, odwołanie do dokumentu elementu itp.), możesz:
- ująć tekst w podwójne cudzysłowy
- użyć formatu markdown wewnątrz podwójnych cudzysłowów
Kopiuj
Osadź
requirementDiagram
requirement "__test_req__" {
id: 1
text: "*italicized text* **bold text**"
risk: high
verifymethod: test
}
Relacja
Relacja składa się z węzła źródłowego, węzła docelowego i typu relacji.
Zgodnie z następującym formatem definicji:
Kopiuj
Osadź
{name of source} - <type> -> {name of destination}
lub
Kopiuj
Osadź
{name of destination} <- <type> - {name of source}
"Węzeł źródłowy" i "węzeł docelowy" powinny być nazwami węzłów wymagań lub elementów zdefiniowanych gdzie indziej.
Typ relacji może być jednym z: zawiera, kopiuje, pochodzi, spełnia, weryfikuje, doprecyzowuje lub śledzi.
Szczegółowy przykład
Ten przykład wykorzystuje wszystkie funkcje tego diagramu.
Kopiuj
Osadź
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
Kierunek
Możesz użyć instrukcji direction, aby renderować diagram w różnych kierunkach; prawidłowe wartości to:
- TB - od góry do dołu (domyślnie)
- BT - od dołu do góry
- LR - od lewej do prawej
- RL - od prawej do lewej
Kopiuj
Osadź
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
Wymaganiom i elementom można nadać styl za pomocą stylu bezpośredniego lub klas. Ogólnie rzecz biorąc, podczas stosowania stylu lub klasy przyjmuje ona listę nazw wymagań lub elementów oraz listę nazw klas, co pozwala na przypisanie wielu klas naraz. Jedynym wyjątkiem jest składnia skrócona :::, w której operator może przypisać wiele klas, ale tylko do jednego wymagania lub elementu naraz.
Styl bezpośredni
Kopiuj
Osadź
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
Definicja klasy jest pokazana w poniższym przykładzie:
Użyj classDef, aby zdefiniować style wielokrotnego użytku:
Kopiuj
Osadź
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
Klasa domyślna
Jeśli klasa nosi nazwę default, zostanie zastosowana do wszystkich węzłów. Konkretne style i klasy należy zdefiniować po niej, aby nadpisać już zastosowany styl domyślny.
Kopiuj
Osadź
classDef default fill:pink,stroke:#333,stroke-width:4px;
Zastosuj klasę
Klasy można zastosować na dwa sposoby:
1. Użycie składni class:
Kopiuj
Osadź
class test_req,test_entity important
2. Użycie operatora ::: (składnia skrócona) podczas definiowania lub po nim:
Kopiuj
Osadź
requirement test_req:::important {
id: 1
text: class styling example
risk: low
verifymethod: test
}
Kopiuj
Osadź
element test_elem {}
test_elem:::myClass
Przykład łączony
Kopiuj
Osadź
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