ความแตกต่างระหว่างข้อกำหนดด้านหน้าที่และไม่ใช่หน้าที่คืออะไร? [ปิด]


283

ความแตกต่างระหว่างข้อกำหนดด้านการใช้งานและไม่ใช้งานในบริบทของการออกแบบระบบซอฟต์แวร์คืออะไร

ยกตัวอย่างสำหรับแต่ละกรณี



@TravisJ อีกครั้งให้แท็กคำถามจนกว่าเราจะเสร็จสิ้นในช่วงแรกของการเผาไหม้แท็ก
TylerH

คำตอบ:


525

ข้อกำหนดด้านการใช้งานอธิบายสิ่งที่ระบบซอฟต์แวร์ควรทำในขณะที่ข้อกำหนดที่ไม่เกี่ยวกับการทำงานจะมีข้อ จำกัด เกี่ยวกับวิธีที่ระบบจะทำเช่นนั้น

ให้ฉันทำอย่างละเอียด

ตัวอย่างของข้อกำหนดการใช้งานจะเป็น:

  • ระบบจะต้องส่งอีเมลเมื่อใดก็ตามที่เป็นไปตามเงื่อนไขที่กำหนด (เช่นวางคำสั่งซื้อลูกค้าลงทะเบียน ฯลฯ )

ข้อกำหนดที่ไม่เกี่ยวข้องกับการใช้งานสำหรับระบบอาจเป็น:

  • ควรส่งอีเมลที่มีเวลาแฝงไม่เกิน 12 ชั่วโมงจากกิจกรรมดังกล่าว

ข้อกำหนดของฟังก์ชันอธิบายถึงพฤติกรรมของระบบที่เกี่ยวข้องกับการทำงานของระบบ ความต้องการที่ไม่ใช่หน้าที่การใช้งานจะช่วยเพิ่มประสิทธิภาพการทำงานของระบบ

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

  • การเข้าถึง
  • กำลังการผลิตปัจจุบันและการคาดการณ์
  • การปฏิบัติตาม
  • เอกสาร
  • การกู้คืนระบบ
  • อย่างมีประสิทธิภาพ
  • ประสิทธิผล
  • ขยาย
  • ข้อผิดพลาดความอดทน
  • การทำงานร่วมกัน
  • การบำรุงรักษา
  • ความเป็นส่วนตัว
  • ความเบา
  • คุณภาพ
  • ความเชื่อถือได้
  • ความยืดหยุ่น
  • เวลาตอบสนอง
  • ความแข็งแรง
  • scalability
  • ความปลอดภัย
  • ความมั่นคง
  • สนับสนุน
  • การตรวจสอบได้

รายการที่สมบูรณ์ที่มีอยู่ในรายการวิกิพีเดียสำหรับความต้องการที่ไม่ใช่หน้าที่

บางครั้งข้อกำหนดที่ไม่เกี่ยวกับการทำงานมีการกำหนดไว้ในแง่ของการวัด (เช่นสิ่งที่สามารถวัดได้เกี่ยวกับระบบ) เพื่อทำให้เป็นรูปธรรมมากขึ้น ข้อกำหนดที่ไม่สามารถใช้งานได้อาจอธิบายถึงลักษณะต่าง ๆ ของระบบที่ไม่เกี่ยวข้องกับการดำเนินการของมัน แต่เป็นการอธิบายถึงวิวัฒนาการในช่วงเวลาหนึ่ง (เช่นความสามารถในการบำรุงรักษา


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

1
เพื่อชี้แจงคำถามของฉันเล็กน้อย (และอาจไม่สามารถตอบได้): มีวิธีที่จะอธิบายขอบเขตของสิ่งที่ถือพฤติกรรมได้ดีขึ้นหรือไม่
โทมัส

บวก 1 สำหรับการเป็นตัวอย่างที่ดีของระบบอีเมล :)
Ahtisham

33

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

ข้อกำหนดที่ไม่เกี่ยวกับการทำงานนั้นไม่ได้ส่งตรงต่อความต้องการของระบบ แต่จะเกี่ยวข้องกับการใช้งาน (ในบางวิธี) เช่นสำหรับแอปพลิเคชันการธนาคารความต้องการที่ไม่เกี่ยวกับการทำงานหลักจะพร้อมใช้งาน ถ้าเป็นไปได้.


27

ความต้องการการทำงาน

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

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

  3. ความต้องการการทำงานเป็นสิ่งที่ระบบจะควรที่จะบรรลุ มันอาจจะ

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

ข้อกำหนดที่ไม่ใช่หน้าที่

