แผนภาพกระแสข้อมูล (Data Flow Diagram: DFD)

เมื่อได้ข้อกำหนดความต้องการของระบบแล้ว ขั้นต่อไปคือการนำความต้องการมา “จำลอง” ให้เห็นภาพการทำงานของระบบ เครื่องมือที่นิยมใช้คือ แผนภาพกระแสข้อมูล (Data Flow Diagram: DFD) ซึ่งแสดงการไหลของข้อมูลเข้า–ออก กระบวนการประมวลผล และแหล่งจัดเก็บข้อมูล ช่วยให้ทั้งนักวิเคราะห์ ผู้ใช้ และทีมพัฒนาเข้าใจระบบตรงกันก่อนลงมือออกแบบและเขียนโปรแกรม
1. ความหมายและประโยชน์ของแบบจำลองกระบวนการ
แบบจำลองกระบวนการ (Process Model) คือ การแสดงกระบวนการทำงานของระบบในรูปแบบภาพ เพื่อสื่อสารว่าระบบรับข้อมูลอะไร ประมวลผลอย่างไร และส่งผลลัพธ์ใดออกไป ประโยชน์สำคัญ ได้แก่ ทำให้เข้าใจระบบได้ง่าย ตรวจสอบความครบถ้วนของกระบวนการ ลดความเข้าใจคลาดเคลื่อนระหว่างผู้เกี่ยวข้อง และใช้เป็นพื้นฐานในการออกแบบระบบและฐานข้อมูล
2. สัญลักษณ์ของแผนภาพกระแสข้อมูล (DFD)
DFD มีสัญลักษณ์พื้นฐาน 4 ชนิด (แสดงตามแบบ Yourdon/DeMarco และ Gane & Sarson) ดังนี้

