ข้อกำหนดด้านการทำงานในวิศวกรรมซอฟต์แวร์คืออะไร?
⚡ สรุปอย่างชาญฉลาด
ข้อกำหนดด้านฟังก์ชันการทำงานอธิบายถึงบริการทุกอย่างที่ระบบซอฟต์แวร์ต้องมี โดยครอบคลุมถึงข้อมูลนำเข้า พฤติกรรม และผลลัพธ์ เพื่อให้นักพัฒนา ผู้ทดสอบ และผู้มีส่วนได้ส่วนเสียทางธุรกิจมีคำจำกัดความที่ตรวจสอบได้เพียงข้อเดียวเกี่ยวกับสิ่งที่ผลิตภัณฑ์ต้องทำได้จริง
ข้อกำหนดด้านการทำงานคืออะไร?
A ความต้องการใช้งาน ข้อกำหนดเชิงฟังก์ชัน (Functional Requirements: FR) คือคำอธิบายของบริการที่ซอฟต์แวร์ต้องมีให้ โดยจะอธิบายระบบซอฟต์แวร์หรือส่วนประกอบของระบบ ฟังก์ชันถูกกำหนดโดยอินพุต พฤติกรรม และเอาต์พุต อาจเป็นการคำนวณ การจัดการข้อมูล กระบวนการทางธุรกิจ หรือการโต้ตอบกับผู้ใช้ ซึ่งกำหนดว่าระบบต้องทำอะไร ข้อกำหนดเชิงฟังก์ชันในวิศวกรรมซอฟต์แวร์เรียกอีกอย่างว่า... คุณสมบัติการทำงาน.
ข้อกำหนดเชิงฟังก์ชันมีตั้งแต่ความต้องการระดับสูงของผู้มีส่วนได้ส่วนเสียไปจนถึงข้อกำหนดทางคณิตศาสตร์โดยละเอียด ซอฟต์แวร์ที่ใช้งานได้ ข้อกำหนดต่างๆ ระบุถึงพฤติกรรมที่ระบบต้องการ
สิ่งที่ควรระบุไว้ในเอกสารข้อกำหนดด้านฟังก์ชันการทำงาน
เอกสารข้อกำหนดด้านฟังก์ชันการทำงานควรครอบคลุมสิ่งต่อไปนี้:
ตัวอย่างข้อกำหนดด้านการทำงาน
เอกสารข้อกำหนดด้านฟังก์ชันการทำงานโดยทั่วไปจะประกอบด้วย:
- รายละเอียดของการดำเนินการที่เกิดขึ้นบนทุกหน้าจอ
- ตรรกะการจัดการข้อมูลที่ระบบต้องนำไปใช้
- Descriptไอออนของรายงานระบบและผลลัพธ์อื่นๆ
- ข้อมูลโดยละเอียดเกี่ยวกับขั้นตอนการทำงานที่ระบบดำเนินการ
- ใครบ้างที่มีสิทธิ์สร้าง แก้ไข หรือลบข้อมูลในระบบ
- ระบบตอบสนองความต้องการด้านกฎระเบียบและการปฏิบัติตามกฎหมายที่เกี่ยวข้องได้อย่างไร
ประโยชน์ของข้อกำหนดด้านฟังก์ชันการทำงาน
ประโยชน์หลักของเอกสารข้อกำหนดการทำงาน (Functional Requirements Document) ที่เขียนอย่างดีมีดังนี้:
- ตรวจสอบว่าแอปพลิเคชันส่งมอบฟังก์ชันทุกอย่างตามที่ระบุไว้หรือไม่
- อธิบายฟังก์ชันการทำงานของระบบและระบบย่อยต่างๆ ไว้ในที่เดียว
- เมื่อนำมาผนวกกับการวิเคราะห์ความต้องการแล้ว ความต้องการด้านฟังก์ชันจะช่วยระบุความต้องการที่ขาดหายไปและชี้แจงพฤติกรรมของระบบที่คาดหวังได้
- ข้อผิดพลาดที่ตรวจพบในขั้นตอนการกำหนดความต้องการนั้นแก้ไขได้ง่ายและประหยัดที่สุด
- สนับสนุนเป้าหมาย งาน และกิจกรรมของผู้ใช้
ประเภทของข้อกำหนดในการใช้งาน
ประเภทของข้อกำหนดด้านฟังก์ชันการทำงานโดยทั่วไป ได้แก่:
- การจัดการธุรกรรม
- กฎเกณฑ์ทางธุรกิจ
- ความต้องการการรับรอง
- ข้อกำหนดในการรายงาน
- ฟังก์ชั่นการบริหาร
- ระดับการอนุญาต
- กรรมการตรวจสอบ Tracking
- อินเทอร์เฟซภายนอก
- การจัดการข้อมูลทางประวัติศาสตร์
- ข้อกำหนดทางกฎหมายและข้อบังคับ
ตัวอย่างของข้อกำหนดด้านการทำงาน
ด้านล่างนี้คือตัวอย่างที่เป็นรูปธรรมของข้อกำหนดด้านฟังก์ชันการทำงาน:
- ซอฟต์แวร์จะตรวจสอบความถูกต้องของลูกค้าโดยอัตโนมัติกับระบบจัดการข้อมูลติดต่อ ABC
- ระบบการขายจะต้องอนุญาตให้ผู้ใช้บันทึกยอดขายของลูกค้าได้
- สีพื้นหลังของหน้าต่างทั้งหมดในแอปพลิเคชันจะเป็นสีน้ำเงิน โดยมีค่า RGB ในรูปแบบเลขฐานสิบหกคือ 0x0000FF
- เฉพาะพนักงานระดับบริหารเท่านั้นที่จะมีสิทธิ์ดูข้อมูลรายได้
- ระบบซอฟต์แวร์จะต้องเชื่อมต่อกับ API ของธนาคาร
- ระบบซอฟต์แวร์จะต้องตรงตามข้อกำหนด 508 มาตรา ข้อกำหนดด้านการเข้าถึง
ความต้องการเชิงฟังก์ชันกับเชิงไม่ใช่ฟังก์ชัน
ต่อไปนี้คือความแตกต่างที่สำคัญระหว่างข้อกำหนดเชิงฟังก์ชันและข้อกำหนดที่ไม่ใช่เชิงฟังก์ชัน วิศวกรรมซอฟต์แวร์:
| พารามิเตอร์ | ความต้องการใช้งาน | ข้อกำหนดที่ไม่สามารถใช้งานได้ |
|---|---|---|
| มันคืออะไร | คำกริยา | คุณสมบัติ |
| ความต้องการ | มันเป็นข้อบังคับ | มันไม่บังคับ |
| ประเภทการจับ | มันถูกบันทึกในกรณีการใช้งาน | ถือเป็นคุณลักษณะที่มีคุณภาพ |
| ผลลัพธ์สุดท้าย | คุณลักษณะผลิตภัณฑ์ | คุณสมบัติผลิตภัณฑ์ |
| จับ | ง่ายต่อการจับภาพ | ยากที่จะจับ |
| วัตถุประสงค์ | ช่วยคุณตรวจสอบการทำงานของซอฟต์แวร์ | ช่วยคุณตรวจสอบประสิทธิภาพของซอฟต์แวร์ |
| พื้นที่โฟกัส | มุ่งเน้นไปที่ความต้องการของผู้ใช้ | มุ่งเน้นไปที่ความคาดหวังของผู้ใช้ |
| เอกสาร | อธิบายว่าผลิตภัณฑ์ทำอะไร | อธิบายวิธีการทำงานของผลิตภัณฑ์ |
| ประเภทของการทดสอบ | การทดสอบการทำงาน เช่น System, Integration, End to End, การทดสอบ APIฯลฯ | การทดสอบที่ไม่เกี่ยวกับฟังก์ชัน เช่น ประสิทธิภาพ ความเครียด การใช้งาน การทดสอบความปลอดภัยฯลฯ |
| ทดสอบการทำงาน | การทดสอบจะดำเนินการก่อนการทดสอบที่ไม่เกี่ยวข้องกับการทำงานหลัก | หลังจากการทดสอบการทำงาน |
| ข้อมูลสินค้า | สินค้า | คุณสมบัติผลิตภัณฑ์ |
แนวปฏิบัติที่ดีที่สุดสำหรับการเขียนข้อกำหนดเชิงฟังก์ชัน
หลักปฏิบัติที่ดีที่สุดที่สำคัญที่สุดสำหรับการเขียนเอกสารข้อกำหนดเชิงฟังก์ชันมีดังนี้:
- อย่ารวมข้อกำหนดสองข้อเข้าด้วยกัน ให้แยกข้อกำหนดแต่ละข้อออกเป็นรายละเอียดปลีกย่อย
- ระบุข้อกำหนดทุกอย่างให้ครบถ้วนและถูกต้องที่สุดเท่าที่จะเป็นไปได้
- ร่างข้อกำหนดทางเทคนิคทั้งหมดลงในเอกสาร
- เชื่อมโยงข้อกำหนดทุกข้อเข้ากับวัตถุประสงค์และหลักการที่ขับเคลื่อนการส่งมอบซอฟต์แวร์ให้ประสบความสำเร็จ
- รวบรวมข้อกำหนดต่างๆ ผ่านการสัมภาษณ์ การจัดประชุมเชิงปฏิบัติการ และการสนทนาแบบไม่เป็นทางการ
- บันทึกข้อจำกัดที่ทราบและตรวจสอบแล้วทั้งหมดที่มีผลกระทบอย่างมีนัยสำคัญต่อข้อกำหนด
- บันทึกสมมติฐานทุกข้อลงในเอกสาร
ข้อผิดพลาดทั่วไปในการเขียนข้อกำหนดเชิงฟังก์ชัน
ข้อผิดพลาดที่พบบ่อยในการจัดทำเอกสารข้อกำหนดด้านฟังก์ชันการทำงาน ได้แก่:
- การเพิ่มข้อมูลเพิ่มเติมที่ไม่จำเป็นซึ่งทำให้ผู้พัฒนาสับสน
- ละเว้นรายละเอียดที่นักพัฒนาจำเป็นต้องใช้ในการสร้างฟีเจอร์นั้น
- กฎการผสม ตัวอย่าง และคะแนนping การระบุข้อความหรือวัตถุประสงค์ลงในข้อกำหนดนั้นเอง
- การละเว้นข้อมูลที่จำเป็นต่อการระบุข้อกำหนดอย่างครบถ้วนและถูกต้อง
- การปกป้องข้อกำหนดที่มีอยู่เดิมเมื่อมีคำขอเปลี่ยนแปลงเข้ามา แทนที่จะค้นหาคำตอบที่ถูกต้อง
- ข้อกำหนดในการเขียนที่ไม่เชื่อมโยงกับวัตถุประสงค์หรือหลักการใดๆ


