| CR01: Feature & Functional Characteristics |
|
|
|
| CR01:001 |
ระบบต้องรองรับการลงทะเบียนเจ้าของบริษัทและการเชิญผู้ใช้งานเข้าร่วมบริษัท (Onboarding) |
A |
FR-001 |
| CR01:002 |
ระบบต้องยืนยันตัวตนผู้ใช้และบังคับสิทธิ์ตามบทบาท Owner, Admin, Staff และ Viewer |
A |
FR-002 |
| CR01:003 |
ระบบต้องรองรับการกู้คืนรหัสผ่าน การควบคุม Session และการยืนยัน OTP ตามที่กำหนด |
A |
FR-003 |
| CR01:004 |
ระบบต้องให้ผู้ดูแลจัดการข้อมูลบริษัท, SMTP, การตั้งค่าระบบ, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน |
A |
FR-004 |
| CR01:005 |
ระบบต้องจัดการข้อมูลคลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ประเภทผู้ติดต่อ และผู้ติดต่อ |
A |
FR-005 |
| CR01:006 |
ระบบต้องรองรับโครงสร้างตำแหน่งจัดเก็บทั้งแบบคลังเดียวและแบบหลายชั้น (คลัง/พื้นที่/ช่อง) |
A |
FR-006 |
| CR01:007 |
ระบบต้องบันทึกการรับสินค้าเข้า (Stock-in) ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง และข้อมูลติดตาม |
A |
FR-007 |
| CR01:008 |
ระบบต้องบันทึกการจ่ายสินค้าออก (Stock-out) โดยตรวจสอบสิทธิ์และยอดคงเหลือก่อนจ่าย |
A |
FR-008 |
| CR01:009 |
ระบบต้องโอนย้ายสินค้าระหว่างตำแหน่งจัดเก็บที่ได้รับอนุญาตโดยยอดต้นทาง/ปลายทางสมดุลกัน |
A |
FR-009 |
| CR01:010 |
ระบบต้องติดตาม Lot, Serial Number และวันหมดอายุของสินค้าที่เกี่ยวข้อง |
A |
FR-010 |
| CR01:011 |
ระบบต้องแสดงภาพรวมสต๊อก, ประวัติความเคลื่อนไหว, ความจุ/การใช้พื้นที่, สินค้าใกล้หมด, สินค้าหมดอายุ และข้อมูล Lot |
A |
FR-011 |
| CR01:012 |
ระบบต้องพิมพ์บาร์โค้ดสินค้า (SKU) และตำแหน่งจัดเก็บ และรองรับการสแกนในหน้าจอที่กำหนด |
A |
FR-012 |
| CR01:013 |
ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้ |
A |
FR-013 |
| CR01:014 |
ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย |
A |
FR-014 |
| CR01:015 |
ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย |
A |
FR-015 |
| CR01:016 |
ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท |
A |
FR-016 |
| CR01:017 |
ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL |
A |
FR-017 |
| CR01:018 |
ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร |
A |
FR-018 |
| CR01:019 |
ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด |
A |
FR-019 |
| CR01:020 |
ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร |
A |
FR-020 |
| CR01:021 |
ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ |
A |
FR-021 |
| CR01:022 |
ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา |
A |
FR-022 |
| CR01:023 |
ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ |
A |
FR-023 |
| CR01:024 |
ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน |
A |
FR-024 |
| CR02: Performance Considerations |
|
|
|
| CR02:001 |
ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง |
A |
NFR-006 |
| CR02:002 |
ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง |
A |
NFR-006 |
| CR02:003 |
ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันในระดับที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง |
A |
NFR-006 |
| CR03: Interface Considerations |
|
|
|
| CR03:001 |
ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี) |
A |
Operational context |
| CR03:002 |
ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้ |
A |
NFR-008 |
| CR03:003 |
ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret |
A |
NFR-002 |
| CR03:004 |
Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time |
A |
FR-021 |
| CR03:005 |
ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท |
A |
FR-004 |
| CR04: Required System Characteristics |
|
|
|
| CR04:001 |
ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application |
A |
Operational context |
| CR04:002 |
ระบบต้องเก็บข้อมูลแบบ Relational Database และรักษา Referential Integrity |
A |
Data requirements |
| CR04:003 |
ระบบต้องรองรับการเข้าสู่ระบบด้วย Username/Password และกำหนดบทบาทผู้ใช้ |
A |
FR-002 |
| CR04:004 |
ระบบต้องทำงานบน PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js |
A |
NFR-008 |
| CR05: Human Engineering Considerations |
|
|
|
| CR05:001 |
UI ต้องเป็น Responsive ใช้งานได้ทั้งบน Desktop และอุปกรณ์หน้าคลังสินค้า (Tablet/Mobile) |
A |
NFR-005 |
| CR05:002 |
เมนูและปุ่มคำสั่งต้องแสดงตามบทบาทและสิทธิ์การเข้าถึงของผู้ใช้ |
A |
Interface requirements |
| CR05:003 |
ระบบต้องแสดงผลการตรวจสอบข้อมูล สถานะ ความสำเร็จ และข้อผิดพลาดอย่างชัดเจน |
A |
Interface requirements |
| CR05:004 |
ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้ |
A |
Usability practice |
| CR05:005 |
ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้ |
A |
Interface requirements |
| CR06: Security Considerations |
|
|
|
| CR06:001 |
การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS |
A |
NFR-001 |
| CR06:002 |
ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ |
A |
NFR-001 |
| CR06:003 |
การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง |
A |
NFR-002 |
| CR06:004 |
ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ |
A |
FR-002 |
| CR06:005 |
ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting |
A |
NFR-002 |
| CR06:006 |
ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน |
A |
FR-003 |
| CR07: Environmental Considerations |
|
|
|
| CR07:001 |
ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose |
A |
NFR-004 |
| CR07:002 |
ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา |
A |
NFR-010 |
| CR07:003 |
ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser |
A |
NFR-005 |
| CR07:004 |
ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้ |
A |
Data requirements |
| CR08: Operational Considerations |
|
|
|
| CR08:001 |
ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน |
A |
NFR-004 |
| CR08:002 |
ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร |
A |
NFR-004 |
| CR08:003 |
ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง |
A |
NFR-004 |
| CR08:004 |
ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล |
A |
FR-024 |
| CR08:005 |
งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์ |
A |
FR-022 |
| CR09: Maintenance Considerations |
|
|
|
| CR09:001 |
ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น |
A |
NFR-007 |
| CR09:002 |
ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git |
A |
NFR-007 |
| CR09:003 |
ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว |
A |
NFR-004 |
| CR09:004 |
การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations |
A |
NFR-007 |
| CR10: Installation Considerations |
|
|
|
| CR10:001 |
ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php |
A |
NFR-004 |
| CR10:002 |
ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build |
A |
NFR-004 |
| CR10:003 |
ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) |
A |
NFR-001 |
| CR10:004 |
ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า |
A |
NFR-004 |
| CR11: Support Considerations |
|
|
|
| CR11:001 |
ต้องมีคู่มือผู้ใช้งาน (Software User Document) |
A |
Documentation |
| CR11:002 |
ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) |
A |
Documentation |
| CR11:003 |
ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง |
A |
Training |
| CR11:004 |
ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ |
A |
Maintenance |
| CR12: Design Constraints |
|
|
|
| CR12:001 |
ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ |
A |
NFR-008 |
| CR12:002 |
ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก |
A |
Configuration |
| CR12:003 |
รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา |
A |
NFR-002 |
| CR12:004 |
โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile |
A |
NFR-009 |
| CR13: Safety and Reliability Considerations |
|
|
|
| CR13:001 |
การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน |
A |
NFR-003 |
| CR13:002 |
ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน |
A |
NFR-003 |
| CR13:003 |
ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล |
A |
NFR-004 |
| CR13:004 |
ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error |
A |
NFR-006 |
| CR14: Quality Expectations |
|
|
|
| CR14:001 |
ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ |
A |
Acceptance |
| CR14:002 |
ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ |
A |
NFR-009 |
| CR14:003 |
ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง |
A |
Acceptance |
| CR14:004 |
ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี |
A |
Acceptance |