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

VereistendiagramSyntaxis

Vereistendiagram

Het behoeftendiagram biedt een visualisatie van behoeften en hun onderlinge verbindingsrelaties, evenals hun relaties met andere documentelementen.

Code
                            
Kopiëren
Insluiten
requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req

Syntaxis

Het behoeftendiagram bevat drie soorten componenten: behoeften, elementen en relaties.

Woorden tussen punthaken zijn opsommingssleutelwoorden, zoals , waarvan de opties in de tabel in detail worden beschreven. user_defined... wordt gebruikt op elke plaats waar gebruikersinvoer nodig is.

Belangrijke opmerking over gebruikerstekst: alle invoer kan tussen dubbele aanhalingstekens worden geplaatst of zonder. Gebruikers moeten echter voorzichtig zijn bij het gebruik van invoer zonder aanhalingstekens. Als andere sleutelwoorden worden gedetecteerd, mislukt het renderen door de editor.

Behoefte

De behoeftedefinitie bevat het behoeftetype, de naam, de ID, de tekst, het risico en de verificatiemethode. De syntaxis is als volgt:

                            
Kopiëren
Insluiten
<type> user_defined_name { id: user_defined_id text: user_defined text risk: <risk> verifymethod: <method> }

Type, risico en methode zijn opsommingen die in SysML zijn gedefinieerd.

Sleutelwoord Opties
Type behoefte, functionele behoefte, interfacebehoefte, prestatiebehoefte, fysieke behoefte, ontwerpbeperking
Risico laag, midden, hoog
Verificatiemethode analyse, inspectie, test, demonstratie

Element

De elementdefinitie bevat de elementnaam, het type en de documentverwijzing; deze drie zijn door de gebruiker gedefinieerd. De elementfunctionaliteit is bedoeld om lichtgewicht te blijven en tegelijkertijd behoeften te koppelen aan delen van andere documenten.

                            
Kopiëren
Insluiten
element myElement { type: string docref: some/doc/path }

Markdown-indeling

Waar tekst door de gebruiker kan worden aangepast (zoals namen, behoeftetekst en elementdocumentverwijzingen), kun je:

  • de tekst tussen dubbele aanhalingstekens plaatsen
  • Markdown-indeling binnen de dubbele aanhalingstekens gebruiken
Code
                            
Kopiëren
Insluiten
requirementDiagram requirement "__test_req__" { id: 1 text: "*italicized text* **bold text**" risk: high verifymethod: test }

Relatie

Een relatie bestaat uit een bronknooppunt, een doelknooppunt en een relatietype.

Volg het volgende definitieformaat:

                            
Kopiëren
Insluiten
{name of source} - <type> -> {name of destination}

of

                            
Kopiëren
Insluiten
{name of destination} <- <type> - {name of source}

"Bronknooppunt" en "doelknooppunt" moeten de namen zijn van elders gedefinieerde behoefte- of elementknooppunten.

Het relatietype kan een van de volgende zijn: bevatten, kopiëren, afleiden, vervullen, verifiëren, verfijnen of traceren.

Gedetailleerd voorbeeld

Dit voorbeeld gebruikt alle functies van dit diagram.

Code
                            
Kopiëren
Insluiten
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

Richting

Je kunt de verklaring direction gebruiken om het diagram in verschillende richtingen te renderen; geldige waarden zijn:

  • TB - van boven naar beneden (standaard)
  • BT - van beneden naar boven
  • LR - van links naar rechts
  • RL - van rechts naar links
Code
                            
Kopiëren
Insluiten
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

Stijl

Behoeften en elementen kunnen met directe stijlen of klassen worden vormgegeven. Over het algemeen accepteert het bij het toepassen van een stijl of klasse een lijst met namen van behoeften of elementen en een lijst met klassenamen, waardoor meerdere klassen in één keer kunnen worden toegewezen. De enige uitzondering is de verkorte syntaxis :::, waarbij de operator meerdere klassen kan toewijzen, maar slechts aan één behoefte of element tegelijk.

Directe stijl

Code
                            
Kopiëren
Insluiten
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

Een klassendefinitie is zoals in het onderstaande voorbeeld:

Gebruik classDef om herbruikbare stijlen te definiëren:

Code
                            
Kopiëren
Insluiten
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

Standaardklasse

Als een klasse de naam default heeft, wordt deze op alle knooppunten toegepast. Specifieke stijlen en klassen moeten daarna worden gedefinieerd om de toegepaste standaardstijl te overschrijven.

                            
Kopiëren
Insluiten
classDef default fill:pink,stroke:#333,stroke-width:4px;

Klasse toepassen

Klassen kunnen op twee manieren worden toegepast:

1. Met de syntaxis class:

                            
Kopiëren
Insluiten
class test_req,test_entity important

2. Met de verkorte syntaxis van de operator ::: tijdens of na de definitie:

                            
Kopiëren
Insluiten
requirement test_req:::important { id: 1 text: class styling example risk: low verifymethod: test }
                            
Kopiëren
Insluiten
element test_elem {} test_elem:::myClass

Combinatievoorbeeld

Code
                            
Kopiëren
Insluiten
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