Biểu đồ yêu cầu
Biểu đồ yêu cầu cung cấp trực quan hóa các yêu cầu cùng mối quan hệ liên kết giữa chúng, cũng như quan hệ với các phần tử tài liệu khác.
Sao chép
Nhúng
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
element test_entity {
type: simulation
}
test_entity - satisfies -> test_req
Cú pháp
Biểu đồ yêu cầu gồm ba thành phần: yêu cầu, phần tử và quan hệ.
Các từ được biểu diễn bằng dấu ngoặc nhọn là từ khóa kiểu liệt kê, ví dụ , các tùy chọn của nó được minh họa chi tiết trong bảng. user_defined... được dùng ở bất kỳ nơi nào cần người dùng nhập.
Lưu ý quan trọng về văn bản do người dùng nhập: tất cả đầu vào đều có thể được bao bằng dấu ngoặc kép, cũng có thể không cần dấu ngoặc kép. Tuy nhiên, người dùng phải cẩn thận khi dùng đầu vào không có dấu ngoặc kép. Nếu phát hiện từ khóa khác, trình soạn thảo sẽ kết xuất thất bại.
Yêu cầu
Định nghĩa yêu cầu bao gồm loại yêu cầu, tên, ID, văn bản, rủi ro và phương pháp xác minh. Cú pháp như sau:
Sao chép
Nhúng
<type> user_defined_name {
id: user_defined_id
text: user_defined text
risk: <risk>
verifymethod: <method>
}
Loại, rủi ro và phương pháp là các kiểu liệt kê được định nghĩa trong SysML.
| Từ khóa | Tùy chọn |
|---|---|
| Loại | Yêu cầu, yêu cầu chức năng, yêu cầu giao diện, yêu cầu hiệu năng, yêu cầu vật lý, ràng buộc thiết kế |
| Rủi ro | Thấp, trung bình, cao |
| Phương pháp xác minh | Phân tích, kiểm tra, thử nghiệm, trình diễn |
Phần tử
Định nghĩa phần tử bao gồm tên phần tử, loại và tham chiếu tài liệu, cả ba đều do người dùng định nghĩa. Chức năng phần tử nhằm giữ cho nhẹ nhàng, đồng thời cho phép liên kết yêu cầu với các phần nội dung của tài liệu khác.
Sao chép
Nhúng
element myElement {
type: string
docref: some/doc/path
}
Định dạng Markdown
Ở những nơi cho phép người dùng tùy chỉnh văn bản (như tên, văn bản yêu cầu, tham chiếu tài liệu phần tử, v.v.), bạn có thể:
- Đặt văn bản trong dấu ngoặc kép
- Dùng định dạng markdown bên trong dấu ngoặc kép
Sao chép
Nhúng
requirementDiagram
requirement "__test_req__" {
id: 1
text: "*italicized text* **bold text**"
risk: high
verifymethod: test
}
Quan hệ
Quan hệ gồm nút nguồn, nút đích và loại quan hệ.
Tuân theo định dạng định nghĩa sau:
Sao chép
Nhúng
{name of source} - <type> -> {name of destination}
hoặc
Sao chép
Nhúng
{name of destination} <- <type> - {name of source}
"Nút nguồn" và "Nút đích" phải là tên của nút yêu cầu hoặc phần tử được định nghĩa ở nơi khác.
Loại quan hệ có thể là một trong các loại: chứa, sao chép, dẫn xuất, thỏa mãn, xác minh, tinh chỉnh hoặc theo dõi.
Ví dụ chi tiết
Ví dụ này sử dụng tất cả các chức năng của biểu đồ đó.
Sao chép
Nhúng
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
Hướng
Có thể dùng câu lệnh direction để đặt các hướng khác nhau khi kết xuất biểu đồ, giá trị hợp lệ là:
- TB - Từ trên xuống dưới (mặc định)
- BT - Từ dưới lên trên
- LR - Từ trái sang phải
- RL - Từ phải sang trái
Sao chép
Nhúng
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
Kiểu
Yêu cầu và phần tử có thể được tạo kiểu bằng kiểu trực tiếp hoặc lớp. Nói chung, khi áp dụng kiểu hoặc lớp, nó chấp nhận một danh sách tên yêu cầu hoặc phần tử và một danh sách tên lớp, cho phép gán nhiều lớp cùng lúc. Ngoại lệ duy nhất là cú pháp viết tắt :::, toán tử có thể gán nhiều lớp, nhưng mỗi lần chỉ có thể gán cho một yêu cầu hoặc phần tử.
Kiểu trực tiếp
Sao chép
Nhúng
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
Định nghĩa lớp như ví dụ dưới đây:
Dùng classDef để định nghĩa kiểu có thể tái sử dụng:
Sao chép
Nhúng
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
Lớp mặc định
Nếu một lớp được đặt tên là default, nó sẽ được áp dụng cho tất cả các nút. Các kiểu và lớp cụ thể nên được định nghĩa sau đó, để ghi đè kiểu mặc định đã áp dụng.
Sao chép
Nhúng
classDef default fill:pink,stroke:#333,stroke-width:4px;
Lớp ứng dụng
Lớp có thể được áp dụng theo hai cách:
1. Dùng cú pháp class:
Sao chép
Nhúng
class test_req,test_entity important
2. Dùng toán tử ::: viết tắt trong hoặc sau quá trình định nghĩa:
Sao chép
Nhúng
requirement test_req:::important {
id: 1
text: class styling example
risk: low
verifymethod: test
}
Sao chép
Nhúng
element test_elem {}
test_elem:::myClass
Ví dụ kết hợp
Sao chép
Nhúng
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