Reikalavimų diagrama
Reikalavimų diagrama suteikia reikalavimų ir jų tarpusavio ryšių bei ryšių su kitais dokumentų elementais vizualizaciją.
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ą
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.
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ę
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
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:
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
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