Proces Typ
Wyrażenie graficzne
Myślenie Typ
Wyrażenie strukturalne
Notatki Typ
Efektywne wyrażanie

Diagram wymagańSkładnia

Diagram wymagań

Diagram wymagań zapewnia wizualizację wymagań i ich wzajemnych relacji połączeń, a także relacji z innymi elementami dokumentu.

Kod
                            
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
Kod
                            
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.

Kod
                            
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
Kod
                            
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

Kod
                            
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:

Kod
                            
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

Kod
                            
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