วิธีปฏิบัติที่ดีที่สุดสำหรับการใช้งาน Shall และ Must ขณะเขียนข้อกำหนด


22

ฉันส่งอีเมลแจ้งเตือนนักพัฒนาของเราว่าการใช้คำว่า 'จะ' ในข้อกำหนดที่ได้รับของคุณไม่ควรทำตามข้อกำหนดด้านการใช้งานของคุณ เมื่อเขียนข้อกำหนดของฟังก์ชันคำว่า 'ต้องใช้' จะใช้เพื่ออธิบายฟังก์ชันที่ข้อกำหนดที่ได้รับจะต้องทำ
ที่ได้มา = ความต้องการของระบบจะเป็นความต้องการ
ใช้งาน = ระบบจะต้องทำ requirment

มันถูกส่งกลับโดยผู้อาวุโสของเราคนหนึ่งว่านั่นเป็นสิ่งที่ผิดและควรจะใช้ในทุก ๆ ความต้องการ

ฉันผิดตรงนี้และควรใช้ทุกความต้องการ ฉันไม่สามารถค้นหาข้อมูลสำรองได้


เราใช้ "จะ" ในทุกความต้องการที่จำเป็น แต่ "จะ" และ "ต้อง" หมายถึงสิ่งเดียวกันมากกว่าหรือน้อยกว่า ดูเพิ่มเติมtynerblain.com/blog/2009/04/22/dont-use-shall
Robert Harvey

4
คุณอาจคิดถึงMUSTvs SHOULDใน RFCs หรือไม่? ietf.org/rfc/rfc2119.txt
user10326

1
ดูเพิ่มเติมได้ที่plainlanguage.gov/howto/wordsuggestions/shallmust.cfm
Arseni Mourzenko

เอ๊ะไม่ได้เป็นคนจัดปาร์ตี้ แต่คุณจะชนะเมื่อใดที่ทุกคนใช้คำที่ถูกต้องในสถานการณ์ที่ถูกต้อง?
ปีเตอร์

คำตอบ:


43

RFC 2119 "คำสำคัญสำหรับใช้ใน RFC เพื่อระบุระดับความต้องการ" จะระบุเฉพาะคำที่ต่างกันตามความต้องการ

คำสำคัญ "ต้อง", "ต้องไม่", "ต้อง", "จะ", "ไม่ควร", "ไม่ควร", "ไม่ควร", "แนะนำ", "อาจ" และ "ตัวเลือก" ในเอกสารนี้ ที่จะตีความตามที่อธิบายไว้ใน RFC 2119

จากเอกสารนี้:

  • MUSTเทียบเท่าREQUIREDและSHALLบ่งชี้ว่าคำจำกัดความเป็นข้อกำหนดที่แน่นอน
  • MUST NOTเทียบเท่าSHALL NOTและบ่งชี้ว่าเป็นข้อห้ามที่แน่นอนของรายละเอียด
  • SHOULDเทียบเท่ากับRECOMMENDEDหมายความว่ามีเหตุผลที่ถูกต้องในการเพิกเฉยต่อข้อกำหนดเฉพาะ แต่ต้องคำนึงถึงผลกระทบที่จะเกิดขึ้น
  • SHOULD NOTและNOT RECOMMENDEDหมายความว่าพฤติกรรมบางอย่างอาจเป็นที่ยอมรับหรือมีประโยชน์ แต่ต้องคำนึงถึงผลกระทบอีกครั้ง
  • MAYหมายถึงOPTIONALและข้อกำหนดนั้นเป็นทางเลือกอย่างแท้จริง การทำงานร่วมกันกับระบบที่แตกต่างกันซึ่งอาจจะหรืออาจไม่ใช้ข้อกำหนดที่เป็นทางเลือกต้องทำ

การทำตาม RFC นี้SHOULDจะกระทำเพื่อช่วยให้มั่นใจว่าการสื่อสารระหว่างเอกสารภายในของบุคคลนั้นกับโลกมาตรฐานนั้นมีความสอดคล้องกัน


1
คำตอบที่มั่นคง; อุปกรณ์ประกอบฉากสำหรับการขุด RFC

1
@ GlenH7 ฉันรู้ (ฉันสนุกกับการอ่านวันที่ 1 เมษายน RFCs และมีอารมณ์ขันอยู่ใน 'ควร' และ 'ต้อง' และ 2119 แม้ในหน้าวิกิพีเดีย ) ฉันค้นหามันพบแล้วอ่าน ความคิดเห็นฉันกำลังจะทำ - สองข้างต้นเป็น RFC อีกครั้ง ดังนั้นไม่ได้อย่างสิ้นเชิงอุปกรณ์ประกอบฉากขนาดใหญ่สำหรับการขุดมันขึ้นมา

