← กลับไปยังบทความทั้งหมด

ข้อกำหนดทางหน้าที่การทำงานของระบบ (Functional Requirement) คืออะไร

สรุปใจความสำคัญ

  • Functional Requirement ระบุสิ่งที่ระบบต้องทำ โดยเน้นที่พฤติกรรมระหว่าง Input และ Output
  • ความแตกต่างหลักคือ Functional Requirement กำหนดหน้าที่การทำงาน ส่วน Non-Functional Requirement กำหนดคุณภาพและข้อจำกัดของระบบ
  • Use Case เป็นเครื่องมือสำคัญในการรวบรวมและตรวจสอบความถูกต้องของ Functional Requirement

ในทางวิศวกรรมซอฟต์แวร์และวิศวกรรมระบบ ข้อกำหนดทางหน้าที่การทำงาน (Functional Requirement) คือสิ่งที่กำหนดหน้าที่หรือฟังก์ชันการทำงานของระบบหรือส่วนประกอบของระบบ โดยอธิบายถึงพฤติกรรมระหว่างข้อมูลนำเข้า (Input) และข้อมูลส่งออก (Output) เพื่อให้ระบบสามารถทำงานได้ตามวัตถุประสงค์ที่ต้องการ

ความแตกต่างระหว่าง Functional และ Non-Functional Requirements

ข้อกำหนดทางหน้าที่การทำงานมักเกี่ยวข้องกับการคำนวณ รายละเอียดทางเทคนิค การจัดการข้อมูล และการประมวลผล ซึ่งระบุว่าระบบ "ต้องทำอะไร" ในขณะที่ข้อกำหนดที่ไม่ใช่หน้าที่การทำงาน (Non-Functional Requirements หรือ Quality Requirements) จะระบุถึง "ระบบควรจะเป็นอย่างไร" เช่น ประสิทธิภาพ ความปลอดภัย และความน่าเชื่อถือ

หัวข้อเปรียบเทียบFunctional RequirementNon-Functional Requirement
คำจำกัดความสิ่งที่ระบบต้องทำ (What the system does)คุณลักษณะของระบบ (How the system is)
รูปแบบการเขียน"ระบบต้องสามารถ... (ทำสิ่งนี้)""ระบบจะต้องมี... (คุณสมบัตินี้)"
ผลกระทบขับเคลื่อนสถาปัตยกรรมแอปพลิเคชันขับเคลื่อนสถาปัตยกรรมทางเทคนิค
การวางแผนระบุรายละเอียดใน System Designระบุรายละเอียดใน System Architecture

กระบวนการรวบรวมและวิเคราะห์ความต้องการ

โดยทั่วไป นักวิเคราะห์ระบบจะดำเนินการตามลำดับขั้นดังนี้:

  1. คำขอจากผู้ใช้/ผู้มีส่วนได้ส่วนเสีย: เริ่มต้นจากการรับความต้องการเบื้องต้น
  2. การวิเคราะห์: วิศวกรระบบจะทำการพูดคุย สังเกต และทำความเข้าใจความต้องการ
  3. การสร้าง Use Case: สร้างแบบจำลอง เช่น Use Case หรือ Entity Relationship Diagram (ERD) เพื่อตรวจสอบความถูกต้อง
  4. การนำไปใช้งาน: เมื่อเอกสารได้รับการอนุมัติ ความต้องการนั้นจะถูกนำไปพัฒนาเป็นระบบจริง

ในบางกรณี นักวิเคราะห์อาจเริ่มจากการสร้าง Use Case ก่อน แล้วจึงสกัดเอา Functional Requirement ที่จำเป็นออกมาเพื่อให้ผู้ใช้สามารถดำเนินกิจกรรมใน Use Case นั้นๆ ได้สำเร็จ

องค์ประกอบของข้อกำหนดทางหน้าที่การทำงาน

การระบุข้อกำหนดทางหน้าที่การทำงานที่สมบูรณ์ควรประกอบด้วยข้อมูลดังนี้:

  • ชื่อและหมายเลขกำกับ: เพื่อความสะดวกในการอ้างอิงและติดตาม (Traceability)
  • สรุปสั้นๆ: คำอธิบายเบื้องต้นว่าฟังก์ชันนี้คืออะไร
  • เหตุผล (Rationale): อธิบายว่าทำไมฟังก์ชันนี้ถึงจำเป็น
  • รายละเอียดพฤติกรรม: คำอธิบายที่ชัดเจนและอ่านง่ายว่าระบบต้องทำงานอย่างไร ซึ่งอาจมาจากกฎทางธุรกิจ (Business Rules) หรือการสัมภาษณ์ผู้เชี่ยวชาญ
  • การอ้างอิง: เชื่อมโยงกับ Use Case หรือข้อกำหนดอื่นๆ ที่เกี่ยวข้อง

คำถามที่พบบ่อย

Functional Requirement แตกต่างจาก Non-Functional Requirement อย่างไร?

Functional Requirement คือสิ่งที่ระบบ 'ต้องทำ' (เช่น การบันทึกข้อมูลลูกค้า) ส่วน Non-Functional Requirement คือ 'คุณสมบัติ' ที่ระบบต้องมี (เช่น ระบบต้องตอบสนองภายใน 2 วินาที)

Use Case เกี่ยวข้องกับ Functional Requirement อย่างไร?

Use Case ช่วยอธิบายสถานการณ์การใช้งานจริง ซึ่งนักวิเคราะห์สามารถใช้ Use Case เพื่อระบุ Functional Requirement ที่จำเป็นต้องพัฒนาเพื่อให้ผู้ใช้บรรลุเป้าหมายในสถานการณ์นั้นๆ ได้

ทำไมต้องมีหมายเลขกำกับในแต่ละ Functional Requirement?

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