สัญลักษณ์ | ชื่อ | ความหมายและการใช้งาน |
Process | กระบวนการ (Process) | การประมวลผลที่แปลงข้อมูลเข้าให้เป็นข้อมูลออก ตั้งชื่อด้วยคำกริยา เช่น 1.0 ยืมหนังสือ |
Data Flow | กระแสข้อมูล (Data Flow) | เส้นลูกศรแสดงทิศทางการไหลของข้อมูล กำกับด้วยชื่อข้อมูล เช่น คำขอยืม |
Datastore | แหล่งจัดเก็บข้อมูล (Data Store) | ที่เก็บข้อมูลของระบบ เช่น D1 หนังสือ ใช้รหัส D นำหน้า |
External entity | สิ่งที่อยู่ภายนอกระบบ (External Entity) | ผู้ส่ง/รับข้อมูลที่อยู่นอกระบบ เช่น สมาชิก บรรณารักษ์ ผู้บริหาร |
3. ระดับของ DFD (Levels of DFD)
- แผนภาพบริบท (Context Diagram) : แสดงระบบเป็นกระบวนการเดียว (หมายเลข 0) กับสิ่งที่อยู่ภายนอกระบบ ใช้กำหนดขอบเขตของระบบ ไม่มีแหล่งจัดเก็บข้อมูล
- DFD ระดับ 0 (Level 0) : แตกกระบวนการหลักจาก Context Diagram ออกเป็นกระบวนการย่อย (1.0, 2.0, 3.0 …) และเริ่มแสดงแหล่งจัดเก็บข้อมูล
- DFD ระดับ 1 (Level 1) : แตกรายละเอียดของกระบวนการย่อยแต่ละตัวให้ละเอียดยิ่งขึ้น (เช่น 1.1, 1.2)
4. ขั้นตอนการเขียน DFD
1) ระบุขอบเขตของระบบและสิ่งที่อยู่ภายนอก (External Entity)
2) ระบุข้อมูลเข้า–ออกระหว่างระบบกับสิ่งภายนอก แล้วเขียนแผนภาพบริบท (Context Diagram)
3) แตกกระบวนการหลักเป็นกระบวนการย่อยและกำหนดแหล่งจัดเก็บข้อมูล เขียนเป็น DFD ระดับ 0
4) แตกรายละเอียดกระบวนการที่ซับซ้อนเป็น DFD ระดับ 1 ตามความจำเป็น
5) ตรวจสอบความถูกต้องและความสมดุล (Balancing) ของทุกระดับ
5. หลักการและกฎการเขียน DFD ที่ถูกต้อง
- ตั้งชื่อกระบวนการด้วยคำกริยา + กรรม และตั้งชื่อกระแสข้อมูลให้สื่อความหมาย
- ความสมดุล (Balancing) : ข้อมูลเข้า–ออกของกระบวนการแม่ ต้องสอดคล้องกับข้อมูลเข้า–ออกรวมของกระบวนการย่อยในระดับถัดไป
- ทุกกระบวนการต้องมีทั้งข้อมูลเข้าและข้อมูลออก หลีกเลี่ยงข้อผิดพลาด “หลุมดำ” (มีเข้าไม่มีออก) และ “ปาฏิหาริย์” (มีออกไม่มีเข้า)
- ข้อมูลไม่ไหลจากแหล่งจัดเก็บข้อมูลไปยังแหล่งจัดเก็บข้อมูลโดยตรง หรือจากภายนอกไปภายนอกโดยไม่ผ่านกระบวนการ
- ให้หมายเลขกระบวนการอย่างเป็นระบบ (0 → 1.0, 2.0 → 1.1, 1.2)
6. ข้อผิดพลาดที่พบบ่อย
- กระบวนการที่เป็นหลุมดำหรือปาฏิหาริย์ / ลืมกำกับชื่อกระแสข้อมูล / แผนภาพไม่สมดุลระหว่างระดับ / ปนแหล่งจัดเก็บข้อมูลใน Context Diagram
7. ตัวอย่างการเขียน DFD : ระบบยืม–คืนหนังสือห้องสมุด
(1) แผนภาพบริบท (Context Diagram) — กำหนดขอบเขตของระบบและสิ่งที่อยู่ภายนอก ดังภาพ
สมาชิก (External Entity) ↓ คำขอยืม/คืน, ข้อมูลค้นหา ↑ ใบเสร็จ, ผลค้นหา, การแจ้งเตือน | ||
บรรณารักษ์ → ข้อมูลหนังสือ/สมาชิก ← รายการค้างคืน, ค่าปรับ | 0 ระบบยืม–คืนหนังสือ | ผู้บริหาร → คำขอรายงาน ← รายงานสรุปการใช้บริการ |
ภาพที่ 1 แผนภาพบริบท (Context Diagram) ของระบบยืม–คืนหนังสือ
(2) DFD ระดับ 0 — แตกกระบวนการหลักเป็นกระบวนการย่อย พร้อมแหล่งจัดเก็บข้อมูล D1 หนังสือ, D2 สมาชิก และ D3 การยืม–คืน ดังตาราง
กระบวนการ | ข้อมูลเข้า (จาก) | ข้อมูลออก (ไป) | แหล่งจัดเก็บข้อมูลที่ใช้ |
1.0 ยืมหนังสือ | คำขอยืม (สมาชิก) | ใบเสร็จการยืม (สมาชิก) | D1, D2, D3 |
2.0 คืนหนังสือและคิดค่าปรับ | คำขอคืน (สมาชิก) | ใบเสร็จการคืน/ค่าปรับ (สมาชิก), รายการค้างคืน (บรรณารักษ์) | D1, D3 |
3.0 ค้นหาหนังสือ | ข้อมูลค้นหา (สมาชิก) | ผลการค้นหา (สมาชิก) | D1 |
4.0 จัดการข้อมูลหลัก | ข้อมูลหนังสือ/สมาชิก (บรรณารักษ์) | การยืนยันผล (บรรณารักษ์) | D1, D2 |
5.0 ออกรายงาน | คำขอรายงาน (ผู้บริหาร) | รายงานสรุปการใช้บริการ (ผู้บริหาร) | D3 |
ตารางที่ 1 รายละเอียดกระบวนการใน DFD ระดับ 0 ของระบบยืม–คืนหนังสือ