LBushkinได้อธิบายเพิ่มเติมเกี่ยวกับข้อกำหนดที่ไม่ใช้งานได้แล้ว ฉันจะเพิ่มมากขึ้น

  1. ข้อกำหนดที่ไม่ใช่หน้าที่การทำงานเป็นข้อกำหนดอื่นใดนอกเหนือจากข้อกำหนดในการใช้งาน นี้เป็นความต้องการที่เกณฑ์ที่ระบุว่าสามารถใช้ในการตัดสินการดำเนินงานของระบบมากกว่าพฤติกรรมที่เฉพาะเจาะจง

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

  3. ข้อกำหนดที่ไม่ใช่หน้าที่ - สามารถแบ่งออกเป็นสองประเภทหลัก:

    • คุณภาพการดำเนินการเช่นความปลอดภัยและการใช้งานซึ่งสามารถสังเกตได้ในเวลาทำงาน
    • คุณภาพของวิวัฒนาการเช่นความสามารถในการทดสอบความสามารถในการบำรุงรักษาความสามารถในการขยายและความสามารถในการปรับขยายได้ซึ่งรวมอยู่ในโครงสร้างคงที่ของระบบซอฟต์แวร์
  4. ข้อกำหนดที่ไม่ใช้งานได้จะมีข้อ จำกัด เกี่ยวกับผลิตภัณฑ์ที่ได้รับการพัฒนากระบวนการพัฒนาและระบุข้อ จำกัด ภายนอกที่ผลิตภัณฑ์จะต้องปฏิบัติตาม
  5. IEEE-STD 830 - 1993รายการ 13 ความต้องการที่ไม่ใช่หน้าที่จะรวมอยู่ในเอกสารความต้องการซอฟต์แวร์
  1. ต้องการประสิทธิภาพการทำงาน
  2. ข้อกำหนดของอินเตอร์เฟส
  3. ข้อกำหนดการปฏิบัติงาน
  4. ข้อกำหนดด้านทรัพยากร
  5. ข้อกำหนดการยืนยัน
  6. ข้อกำหนดการยอมรับ
  7. ข้อกำหนดด้านเอกสาร
  8. ข้อกำหนดด้านความปลอดภัย
  9. ข้อกำหนดการพกพา
  10. ข้อกำหนดด้านคุณภาพ
  11. ข้อกำหนดด้านความน่าเชื่อถือ
  12. ข้อกำหนดการบำรุงรักษา
  13. ข้อกำหนดด้านความปลอดภัย

ข้อกำหนดหรือไม่แสดงเป็นหน้าที่หรือข้อกำหนดที่ไม่ใช่หน้าที่อาจขึ้นอยู่กับ:

  • ในระดับรายละเอียดที่จะรวมอยู่ในเอกสารข้อกำหนด
  • ระดับของความไว้วางใจที่มีอยู่ระหว่างลูกค้าระบบและผู้พัฒนาระบบ

อดีต ระบบอาจจำเป็นต้องแสดงผู้ใช้ด้วยการแสดงจำนวนเรคคอร์ดในฐานข้อมูล นี่คือความต้องการการทำงาน วิธีที่ทันสมัย ​​[อัพเดต] หมายเลขนี้ต้องเป็นความต้องการไม่ใช่หน้าที่ หากจำนวนจำเป็นต้องได้รับการอัพเดตแบบเรียลไทม์สถาปนิกระบบต้องตรวจสอบให้แน่ใจว่าระบบมีความสามารถในการอัปเดตจำนวนระเบียน [แสดง] ภายในช่วงเวลาสั้น ๆ ที่ยอมรับได้ของจำนวนระเบียนที่เปลี่ยนแปลง

อ้างอิง:

  1. ความต้องการการทำงาน
  2. ข้อกำหนดที่ไม่ใช่หน้าที่
  3. ปริมาณและตรวจสอบย้อนกลับของความต้องการ

1
อธิบายอย่างดี ขอบคุณ!
Arslan Ramay

1
คำตอบที่ดีกับการอ้างอิงที่ดี ฉันต้องการเพิ่มมาตรฐานที่อัปเดตมากกว่าเดิมเท่านั้นเนื่องจาก IEEE 830-1993 ถูกแทนที่ มาตรฐานล่าสุดคือ ISO / IEC / IEEE 29148: 2018 "ระบบและวิศวกรรมซอฟต์แวร์ - กระบวนการวงจรชีวิต - วิศวกรรมความต้องการ" ( iso.org/standard/72089.html )
ออกจากระบบ

8

ข้อกำหนดการทำงานคือข้อกำหนดที่เกี่ยวข้องกับการทำงานทางเทคนิคของระบบ

ข้อกำหนดที่ไม่เกี่ยวกับการทำงานคือข้อกำหนดที่ระบุเกณฑ์ที่สามารถใช้ตัดสินการทำงานของระบบในเงื่อนไขเฉพาะมากกว่าพฤติกรรมที่เฉพาะเจาะจง

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

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


คำตอบที่ยอดเยี่ยม
Iftekhar

3

ความต้องการของฟังก์ชั่น กิจกรรมที่ระบบจะต้องดำเนินการ

  • ฟังก์ชั่นการใช้งานทางธุรกิจที่ผู้ใช้ดำเนินการ
  • ใช้ตัวอย่างกรณีถ้าคุณกำลังพัฒนาระบบบัญชีเงินเดือนฟังก์ชั่นที่จำเป็น
  • สร้างการโอนเงินทางอิเล็กทรอนิกส์
  • ค่าคอมมิชชั่นการคำนวณ
  • คำนวณภาษีเงินเดือน
  • รายงานการหักภาษีให้กับ IRS

2

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

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