Rajah Keperluan
Gambar rajah keperluan menyediakan visualisasi keperluan serta hubungan sambungan antara mereka, dan hubungan dengan elemen dokumen lain.
Salin
Benamkan
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
Gambar rajah keperluan mengandungi tiga jenis komponen: keperluan, elemen dan hubungan.
Perkataan yang diwakili oleh kurungan bersudut ialah kata kunci enumerasi, seperti , pilihannya diterangkan secara terperinci dalam jadual. user_defined... digunakan di mana-mana tempat yang memerlukan input pengguna.
Nota penting tentang teks pengguna: semua input boleh diapit dengan tanda petik berganda, atau tanpa tanda petik berganda. Walau bagaimanapun, pengguna mesti berhati-hati apabila menggunakan input tanpa tanda petik. Jika kata kunci lain dikesan, editor akan gagal memaparkan.
Keperluan
Definisi keperluan merangkumi jenis keperluan, nama, ID, teks, risiko dan kaedah pengesahan. Sintaksnya adalah seperti berikut:
Salin
Benamkan
<type> user_defined_name {
id: user_defined_id
text: user_defined text
risk: <risk>
verifymethod: <method>
}
Jenis, risiko dan kaedah ialah enumerasi yang ditakrifkan dalam SysML.
| Kata kunci | Pilihan |
|---|---|
| Jenis | Keperluan, keperluan fungsi, keperluan antara muka, keperluan prestasi, keperluan fizikal, kekangan reka bentuk |
| Risiko | Rendah, sederhana, tinggi |
| Kaedah pengesahan | Analisis, pemeriksaan, ujian, demonstrasi |
Elemen
Definisi elemen mengandungi nama elemen, jenis dan rujukan dokumen, ketiga-tiganya ditakrifkan oleh pengguna. Fungsi elemen direka untuk kekal ringan, sambil membenarkan keperluan dikaitkan dengan sebahagian kandungan dokumen lain.
Salin
Benamkan
element myElement {
type: string
docref: some/doc/path
}
Format Markdown
Di tempat yang membenarkan pengguna menyesuaikan teks (seperti nama, teks keperluan, rujukan dokumen elemen dan sebagainya), anda boleh:
- Mengapit teks dengan tanda petik berganda
- Menggunakan format markdown dalam tanda petik berganda
Salin
Benamkan
requirementDiagram
requirement "__test_req__" {
id: 1
text: "*italicized text* **bold text**"
risk: high
verifymethod: test
}
Hubungan
Hubungan terdiri daripada nod sumber, nod sasaran dan jenis hubungan.
Mengikuti format definisi berikut:
Salin
Benamkan
{name of source} - <type> -> {name of destination}
atau
Salin
Benamkan
{name of destination} <- <type> - {name of source}
"Nod sumber" dan "nod sasaran" sepatutnya menjadi nama nod keperluan atau elemen yang ditakrifkan di tempat lain.
Jenis hubungan boleh jadi salah satu daripada mengandung, menyalin, memperoleh, memenuhi, mengesahkan, memperhalus atau mengesan.
Kes terperinci
Contoh ini menggunakan semua ciri carta tersebut.
Salin
Benamkan
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
Arah
Pernyataan direction boleh digunakan untuk memaparkan carta dalam arah berbeza; nilai yang sah ialah:
- TB - Dari atas ke bawah (lalai)
- BT - Dari bawah ke atas
- LR - Dari kiri ke kanan
- RL - Dari kanan ke kiri
Salin
Benamkan
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
Gaya
Keperluan dan elemen boleh ditetapkan gaya menggunakan gaya langsung atau kelas. Secara umum, apabila menggunakan gaya atau kelas, ia menerima senarai nama keperluan atau elemen serta senarai nama kelas, sekali gus membenarkan berbilang kelas diberikan pada satu masa. Satu-satunya pengecualian ialah sintaks pintas :::; operator boleh memberikan berbilang kelas, tetapi hanya kepada satu keperluan atau elemen pada satu masa.
Gaya langsung
Salin
Benamkan
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
Definisi kelas adalah seperti yang ditunjukkan dalam contoh berikut:
Gunakan classDef untuk mentakrifkan gaya yang boleh digunakan semula:
Salin
Benamkan
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
Kelas lalai
Jika sesuatu kelas dinamakan default, ia akan digunakan pada semua nod. Gaya dan kelas khusus harus ditakrifkan selepas ini, untuk mengatasi gaya lalai yang telah digunakan.
Salin
Benamkan
classDef default fill:pink,stroke:#333,stroke-width:4px;
Kelas aplikasi
Kelas boleh digunakan melalui dua cara:
1. Menggunakan sintaks class:
Salin
Benamkan
class test_req,test_entity important
2. Menggunakan sintaks pintas operator ::: semasa atau selepas proses definisi:
Salin
Benamkan
requirement test_req:::important {
id: 1
text: class styling example
risk: low
verifymethod: test
}
Salin
Benamkan
element test_elem {}
test_elem:::myClass
Contoh gabungan
Salin
Benamkan
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