⚙️ ความต้องการเชิงไม่ฟังก์ชัน (Non-Functional Requirements)

เอกสารนี้ระบุเกณฑ์และข้อกำหนดด้านคุณภาพ ประสิทธิภาพ ความปลอดภัย และการบำรุงรักษาระบบของ SplitDee เพื่อให้การทำงานของระบบมีประสิทธิภาพสูงสุด


🔒 1. ความปลอดภัยและความเป็นส่วนตัว (Security & Privacy)

รหัสข้อกำหนด (ID)หัวข้อรายละเอียดข้อกำหนด
NFR-SEC-001การรับรองความถูกต้องระบบต้องใช้ JSON Web Tokens (JWT) สำหรับการรักษาความปลอดภัยของ API ทุกเส้นที่ต้องได้รับการรับรองสิทธิ์
NFR-SEC-002การเข้ารหัสข้อมูลการสื่อสารข้อมูลระหว่างแอปพลิเคชันมือถือและเซิร์ฟเวอร์ต้องเข้ารหัสผ่านโปรโตคอล HTTPS (TLS 1.2 ขึ้นไป)
NFR-SEC-003ความปลอดภัยของข้อมูลทางการเงินห้ามจัดเก็บภาพสลิปโอนเงินหรือข้อมูลทางการเงินของลูกค้าไว้โดยไม่มีการควบคุมสิทธิ์อย่างถูกต้อง และรูปภาพสลิปต้องถูกเก็บในที่ปลอดภัยใน Object Storage ที่เข้ารหัส
NFR-SEC-004การป้องกันข้อมูลส่วนบุคคลปฏิบัติตามมาตรฐาน PDPA โดยต้องขอความยินยอมจากผู้ใช้ก่อนจัดเก็บเบอร์โทรศัพท์หรือรูปโปรไฟล์เพื่อประมวลผลระบบ PromptPay

⚡ 2. ประสิทธิภาพและความพร้อมใช้งาน (Performance & Scalability)

รหัสข้อกำหนด (ID)หัวข้อรายละเอียดข้อกำหนด
NFR-PER-001เวลาในการตอบสนอง (Latency)API ของระบบ (FastAPI) ต้องตอบสนองต่อผู้ร้องขอภายในเวลาเฉลี่ยไม่เกิน 500 มิลลิวินาที ภายใต้สภาวะโหลดปกติ
NFR-PER-002การสแกนสลิปด้วย AIระบบการดึงข้อมูลจากสลิปโอนเงินและการเปรียบเทียบข้อมูลต้องเสร็จสิ้นภายในเวลาไม่เกิน 3 วินาทีหลังจากผู้ใช้ส่งภาพ
NFR-PER-003การทำงานพร้อมกัน (Concurrency)ระบบต้องสามารถรองรับจำนวนผู้ใช้งานที่ทำงานพร้อมกัน (Concurrent Users) ได้อย่างน้อย 1,000 คน โดยประสิทธิภาพไม่ลดลง
NFR-PER-004ความพร้อมใช้งาน (Availability)ระบบหลังบ้านต้องมีเวลาทำงานอย่างต่อเนื่อง (Uptime) ไม่ต่ำกว่า 99.9% ต่อเดือน

🤝 3. ความง่ายในการใช้งานและการเข้าถึง (Usability & Accessibility)

รหัสข้อกำหนด (ID)หัวข้อรายละเอียดข้อกำหนด
NFR-USA-001ความเร็วในการเรียนรู้แอปการออกแบบอินเตอร์เฟสผู้ใช้ (UI/UX) ต้องมีความชัดเจน ผู้ใช้ใหม่ต้องสามารถทำความเข้าใจและสร้างบิลแรกได้สำเร็จภายในเวลาไม่เกิน 2 นาทีโดยไม่ต้องอ่านคู่มือ
NFR-USA-002การแสดงผลที่เป็นมิตรโทนภาษาและข้อความแจ้งเตือนต่างๆ ต้องอ่านง่าย มีขนาดตัวอักษรที่เหมาะสม และมี Contrast Ratio ตามมาตรฐานการใช้งานทั่วไป
NFR-USA-003การตอบสนองเชิงโต้ตอบมีการแสดงสัญลักษณ์ความคืบหน้า (Progress Indicator) หรือ Loading Spinner ทุกครั้งเมื่อมีการทำงานแบบไม่ซิงโครนัส (เช่น กำลังสแกนสลิป)

🔧 4. ความน่าเชื่อถือและการบำรุงรักษา (Reliability & Maintainability)

รหัสข้อกำหนด (ID)หัวข้อรายละเอียดข้อกำหนด
NFR-REL-001ความถูกต้องของยอดเงินการคำนวณบิลและการสรุปยอดค้างชำระห้ามมีความผิดพลาดแม้แต่ทศนิยมเดียว ยอดรวมหนี้ในกลุ่มต้องเป็นศูนย์เสมอ (Zero-sum Debt)
NFR-REL-002ความสมบูรณ์ของข้อมูลข้อมูลประวัติการแชร์บิลและการชำระเงินต้องไม่สูญหายแม้จะเกิดข้อผิดพลาดขึ้นในระหว่างการทำธุรกรรม (รองรับ Database Transactions)
NFR-REL-003การเขียนโค้ดและสถาปัตยกรรมโครงสร้างโปรเจกต์ต้องจัดระบบด้วย Clean Architecture เพื่อให้ง่ายต่อการเพิ่มฟีเจอร์ในอนาคต (Extensibility) และการแก้ไขบั๊ก

📱 5. ความเข้ากันได้ของระบบ (Compatibility)

รหัสข้อกำหนด (ID)หัวข้อรายละเอียดข้อกำหนด
NFR-CMP-001รองรับหลายแพลตฟอร์มตัวแอปพลิเคชันที่พัฒนาขึ้นด้วย Flutter ต้องสามารถทำงานได้อย่างมีประสิทธิภาพบนระบบปฏิบัติการ Android 9.0 ขึ้นไป และ iOS 15 ขึ้นไป
NFR-CMP-002ความเสถียรของหน้าจอหน้าจอแอปพลิเคชันต้องเป็นแบบ Responsive สามารถปรับเปลี่ยนการแสดงผลตามขนาดหน้าจอต่างๆ ได้โดยไม่ตกหล่นหรือซ้อนทับกัน

  • Product_Overview - ภาพรวมผลิตภัณฑ์
  • Feature_List - รายการฟีเจอร์ทั้งหมดของ SplitDee
  • Functional_Requirements - ความต้องการเชิงฟังก์ชัน