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

Reikalavimų diagramaSintaksė

Reikalavimų diagrama

Reikalavimų diagrama suteikia reikalavimų ir jų tarpusavio ryšių bei ryšių su kitais dokumentų elementais vizualizaciją.

Kodas
                            
Kopijuoti
Įterpti
requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req

Sintaksė

Reikalavimų diagramą sudaro trijų tipų komponentai: reikalavimai, elementai ir ryšiai.

Žodžiai, pateikti kampiniuose skliaustuose, yra enum raktiniai žodžiai, pavyzdžiui, ; jų parinktys išsamiai aprašytos lentelėje. user_defined... naudojama visur, kur reikia naudotojo įvesties.

Svarbi pastaba apie naudotojo tekstą: visas įvestis galima apgaubti dvigubomis kabutėmis arba palikti be jų. Tačiau naudodamas neapgaubtą įvestį naudotojas turi būti atsargus. Jei aptinkamas kitas raktinis žodis, redaktoriaus atvaizdavimas nepavyks.

Reikalavimas

Reikalavimo apibrėžimas apima reikalavimo tipą, pavadinimą, ID, tekstą, riziką ir patikros metodą. Sintaksė:

                            
Kopijuoti
Įterpti
<type> user_defined_name { id: user_defined_id text: user_defined text risk: <risk> verifymethod: <method> }

Tipas, rizika ir metodas yra SysML apibrėžti enum.

Raktinis žodis Parinktys
Tipas requirement, functionalRequirement, interfaceRequirement, performanceRequirement, physicalRequirement, designConstraint
Rizika low, medium, high
Patikros metodas analysis, inspection, test, demonstration

Elementas

Elemento apibrėžimas apima elemento pavadinimą, tipą ir dokumento nuorodą – visi trys yra naudotojo apibrėžti. Elemento funkcija sukurta taip, kad išliktų lengva, kartu leisdama susieti reikalavimus su kitų dokumentų dalimis.

                            
Kopijuoti
Įterpti
element myElement { type: string docref: some/doc/path }

Markdown formatas

Ten, kur leidžiama naudotojui tinkinti tekstą (pavyzdžiui, pavadinimą, reikalavimo tekstą, elemento dokumento nuorodą), galite:

  • Apgaubti tekstą dvigubomis kabutėmis
  • Dvigubose kabutėse naudoti markdown formatą
Kodas
                            
Kopijuoti
Įterpti
requirementDiagram requirement "__test_req__" { id: 1 text: "*italicized text* **bold text**" risk: high verifymethod: test }

Ryšys

Ryšį sudaro šaltinio mazgas, tikslo mazgas ir ryšio tipas.

Laikomasi šio apibrėžimo formato:

                            
Kopijuoti
Įterpti
{name of source} - <type> -> {name of destination}

arba

                            
Kopijuoti
Įterpti
{name of destination} <- <type> - {name of source}

"Šaltinio mazgas" ir "tikslo mazgas" turi būti kitur apibrėžtų reikalavimų ar elementų mazgų pavadinimai.

Ryšio tipas gali būti vienas iš: contains, copies, derives, satisfies, verifies, refines arba traces.

Išsamus pavyzdys

Šiame pavyzdyje panaudotos visos šios diagramos funkcijos.

Kodas
                            
Kopijuoti
Įterpti
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

Kryptis

Galima naudoti direction sakinį diagramai skirtingomis kryptimis atvaizduoti; galiojančios reikšmės:

  • TB - iš viršaus į apačią (numatytoji)
  • BT - iš apačios į viršų
  • LR - iš kairės į dešinę
  • RL - iš dešinės į kairę
Kodas
                            
Kopijuoti
Įterpti
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

Stilius

Reikalavimus ir elementus galima stilizuoti naudojant tiesioginį stilių arba klases. Paprastai taikant stilių ar klasę priimamas reikalavimų ar elementų pavadinimų sąrašas ir klasių pavadinimų sąrašas, leidžiantis vienu metu priskirti kelias klases. Vienintelė išimtis – trumpoji sintaksė :::; operatorius gali priskirti kelias klases, tačiau vienu metu tik vienam reikalavimui ar elementui.

Tiesioginis stilius

Kodas
                            
Kopijuoti
Įterpti
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

Klasės apibrėžimas parodytas toliau esančiame pavyzdyje:

Pakartotinai naudojamo stiliaus apibrėžimas naudojant classDef:

Kodas
                            
Kopijuoti
Įterpti
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

Numatytoji klasė

Jei klasė pavadinta default, ji taikoma visiems mazgams. Konkretūs stiliai ir klasės turėtų būti apibrėžti po to, kad pakeistų pritaikytą numatytąjį stilių.

                            
Kopijuoti
Įterpti
classDef default fill:pink,stroke:#333,stroke-width:4px;

Taikyti klasę

Klasę galima pritaikyti dviem būdais:

1. Naudojant class sintaksę:

                            
Kopijuoti
Įterpti
class test_req,test_entity important

2. Apibrėžimo metu arba po jo naudojant operatoriaus ::: trumpąją sintaksę:

                            
Kopijuoti
Įterpti
requirement test_req:::important { id: 1 text: class styling example risk: low verifymethod: test }
                            
Kopijuoti
Įterpti
element test_elem {} test_elem:::myClass

Sujungimo pavyzdys

Kodas
                            
Kopijuoti
Įterpti
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