Diagram Kebutuhan
Diagram persyaratan menyediakan visualisasi persyaratan beserta hubungan koneksi di antara mereka, serta relasinya dengan elemen dokumen lain.
Salin
Sematkan
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
Diagram persyaratan terdiri dari tiga komponen: persyaratan, elemen, dan relasi.
Kata yang direpresentasikan dengan tanda kurung siku adalah kata kunci enumerasi, seperti , yang opsinya dijelaskan secara terperinci dalam tabel. user_defined... digunakan di tempat yang memerlukan input pengguna.
Catatan penting tentang teks pengguna: semua input dapat dibungkus dengan tanda kutip ganda, atau dapat tanpa tanda kutip ganda. Namun, pengguna harus berhati-hati saat menggunakan input tanpa tanda kutip. Jika kata kunci lain terdeteksi, editor akan gagal merender.
Persyaratan
Definisi persyaratan mencakup jenis persyaratan, nama, ID, teks, risiko, dan metode validasi. Sintaksnya adalah sebagai berikut:
Salin
Sematkan
<type> user_defined_name {
id: user_defined_id
text: user_defined text
risk: <risk>
verifymethod: <method>
}
Jenis, risiko, dan metode adalah enumerasi yang didefinisikan dalam SysML.
| Kata kunci | Opsi |
|---|---|
| Jenis | Persyaratan, persyaratan fungsional, persyaratan antarmuka, persyaratan kinerja, persyaratan fisik, batasan desain |
| Risiko | Rendah, sedang, tinggi |
| Metode validasi | Analisis, pemeriksaan, pengujian, demonstrasi |
Elemen
Definisi elemen mencakup nama elemen, jenis, dan referensi dokumen; ketiganya didefinisikan oleh pengguna. Fitur elemen dimaksudkan untuk tetap ringan, sekaligus memungkinkan pengaitan persyaratan dengan bagian konten dokumen lain.
Salin
Sematkan
element myElement {
type: string
docref: some/doc/path
}
Format Markdown
Di tempat yang mengizinkan pengguna menyesuaikan teks (seperti nama, teks persyaratan, referensi dokumen elemen, dan lain-lain), Anda dapat:
- Membungkus teks dengan tanda kutip ganda
- Menggunakan format markdown di dalam tanda kutip ganda
Salin
Sematkan
requirementDiagram
requirement "__test_req__" {
id: 1
text: "*italicized text* **bold text**"
risk: high
verifymethod: test
}
Relasi
Relasi terdiri dari simpul sumber, simpul tujuan, dan jenis relasi.
Mengikuti format definisi berikut:
Salin
Sematkan
{name of source} - <type> -> {name of destination}
atau
Salin
Sematkan
{name of destination} <- <type> - {name of source}
"simpul sumber" dan "simpul tujuan" harus berupa nama simpul persyaratan atau elemen yang didefinisikan di tempat lain.
Jenis relasi dapat berupa salah satu dari berisi, menyalin, menurunkan, memenuhi, memverifikasi, menyempurnakan, atau melacak.
Contoh terperinci
Contoh ini menggunakan semua fitur diagram tersebut.
Salin
Sematkan
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
Anda dapat menggunakan pernyataan direction untuk menetapkan arah rendering diagram yang berbeda; nilai yang valid adalah:
- TB - dari atas ke bawah (bawaan)
- BT - dari bawah ke atas
- LR - dari kiri ke kanan
- RL - dari kanan ke kiri
Salin
Sematkan
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
Persyaratan dan elemen dapat diberi gaya menggunakan gaya langsung atau kelas. Secara umum, saat menerapkan gaya atau kelas, ia menerima daftar nama persyaratan atau elemen dan daftar nama kelas, sehingga memungkinkan menetapkan beberapa kelas sekaligus. Satu-satunya pengecualian adalah sintaks singkat :::, di mana operator dapat menetapkan beberapa kelas, tetapi hanya untuk satu persyaratan atau elemen sekaligus.
Gaya langsung
Salin
Sematkan
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 seperti yang ditunjukkan pada contoh berikut:
Menggunakan classDef untuk mendefinisikan gaya yang dapat digunakan kembali:
Salin
Sematkan
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 bawaan
Jika sebuah kelas dinamai default, kelas tersebut akan diterapkan pada semua simpul. Gaya dan kelas khusus harus didefinisikan setelahnya, untuk menimpa gaya bawaan yang telah diterapkan.
Salin
Sematkan
classDef default fill:pink,stroke:#333,stroke-width:4px;
Menerapkan kelas
Kelas dapat diterapkan melalui dua cara:
1. Menggunakan sintaks class:
Salin
Sematkan
class test_req,test_entity important
2. Menggunakan operator ::: sintaks singkat selama atau setelah pendefinisian:
Salin
Sematkan
requirement test_req:::important {
id: 1
text: class styling example
risk: low
verifymethod: test
}
Salin
Sematkan
element test_elem {}
test_elem:::myClass
Contoh kombinasi
Salin
Sematkan
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