Tipo de diagrama de flujo
Expresión gráfica
Mapas mentales
Expresión estructurada
Notas
Expresión eficiente

Diagrama de requisitosSintaxis

Diagrama de requisitos

El diagrama de requisitos ofrece una visualización de los requisitos y de sus relaciones de conexión entre sí, así como de sus relaciones con otros elementos de documentación.

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

Sintaxis

El diagrama de requisitos contiene tres tipos de componentes: requisitos, elementos y relaciones.

Las palabras representadas con corchetes angulares son palabras clave de enumeración, como , cuyas opciones se detallan en la tabla. user_defined... se usa en cualquier lugar donde se requiera la entrada del usuario.

Nota importante sobre el texto del usuario: todas las entradas pueden ir entre comillas dobles o sin ellas. Sin embargo, el usuario debe tener cuidado al usar entradas sin comillas. Si se detectan otras palabras clave, el editor no podrá renderizar.

Requisito

La definición de un requisito contiene el tipo de requisito, el nombre, el ID, el texto, el riesgo y el método de verificación. La sintaxis es la siguiente:

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

Tipo, riesgo y método son enumeraciones definidas en SysML.

Palabra clave Opciones
Tipo Requisito, requisito funcional, requisito de interfaz, requisito de rendimiento, requisito físico, restricción de diseño
Riesgo Bajo, Medio, Alto
Método de verificación Análisis, Inspección, Prueba, Demostración

Elemento

La definición de un elemento contiene el nombre del elemento, el tipo y la referencia documental, y los tres son definidos por el usuario. La función de elementos pretende mantenerse ligera y, a la vez, permitir asociar los requisitos con partes de otros documentos.

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

Formato Markdown

Donde se permite al usuario personalizar el texto (como el nombre, el texto del requisito, la referencia documental del elemento, etc.), puedes:

  • Encerrar el texto entre comillas dobles
  • Usar formato markdown dentro de las comillas dobles
Código
                            
Copiar
Insertar
requirementDiagram requirement "__test_req__" { id: 1 text: "*italicized text* **bold text**" risk: high verifymethod: test }

Relación

Una relación se compone del nodo de origen, el nodo de destino y el tipo de relación.

Sigue el siguiente formato de definición:

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

o

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

"Nodo de origen" y "nodo de destino" deben ser los nombres de nodos de requisito o elemento definidos en otro lugar.

El tipo de relación puede ser uno de: contiene, copia, deriva, satisface, verifica, refina o traza.

Caso detallado

Este ejemplo usa todas las funciones de este diagrama.

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

Dirección

Puedes usar la sentencia direction para renderizar el gráfico en distintas direcciones; los valores válidos son:

  • TB - de arriba hacia abajo (predeterminado)
  • BT - de abajo hacia arriba
  • LR - de izquierda a derecha
  • RL - de derecha a izquierda
Código
                            
Copiar
Insertar
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

Los requisitos y los elementos pueden estilizarse con estilos directos o con clases. En general, al aplicar un estilo o una clase, acepta una lista de nombres de requisito o elemento y una lista de nombres de clase, lo que permite asignar varias clases a la vez. La única excepción es la sintaxis abreviada :::, donde el operador puede asignar varias clases, pero solo a un requisito o elemento a la vez.

Estilo directo

Código
                            
Copiar
Insertar
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 definición de clase es como en el siguiente ejemplo:

Definir estilos reutilizables con classDef:

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

Clase predeterminada

Si una clase se llama default, se aplicará a todos los nodos. Los estilos y clases específicos deben definirse después de esto, para sobrescribir el estilo predeterminado ya aplicado.

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

Clase de aplicación

Las clases pueden aplicarse de dos formas:

1. Usando la sintaxis class:

                            
Copiar
Insertar
class test_req,test_entity important

2. Con la sintaxis abreviada del operador ::: durante o después de la definición:

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

Ejemplo combinado

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