Quy Trình Loại
Biểu thức đồ họa
Suy Nghĩ Loại
Biểu thức có cấu trúc
Ghi Chú Loại
Biểu thức hiệu quả

Biểu đồ yêu cầuCú pháp

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.

Mã
                            
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
Mã
                            
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 đồ đó.

Mã
                            
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
Mã
                            
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

Mã
                            
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:

Mã
                            
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

Mã
                            
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