ความคิดของฉันคือต้องต้อง / ข้อกำหนดการทำงานจะต้องมีฟังก์ชั่นทั้งหมดไปยังวัตถุที่ได้รับที่จะมีอยู่ แต่จะต้องได้รับและต้องคำจำกัดความและวิธีการที่คนอื่นใช้พวกเขาฉันเพียงแค่ผิด
Tim Lieberman

6

ไม่แน่ใจว่าคุณมาถึงข้อสรุปที่shallและmustอยู่ในระดับเอกสารแยกต่างหาก นั่นคือความแตกต่างโดยพลการที่ไม่ได้รับการสนับสนุนจากแหล่งข้อมูลใด ๆ ที่ฉันรู้จัก

Shallและmustเทียบเท่ากับคำศัพท์ มันเป็นการกระทำที่จำเป็น

ไม่ว่าคุณจะใช้shallหรือmustขึ้นอยู่กับส่วนที่เหลือของเอกสารที่คุณกำลังเขียนอยู่ภายในและสิ่งที่ทำให้รู้สึกทางไวยากรณ์สำหรับประโยคนั้น

ใช่แล้วคุณคิดผิด แต่คุณยังไม่ถูกต้องเสมอใช้แทนshall mustพวกเขาเป็นตัวแทนระดับเดียวกันของภาระผูกพัน


3
Shouldและmayไม่เท่ากัน พวกเขาทั้งสองแสดงถึงคุณสมบัติที่เป็นตัวเลือก แต่shouldต่างmayกันตรงที่คุณจำเป็นต้องมีเหตุผลที่ดีในการไม่ใช้งาน ฉันเห็นด้วยกับคุณshallกับmustแม้ว่า
Keith Thompson

@ KeithThompson - เป็นจุดที่ดีและคุณพูดถูก ฉันดึงเส้นนั้นออกจากคำตอบ

1
ความคิดของฉันกลายเป็นว่าข้อกำหนดการใช้งานควรจะต้องใช้เพราะหากวัตถุที่ได้รับมาจะมีฟังก์ชันการทำงานทั้งหมดของมันต้องทำงาน
ทิมลีเบอร์แมน

ฉันเดาว่าเมื่อถึงจุดหนึ่งฉันจะต้องฝังตัวเป็นวัตถุใหม่ในหัวของฉันและต้องเป็นหน้าที่
ทิมลีเบอร์แมน

@ TimLieberman - นั่นไม่ใช่วิธีที่ดีในการมองสิ่งต่าง ๆ โดยเฉพาะอย่างยิ่งเมื่อมันเชื่อมโยงข้อกำหนดสองชั้น มีประโยชน์จริง ๆ เนื่องจากชาวบ้านบางคนสับสนกับความหมายของคำศัพท์ โดยเฉพาะอย่างยิ่งเมื่อฉันแก้ไขเอกสารขั้นตอนที่ "จะ" บ่อยกว่าที่ไม่ใช้แทน "ควร" อย่างไรก็ตามมันไม่ได้มีประโยชน์มากพอที่จะกำหนดให้เป็นมาตรฐานเฉพาะ

2

หากคุณเกิดขึ้นในการทำงานภายใต้กรอบของDO-178หรือDO-254แนวทางเหล่านี้มีความหมายของตัวเองสำหรับความต้องการทั่วไปและความต้องการที่ได้มา แนวทางเหล่านี้ไม่ได้ แต่ระบุว่าคำเช่นจะต้องควรต้องควรจะใช้สำหรับการระบุความต้องการ

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

ทราบว่าใน DO-178 และ DO-254 ต้องการมาจริงหมายถึงความต้องการที่มีไม่ได้รับมาจากความต้องการในระดับสูง ข้อกำหนดที่ได้รับจึงเป็นจุดเริ่มต้นของการตรวจสอบย้อนกลับได้

ทั้ง DO-178 และ DO-254 เป็นเอกสารแนวทางเชิงพาณิชย์ที่ใช้สำหรับการพัฒนาซอฟท์แวร์ avionics และอุปกรณ์อิเล็กทรอนิกส์โดยมีค่าธรรมเนียมจากwww.rtca.orgเท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.