ลงทะเบียน
ชั้นเรียนกระบวนการ
การแสดงออกทางกราฟิก
การคิด
การแสดงออกที่มีโครงสร้าง
หมายเหตุ
การแสดงออกอย่างมีประสิทธิภาพ

แผนภาพความต้องการไวยากรณ์

แผนภาพความต้องการ

แผนภาพความต้องการให้การมองเห็นข้อมูลของความต้องการและความสัมพันธ์ระหว่างกัน ตลอดจนความสัมพันธ์กับองค์ประกอบเอกสารอื่น ๆ

โค้ด
                            
คัดลอก
ฝัง
requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req

ไวยากรณ์

แผนภาพความต้องการประกอบด้วยองค์ประกอบสามประเภท: ความต้องการ องค์ประกอบ และความสัมพันธ์

คำที่แสดงด้วยวงเล็บเหลี่ยมคือคีย์เวิร์ด enum เช่น โดยตัวเลือกของมันอธิบายไว้โดยละเอียดในตาราง user_defined... ใช้ในทุกที่ที่ต้องให้ผู้ใช้ป้อนข้อมูล

หมายเหตุสำคัญเกี่ยวกับข้อความของผู้ใช้: อินพุตทั้งหมดสามารถล้อมด้วยเครื่องหมายอัญประกาศคู่หรือไม่ล้อมก็ได้ อย่างไรก็ตาม ผู้ใช้ต้องระมัดระวังเมื่อใช้อินพุตที่ไม่ล้อมด้วยเครื่องหมายอัญประกาศ หากตรวจพบคีย์เวิร์ดอื่น เอดิเตอร์จะเรนเดอร์ล้มเหลว

ความต้องการ

คำจำกัดความของความต้องการประกอบด้วยประเภทความต้องการ ชื่อ ID ข้อความ ความเสี่ยง และวิธีการตรวจสอบ ไวยากรณ์มีดังนี้:

                            
คัดลอก
ฝัง
<type> user_defined_name { id: user_defined_id text: user_defined text risk: <risk> verifymethod: <method> }

ประเภท ความเสี่ยง และวิธีการเป็น enum ที่กำหนดใน SysML

คีย์เวิร์ด ตัวเลือก
ประเภท ความต้องการ, ความต้องการเชิงหน้าที่, ความต้องการเชิงอินเทอร์เฟซ, ความต้องการด้านประสิทธิภาพ, ความต้องการทางกายภาพ, ข้อจำกัดการออกแบบ
ความเสี่ยง ต่ำ, ปานกลาง, สูง
วิธีการตรวจสอบ การวิเคราะห์, การตรวจสอบ, การทดสอบ, การสาธิต

องค์ประกอบ

คำจำกัดความขององค์ประกอบประกอบด้วยชื่อองค์ประกอบ ประเภท และการอ้างอิงเอกสาร ซึ่งทั้งสามเป็นสิ่งที่ผู้ใช้กำหนด ฟีเจอร์ขององค์ประกอบมีจุดประสงค์เพื่อให้มีน้ำหนักเบา ในขณะเดียวกันก็อนุญาตให้เชื่อมโยงความต้องการกับเนื้อหาส่วนอื่นของเอกสารได้

                            
คัดลอก
ฝัง
element myElement { type: string docref: some/doc/path }

รูปแบบ Markdown

ในส่วนที่อนุญาตให้ผู้ใช้กำหนดข้อความเอง (เช่น ชื่อ ข้อความความต้องการ การอ้างอิงเอกสารขององค์ประกอบ เป็นต้น) คุณสามารถ:

  • ล้อมข้อความด้วยเครื่องหมายอัญประกาศคู่
  • ใช้รูปแบบ markdown ภายในเครื่องหมายอัญประกาศคู่
โค้ด
                            
คัดลอก
ฝัง
requirementDiagram requirement "__test_req__" { id: 1 text: "*italicized text* **bold text**" risk: high verifymethod: test }

ความสัมพันธ์

ความสัมพันธ์ประกอบด้วยโหนดต้นทาง โหนดปลายทาง และประเภทความสัมพันธ์

ปฏิบัติตามรูปแบบการกำหนดต่อไปนี้:

                            
คัดลอก
ฝัง
{name of source} - <type> -> {name of destination}

หรือ

                            
คัดลอก
ฝัง
{name of destination} <- <type> - {name of source}

"โหนดต้นทาง" และ "โหนดปลายทาง" ควรเป็นชื่อของโหนดความต้องการหรือโหนดองค์ประกอบที่กำหนดไว้ที่อื่น

ประเภทความสัมพันธ์อาจเป็นหนึ่งใน contains, copies, derives, satisfies, verifies, refines หรือ traces

ตัวอย่างโดยละเอียด

ตัวอย่างนี้ใช้ฟีเจอร์ทั้งหมดของแผนภาพนี้

โค้ด
                            
คัดลอก
ฝัง
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

ทิศทาง

สามารถใช้คำสั่ง direction เพื่อตั้งค่าการเรนเดอร์แผนภาพในทิศทางต่าง ๆ ค่าที่ถูกต้องได้แก่:

  • TB - จากบนลงล่าง (ค่าเริ่มต้น)
  • BT - จากล่างขึ้นบน
  • LR - จากซ้ายไปขวา
  • RL - จากขวาไปซ้าย
โค้ด
                            
คัดลอก
ฝัง
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

สไตล์

ความต้องการและองค์ประกอบสามารถกำหนดสไตล์ได้โดยใช้สไตล์โดยตรงหรือคลาส โดยทั่วไป เมื่อนำสไตล์หรือคลาสไปใช้ จะรับรายการชื่อความต้องการหรือองค์ประกอบและรายการชื่อคลาส ซึ่งอนุญาตให้กำหนดหลายคลาสได้ในคราวเดียว ข้อยกเว้นเดียวคือไวยากรณ์แบบย่อ ::: ตัวดำเนินการสามารถกำหนดหลายคลาสได้ แต่กำหนดให้กับความต้องการหรือองค์ประกอบได้ทีละหนึ่งเท่านั้น

สไตล์โดยตรง

โค้ด
                            
คัดลอก
ฝัง
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

การกำหนดคลาสมีดังตัวอย่างต่อไปนี้:

ใช้ classDef เพื่อกำหนดสไตล์ที่นำกลับมาใช้ซ้ำได้:

โค้ด
                            
คัดลอก
ฝัง
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

คลาสเริ่มต้น

หากคลาสใดมีชื่อว่า default มันจะถูกนำไปใช้กับโหนดทั้งหมด ควรกำหนดสไตล์และคลาสเฉพาะหลังจากนี้ เพื่อเขียนทับสไตล์เริ่มต้นที่ถูกนำไปใช้แล้ว

                            
คัดลอก
ฝัง
classDef default fill:pink,stroke:#333,stroke-width:4px;

คลาสแอปพลิเคชัน

คลาสสามารถนำไปใช้ได้สองวิธี:

1. ใช้ไวยากรณ์ class:

                            
คัดลอก
ฝัง
class test_req,test_entity important

2. ใช้ตัวดำเนินการ ::: ไวยากรณ์แบบย่อในระหว่างหรือหลังการกำหนด:

                            
คัดลอก
ฝัง
requirement test_req:::important { id: 1 text: class styling example risk: low verifymethod: test }
                            
คัดลอก
ฝัง
element test_elem {} test_elem:::myClass

ตัวอย่างการรวมกัน

โค้ด
                            
คัดลอก
ฝัง
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