Functional vs Non-functional Requirements

ทำความเข้าใจ “สิ่งที่ระบบ ต้องทำ” vs “ต้องเป็นยังไง” แบบไม่งง

💡 Functional Requirement คืออะไร?

สิ่งที่ระบบต้อง ทำ เพื่อให้ตอบสนองความต้องการของผู้ใช้งาน

📌 เน้น ฟีเจอร์ หรือ พฤติกรรม ของระบบ
📌 “ถ้าขาดไป = ใช้งานไม่ได้เลย”

ตัวอย่าง:
  • ระบบต้องให้พนักงาน “ยื่นคำขอลาออนไลน์ได้”
  • ผู้ดูแลต้องสามารถ “อนุมัติ / ปฏิเสธคำขอได้”
  • ระบบต้อง “ส่งอีเมลแจ้งเตือนหลังอนุมัติสำเร็จ”

⚙️ Non-functional Requirement คืออะไร?

สิ่งที่ระบบต้อง เป็นหรือมี เพื่อให้ระบบทำงานได้ดี มีคุณภาพ

📌 เน้น คุณลักษณะ หรือ ข้อจำกัด
📌 “ไม่ได้ส่งผลกับฟีเจอร์โดยตรง แต่ส่งผลกับประสบการณ์”

ตัวอย่าง:
  • ระบบต้องใช้งานได้ 24 ชม. (Availability)
  • รองรับผู้ใช้พร้อมกันได้ 1,000 คน (Scalability)
  • ต้องโหลดหน้าเว็บภายใน 3 วินาที (Performance)
  • ข้อมูลต้องเข้ารหัส (Security)
  • รองรับการใช้งานทั้งมือถือและ Desktop (Usability)

🎯 ทำไมต้องแยกสองสิ่งนี้?

  • 🧱 Functional = โครงสร้างหลักของบ้าน
  • 🎨 Non-functional = สี, แสง, ความสะดวกในการอยู่บ้าน

SA ต้องรู้ทั้งสองมิติ

เพราะ “ระบบที่ทำงานได้ แต่ใช้งานไม่ดี” = ไม่มีใครอยากใช้

คำถามเพื่อเขียน Functionalคำถามเพื่อเขียน Non-functional
• ระบบนี้ทำอะไรได้บ้าง?• ระบบนี้ควรตอบสนองภายในกี่วินาที?
• ใครใช้? เค้าใช้อะไรบ้าง?• มีข้อจำกัดด้านเวลา / อุปกรณ์ไหม?
• มีเงื่อนไขอะไรบ้าง?• มีเรื่องความปลอดภัย / กฎหมายไหม?

Posted in

ใส่ความเห็น