Processo Tipo
Expressão gráfica
Pensamento Tipo
Expressão estruturada
Anotações Tipo
Expressão eficiente

Diagrama de requisitosSintaxe

Diagrama de requisitos

O diagrama de requisitos fornece uma visualização dos requisitos e de suas conexões mútuas, bem como de suas relações com outros elementos de documento.

Código
                            
Copiar
Incorporar
requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req

Sintaxe

O diagrama de requisitos contém três componentes: requisitos, elementos e relações.

As palavras representadas por colchetes angulares são palavras-chave de enumeração, como , cujas opções são detalhadas na tabela. user_defined... é usado em qualquer lugar que exija entrada do usuário.

Observação importante sobre o texto do usuário: todas as entradas podem ser colocadas entre aspas duplas ou não. No entanto, o usuário deve ter cuidado ao usar entradas sem aspas. Se outras palavras-chave forem detectadas, o editor falhará ao renderizar.

Requisito

A definição de requisito contém o tipo de requisito, nome, ID, texto, risco e método de verificação. A sintaxe é a seguinte:

                            
Copiar
Incorporar
<type> user_defined_name { id: user_defined_id text: user_defined text risk: <risk> verifymethod: <method> }

Tipo, risco e método são enumerações definidas no SysML.

Palavra-chave Opções
Tipo Requisito, requisito funcional, requisito de interface, requisito de desempenho, requisito físico, restrição de projeto
Risco Baixo, médio, alto
Método de verificação Análise, inspeção, teste, demonstração

Elemento

A definição de elemento contém o nome do elemento, o tipo e a referência de documento, e os três são definidos pelo usuário. O recurso de elemento tem como objetivo permanecer leve, ao mesmo tempo que permite associar requisitos a partes do conteúdo de outros documentos.

                            
Copiar
Incorporar
element myElement { type: string docref: some/doc/path }

Formato Markdown

Onde é permitido ao usuário personalizar texto (como nomes, texto de requisitos, referências de documento de elemento etc.), você pode:

  • Colocar o texto entre aspas duplas
  • Usar formatação markdown dentro das aspas duplas
Código
                            
Copiar
Incorporar
requirementDiagram requirement "__test_req__" { id: 1 text: "*italicized text* **bold text**" risk: high verifymethod: test }

Relação

As relações são compostas por nó de origem, nó de destino e tipo de relação.

Seguindo o formato de definição abaixo:

                            
Copiar
Incorporar
{name of source} - <type> -> {name of destination}

ou

                            
Copiar
Incorporar
{name of destination} <- <type> - {name of source}

"Nó de origem" e "nó de destino" devem ser os nomes de nós de requisito ou elemento definidos em outro lugar.

O tipo de relação pode ser um dos seguintes: conter, copiar, derivar, satisfazer, verificar, refinar ou rastrear.

Exemplo detalhado

Este exemplo usa todos os recursos desse diagrama.

Código
                            
Copiar
Incorporar
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

Direção

É possível usar a instrução direction para renderizar o gráfico em direções diferentes; os valores válidos são:

  • TB - de cima para baixo (padrão)
  • BT - de baixo para cima
  • LR - da esquerda para a direita
  • RL - da direita para a esquerda
Código
                            
Copiar
Incorporar
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

Estilo

Requisitos e elementos podem ser estilizados usando estilo direto ou classes. Em geral, ao aplicar um estilo ou classe, aceita-se uma lista de nomes de requisitos ou elementos e uma lista de nomes de classes, permitindo atribuir várias classes de uma vez. A única exceção é a sintaxe abreviada :::, em que o operador pode atribuir várias classes, mas apenas a um requisito ou elemento por vez.

Estilo direto

Código
                            
Copiar
Incorporar
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

A definição de classe é mostrada no exemplo a seguir:

Usar classDef para definir estilos reutilizáveis:

Código
                            
Copiar
Incorporar
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 padrão

Se uma classe for chamada default, ela será aplicada a todos os nós. Estilos e classes específicos devem ser definidos depois disso, para sobrescrever o estilo padrão já aplicado.

                            
Copiar
Incorporar
classDef default fill:pink,stroke:#333,stroke-width:4px;

Classe de aplicação

As classes podem ser aplicadas de duas maneiras:

1. Usar a sintaxe class:

                            
Copiar
Incorporar
class test_req,test_entity important

2. Usar a sintaxe abreviada do operador ::: durante ou após a definição:

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

Exemplo de combinação

Código
                            
Copiar
Incorporar
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