Registrati
Diagrammi di flusso
Espressione grafica
Mappe mentali
Espressione strutturata
Note
Espressione efficiente

Diagramma dei requisitiSintassi

Diagramma dei requisiti

Il diagramma dei requisiti offre una visualizzazione dei requisiti e delle loro connessioni reciproche, nonché delle relazioni con altri elementi documentali.

Codice
                            
Copia
Incorpora
requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req

Sintassi

Il diagramma dei requisiti contiene tre componenti: requisiti, elementi e relazioni.

Le parole indicate tra parentesi angolari sono parole chiave di enumerazione, come , le cui opzioni sono dettagliate nella tabella. user_defined... è usato ovunque sia richiesto un input dell'utente.

Nota importante sul testo dell'utente: tutti gli input possono essere racchiusi tra virgolette doppie oppure no. Tuttavia, l'utente deve prestare attenzione quando usa input senza virgolette. Se vengono rilevate altre parole chiave, l'editor non riuscirà a eseguire il rendering.

Requisito

La definizione di un requisito comprende tipo di requisito, nome, ID, testo, rischio e metodo di verifica. La sintassi è la seguente:

                            
Copia
Incorpora
<type> user_defined_name { id: user_defined_id text: user_defined text risk: <risk> verifymethod: <method> }

Tipo, rischio e metodo sono enumerazioni definite in SysML.

Parola chiave Opzioni
Tipo requisito, requisito funzionale, requisito di interfaccia, requisito di prestazione, requisito fisico, vincolo di progettazione
Rischio basso, medio, alto
Metodo di verifica analisi, ispezione, test, dimostrazione

Elemento

La definizione di un elemento comprende il nome dell'elemento, il tipo e il riferimento documentale, tutti e tre definiti dall'utente. La funzionalità degli elementi è pensata per rimanere leggera, consentendo al contempo di collegare i requisiti a parti di altri documenti.

                            
Copia
Incorpora
element myElement { type: string docref: some/doc/path }

Formato Markdown

Dove è consentito all'utente di personalizzare il testo (ad esempio nomi, testo dei requisiti, riferimenti documentali degli elementi), puoi:

  • Racchiudere il testo tra virgolette doppie
  • Usare il formato markdown all'interno delle virgolette doppie
Codice
                            
Copia
Incorpora
requirementDiagram requirement "__test_req__" { id: 1 text: "*italicized text* **bold text**" risk: high verifymethod: test }

Relazione

Una relazione è composta da nodo di origine, nodo di destinazione e tipo di relazione.

Seguendo il seguente formato di definizione:

                            
Copia
Incorpora
{name of source} - <type> -> {name of destination}

oppure

                            
Copia
Incorpora
{name of destination} <- <type> - {name of source}

"Nodo di origine" e "Nodo di destinazione" devono essere nomi di nodi requisito o elemento definiti altrove.

Il tipo di relazione può essere uno tra: contiene, copia, deriva, soddisfa, verifica, affina o traccia.

Caso dettagliato

Questo esempio utilizza tutte le funzionalità di questo diagramma.

Codice
                            
Copia
Incorpora
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

Direzione

Puoi usare l'istruzione direction per renderizzare il diagramma in direzioni diverse; i valori validi sono:

  • TB - dall'alto verso il basso (predefinito)
  • BT - dal basso verso l'alto
  • LR - da sinistra verso destra
  • RL - da destra verso sinistra
Codice
                            
Copia
Incorpora
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

Stile

Requisiti ed elementi possono essere stilizzati usando stili diretti o classi. In generale, quando si applica uno stile o una classe, si accetta un elenco di nomi di requisiti o elementi e un elenco di nomi di classi, permettendo così di assegnare più classi in una volta. L'unica eccezione è la sintassi abbreviata :::, in cui l'operatore può assegnare più classi ma solo a un requisito o elemento alla volta.

Stile diretto

Codice
                            
Copia
Incorpora
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

La definizione della classe è mostrata nell'esempio seguente:

Usare classDef per definire stili riutilizzabili:

Codice
                            
Copia
Incorpora
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

Classe predefinita

Se una classe è chiamata default, verrà applicata a tutti i nodi. Gli stili e le classi specifici dovrebbero essere definiti dopo, per sovrascrivere lo stile predefinito già applicato.

                            
Copia
Incorpora
classDef default fill:pink,stroke:#333,stroke-width:4px;

Classe applicata

Le classi possono essere applicate in due modi:

1. Usare la sintassi class:

                            
Copia
Incorpora
class test_req,test_entity important

2. Usare la sintassi abbreviata con l'operatore ::: durante o dopo la definizione:

                            
Copia
Incorpora
requirement test_req:::important { id: 1 text: class styling example risk: low verifymethod: test }
                            
Copia
Incorpora
element test_elem {} test_elem:::myClass

Esempio combinato

Codice
                            
Copia
Incorpora
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