บทที่8
แผนภาพกระแสข้อมูล แผนภาพกระแสข้อมูล (Data Flow Diagram : DFDs) หมายถึง แผนภาพที่อธิบายการโหลของข้อมูล ภายในระบบ เพื่อให้ทราบว่าข้อมูลนั้นมา จากไหน นําเข้ามาเพื่อทําอะไร มีใครที่เกี่ยวข้องบ้าง และจะนําข้อมูล เหล่านั้นไปจัดเก็บที่ไหน อย่างไร ซึ่งวิธีการเขียนแผนภาพกระแสข้อมูลก็เปรียบเสมือน แบบจําลองกระบวนการ (Process Model) ชนิดหนึ่งนั่นเอง ประโยชน์ของแผนภาพกระแสข้อมูล แผนภาพกระแสข้อมูลเป็นเครื่องมือที่ใช้จําลองกระบวนการของข้อมูลที่เกี่ยวข้องในระบบซึ่งอธิบายการ ทํางานด้วยสัญลักษณ์หรือรูปภาพ มีประโยชน์ต่อ การวิเคราะห์และออกแบบระบบได้ ดังนี้ 1. เพื่ออธิบายให้ผู้ที่ไม่มีความรู้ทางด้านคอมพิวเตอร์เข้าใจขั้นตอนการทํางานได้อย่างง่าย 2. เพื่อใช้แสดงทิศทางของข้อมูลและระบบย่อยต่าง ๆ 3. เพื่อใช้เป็นเครื่องมือในการวิเคราะห์และออกแบบระบบในอนาคตได้ต่อไป นอกจากนี้ประโยชน์ที่เกิดขึ้นจากมุมมองของผู้ที่เกี่ยวข้อง อาจจะกําหนดได้ดังนี้ 1. มุมมองของลูกค้า หรือผู้ใช้งาน จะใช้ DFD เพื่อให้เห็นภาพรวมของระบบ 2. มุมมองของโปรแกรมเมอร์ จะใช้ DFD ในด้านการพัฒนาโปรแกรม และการกําหนดรายละเอียด 3. มุมมองของนักวิเคราะห์ จะใช้ DFD เพื่อแสดงภาพรวมของระบบ และรายละเอียดที่เกี่ยวข้อง ของระบบ สัญลักษณ์ที่ใช้ออกแบบแผนภาพกระแสข้อมูล การออกแบบ DFD จะมีสัญลักษณ์ที่ใช้แบ่งออกเป็น 2 รูปแบบ คือ รูปแบบทฤษฎีของ Demarco & Yourdon และรูปแบบทฤษฎีของ Gane & Sarson ซึ่งบางสัญลักษณ์เหมือนกันและบางสัญลักษณ์ไม่เหมือนกันแต่ ให้ความหมายหรือหน้าที่ของสัญลักษณ์นั้น 1 เหมือนกัน ดังตาราง ต่อไปนี้ เนื่องจากสัญลักษณ์ในการออกแบบ DFD มีด้วยกัน 2 รูปแบบ ดังนั้นเพื่อให้ง่ายต่อการทําใจ หนังสือเล่มนี้ จึงขอใช้สัญลักษณ์การออกแบบ DFD ของ Gane & Sarson มาเป็นแนวทางในการยกตัวอย่างแต่ละกรณี
1. Process สัญลักษณ์ที่ใช้แทนการประมวลผล หรืองานที่ทําโดยระบบคอมพิวเตอร์การกําหนดชื่อของ Process ควรสื่อให้เห็นว่าขั้นตอนนี้ระบบ ต้องการทํางานเกี่ยวกับเรื่องอะไรโดยใช้ข้อความที่สั้นและกระฉับ อ่าน แล้วเข้าใจง่ายว่าขั้นตอนนี้ทําเกี่ยวกับเรื่องอะไรหรือเขียนให้อยู่ในรูปกิริยา เช่น การสมัครสมาชิก การชําระค่า สินค้า การขายสินค้า การทําบัญชีเงินเดือน การสรุปผลรายงาน เป็นต้น 2. Data Store สัญลักษณ์ที่ใช้แทนแหล่งเก็บข้อมูล ซึ่งต่อไปจะถูกนําไปพัฒนาขึ้นเป็นตาราง (Table) ในฐานข้อมูล การกําหนดชื่อจึงควรเป็น คํานามและสื่อให้รู้ว่าสัญลักษณ์นี้ใช้เก็บข้อมูลเกี่ยวกับเรื่องอะไร เช่น นักศึกษา อาจารย์ พนักงาน สมาชิก ลูกค้า รายการขายสินค้า ตารางเวลาทํางาน บัญชีเงินเดือน เป็นต้น 3. External Entity สัญลักษณ์ที่ใช้แทนแหล่งกําเนิดหรือต้นทางของข้อมูล ซึ่งเป็นปัจจัยหรือ สภาพแวดล้อมที่เกี่ยวข้องกับระบบ ส่วนใหญ่จะ กําหนดเป็นชื่อตัวบุคคล ชื่อแผนก ชื่อหน่วยงานหรือชื่อระบบที่มา เชื่อมโยงก็ได้ เช่น ลูกค้า พนักงาน สมาชิก นักศึกษา ผู้ใช้งาน ผู้ดูแลระบบ ฝ่ายจัดซื้อ ฝ่ายบุคคล แผนกการคลัง ระบบธนาคาร เป็นต้น 4. Data Flow : สัญลักษณ์ที่ใช้แทนกระแสข้อมูลที่เดินทางจากจุดหนึ่งไปยังอีกจุดหนึ่งโดยชื่อของข้อมูล ควรสื่อให้เห็นเป็นภาพรวมของข้อมูลชุดนั้น ไม่เน้นรายละเอียด เช่น ข้อมูลพนักงาน ข้อมูลนักศึกษา ข้อมูล ตรวจสอบสินค้า รายการซื้อสินค้า รายการถอนเงินหรือฝากเงิน เป็นต้น
การเขียนแผนภาพกระแสข้อมูลที่ไม่ถูกต้อง ในการออกแบบแผ่นภาพกระแสข้อมูล ควรพึ่ง ระวังการออกแบบให้มีความถูกต้องตามทํางาน ซึ่ง สามารถ ตรวจสอบได้ว่าแผ่นภาพงกล่าวนั้นถูกต้อง หรือไม่จากตารางดังต่อนี้ ระดับชั้นของแผนภาพกระแสข้อมูล การเขียนแผนภาพกระแสข้อมูลคงไม่สามารถที่จะเขียนให้สําเร็จในรูปเดียวกันได้ทั้งหมด เพราะขนาดของ รูปจะใหญ่มาก และมีขั้นตอนการไหลของ ข้อมูลที่ซับซ้อนและยากต่อการทํา ความเข้าใจ ซึ่งจะขัดกับประโยชน์ที่ คาดว่าจะได้รับ ดังนั้น การเขียนแผนภาพกระแสข้อมูลจึงมีการ แบ่งระดับชั้น จาก ระดับชั้นบนสุดไปถึงระดับล่าง ซึ่งจะทําให้ง่ายต่อความเข้าใจและการนําไปใช้งาน ให้เกิดประสิทธิภาพได้ โดยแบ่งเป็นระดับชั้นต่าง ๆ ได้ดังนี้ 1. แผนภาพบริบท (Context Diagram) 2. แผนภาพกระแสข้อมูลระดับ 0 (DFD Level 0) 3. แผนภาพกระแสข้อมูลระดับล่าง (Lower Level Diagram) แผนภาพบริบท การเขียนแผนภาพบริบทเป็นการออกแบบแผนภาพกระแสข้อมูลระดับสูงสุดหรือเรียกว่าระดับหลักการ(Context Diagram) ซึ่งจะอธิบายภาพรวม ของกระแสข้อมูลที่เกิดขึ้นทั้งหมดภายในระบบในรูปแบบอย่างง่าย และทําให้ทราบว่าขอบเขตการทํางานของระบบนั้นมีอะไรบ้าง สําหรับการออกแบบใน ระดับนี้จะไม่ใช้สัญลักษณ์ แทนแหล่งเก็บข้อมูล (Data Store จะใช้สัญลักษณ์เพียง 3 ชนิดเท่านั้น คือ
แนวทางการออกแบบแผนภาพบริบทที่เหมาะสม ควรดําเนินการตามขั้นตอนดังต่อไปนี้ 1. สัญลักษณ์การประมวลผล (Process) มีเพียง 1 รูป โดยวางไว้กึ่งกลางหน้ากระดาษ 2. ให้ใช้ชื่อระบบสารสนเทศที่กําลังออกแบบเป็นชื่อของการประมวลผล และกําหนด หมายเลขการประมวลผล 3. ชื่อของสัญลักษณ์ต่าง ๆ ไม่ควรเขียนชื่อซ้ํากัน 4. ไม่ควรเขียนเส้นลากตัดกัน 5. ควรออกแบบให้ครอบคลุมเนื้อหาทั้งหมดภายในหน้ากระดาษเดียวกัน 6. ควรเขียนแผนภาพแบบสมดุล กล่าวคือ จํานวนกระแสข้อมูลที่ออกจาก Process ควรมี จํานวนเท่ากับจํานวนกระแสข้อมูลที่วิ่งเข้า Process ขั้นตอนการเขียนแผนภาพบริบท 1. เขียนสัญลักษณ์การประมวลผลวาง ไว้กึ่งกลางของเอกสาร เขียนหมายเลขการ ประมวลผล 0 และ กําหนด ชื่อการ ประมวลผลเป็นชื่อของระบบสารสนเทศที่ กําลังออกแบบ 2. กําหนดแหล่งกําเนิดข้อมูล หรือต้นทางของข้อมูลที่เกี่ยวข้องกับ ระบบให้ครบตามขอบเขตที่กําหนด 3. เขียนสัญลักษณ์กระแสข้อมูล โดย ลําดับความสําคัญเริ่มจากการเขียนกระแส ข้อมูล ไหลเข้า (Input) ผ่านการประมวลผล แล้วเขียนกระแสข้อมูลที่ไหลออก (Output) ร้าน ลําดับที่ 1 พนักงานจะต้องกําหนดข้อมูล สินค้าเก็บไว้ในระบบก่อน และจัดทําเป็น รายงานจํานวนสินค้าใน ลําดับที่ 2 ลูกค้าซื้อสินค้าภายในร้านโดยพนักงานคีย์รายการขายสินค้า หลังจากนั้นระบบจะแสดงผลยอด รวมสินค้า รับชําระเงินค่าสินค้าจากลูกค้า และพิมพ์ใบเสร็จให้กับลูกค้า ซึ่งข้อมูลส่วนนี้จะเกิดขึ้นหลังจากที่ พนักงานบันทึกข้อมูลสินค้าเข้าสู่ระบบแล้วจึงถือเป็นขั้นตอนที่ 2 ลําดับที่ 3 หลังจากเสร็จสิ้นการขายในแต่ละวัน พนักงานจะจัดทํารายงานการขายสินค้าประจําวันให้กับ ผู้จัดการร้าน
ลําดับที่4 ผู้จัดการร้านจะตรวจสอบรายการขายสินค้าที่ดีที่สุดในแต่ละวัน และสรุปผลรายงานออกมาจัดเก็บไว้ ตัวอย่าง ในการออกแบบระบบบัตรคิวของร้านค้า พนักงานจะกําหนดค่าของบัตรคิวในแต่ละวันโดยเมื่อลูกค้าแต่ ละคนมาจองบัตรคิวแล้ว ระบบจะ พิมพ์บัตรคิวให้กับลูกค้า จากข้อมูลที่กําาหนดให้ ควรกําหนดแหล่งกําเนิดข้อมูลว่ามีใครเกี่ยวข้องบ้าง ข้อมูลที่จะต้องใช้ในแต่ละส่วนคืออะไร เช่น เมื่อสรุปข้อมูลดังกล่าวได้เรียบร้อยแล้ว ก็สามารถนํามาเขียนแผนภาพบริบทได้อย่างครบถ้วนตามที่ระบบ ต้องการ ดังนี้ แผนภาพกระแสข้อมูลระดับ 0 แผนการกระแสข้อมูลระดับ 0 (Data Flow Diagram Level 0) คือ แผนภาพที่เกิดขึ้นจากการแยกแผนภาพบริบทออกเป็นการประมวลผล ย่อย ๆ โดยแสดงให้เห็นถึงแหล่งเก็บข้อมูลนั้น ๆ ประกอบในแผนภาพ ซึ่งสิ่งสําคัญที่ต้องระมัดระวังคือ ต้องเขียนกระแสข้อมูลให้ครบตามจํานวนที่ ปรากฏอยู่ในแผนภาพบริบท ไม่เขียนชื่อของกระแสข้อมูลขึ้นมาใหม่เพื่อป้องกันปัญหาที่อาจเข้าใจผิดว่าเป็นข้อมูลที่เกิดขึ้นใหม่ในการออกแบบ แผนภาพกระแสข้อมูลระดับ 0
สําหรับสัญลักษณ์การประมวลผลที่แตกย่อยออกมาควรสื่อให้เห็นถึงควรสื่อให้เห็นถึงขั้นตอนการทํางานของระบบที่มีความเชื่อมโยงและต่อเนื่องกัน อย่างมีความหมาย สามารถสื่อสารให้นักวิเคราะห์ระบบกับโปรแกรมเมอร์มีความเข้าใจที่เหมือนๆ กัน โดยสัญลักษณ์การประมวลผลแต่ละชิ้นจะเขียน หมายเลขกํากับไว้ เริ่มจากเลข 1.0 2.0, 3.0,.., X.0เรียงลําดับต่อเนื่องกันไปเรื่อยๆ ทั้งนี้ไม่จําเป็นต้องแสดงสัญลักษณ์ แทนแหล่งกําเนิดข้อมูลก็ได้ เนื่องจากผู้ใช้สามารถย้อนกลับไปแหล่งกําเนิดข้อมูลได้ในแผนภาพบริบท จากรูป เมื่อนํามาแยกออกเป็นแผนภาพกระแสข้อมูลระดับ 0 จะยังคงกระแสข้อมูลที่เหมือนกับแผนภาพบริบท เพียงแต่เพิ่มเฉพาะในส่วนของแหล่ง เก็บข้อมูลเท่านั้น ตัวอย่างจากแผนภาพบริบทระบบบัตรคิว เมื่อนํามาวิเคราะห์ขั้นตอนการทําแล้วจะสามารถแตกย่อยโปรเซส และกําหนดแหล่งเก็บข้อมูลที่เกี่ยวข้อง ได้ ดังนี้
แผนภาพกระแสข้อมูลระดับล่าง แผนภาพกระแสข้อมูลระดับล่าง (Lower Level Diagram) คือ แผนภาพที่เกิดขึ้นจากการแยกการ ประมวลผลในแผนภาพกระแสข้อมูลระดับ 0 ออกเป็นการประมวลผลย่อย ๆ ซึ่งเรียกว่า "การแตกย่อยโปรเซส" (Exploded) เพื่ออธิบายการทํางานของการประมวลผลนั้น ๆ ให้มีความเข้าใจมากยิ่งขึ้น ในกรณีที่เห็นว่าการประมวลผลนั้นยังมีความซับซ้อนอยู่ และยากต่อการเข้าใจโดยการแยกย่อยโปรเซสในระดับถัดมาจากแผนภาพ กระแสข้อมูลระดับ 0 จะเรียกว่า แผนภาพกระแสข้อมูลระดับ 1 (Data Flow Diagram Level 1) สําหรับสัญลักษณ์การประมวลผลที่แยกย่อยออกมา จะกําหนดชื่อหมายเลขการประมวลผลเป็นลําดับย่อย จากหมายเลขการประมวลผลของ แผนภาพกระแสข้อมูลระดับ 0 เช่น ถ้าแยกย่อยหมายเลขการประมวลผล 1.0 มาเป็นแผนภาพกระแสข้อมูลระดับที่ 1 ก็จะแยกออกได้เป็น 1.1. 1.2.1.X หรือถ้าแยกย่อยหมายเลขการ ประมวลผล 2.0 มาเป็นแผนภาพกระแสข้อมูลระดับที่ 1 ก็จะแยกออกได้เป็น 2.1, 2.2. 2.X เป็นต้น นอกจากนี้ในการเขียน กระแสข้อมูลต้องเขียนให้ครบตามจํานวนที่มีอยู่ในแผนภาพกระแสข้อมูลระดับ 0 โดยไม่จําเป็นต้องเขียนแหล่งกําเนิดข้อมูลหรือต้นทางของข้อมูลด้วยก็ได้ เพราะสามารถเปิดย้อนกลับไปดูใน แผนภาพกระแสข้อมูลระดับ 0 ได้
แบบทดสอบหลังเรียนบทที่ 8 1. DFD ย่อมาจากอะไร ก. Data Flow Diagram ข. Data Filed diagram ค. Data File Diagram ง. ไม่มีข้อถูก 2. คําอธิบายที่ใช้เขียนในสัญลักษณ์กระบวนการ(Process) ควรเป็นคําชนิดใด ก. คํานาม ข. กริยา ค. คําบุพบท ง. คําสรรพนาม 3. มาตรฐานการเขียนแผนภาพ DFD คือข้อใด ก. Yurdono/DeMacro ข. Gane & Sarson ค. YourDon & Sarson ง. ถูกทุกข้อ 4. สัญลักษณ์ใดที่แตกต่างกันระหว่าง 2 มาตรฐานใน DFD ก. Data stores , Process,External Entity ข. Process ,Data Flows ค. Data Flows , External Entity ง. ถูกทุกข้อ 5. การเขียน DFD สัญลักษณ์ใดที่ต้องใช้คํานาม ก. External Entity ข. Data Flow ค. Data Store ง. ถูกทุกข้อ 6. ข้อใดคือ List of External Entities ง. สั่งซื้อสินค้า ข. ข้อมูลลูกค้า ค. โรงงาน ง. ตรวจสอบสินค้า
7. ข้อใดคือ List of Processes ก. ข้อมูลลูกค้า ข. โรงงาน ค. ตรวจสอบสิ้นค้า ง. ลูกค้า 8. ข้อใดคือ List of Data Stores ก. สั่งซื้อสินค้า ข. ข้อมูลลูกค้า ค. โรงงาน ง. ตรวจสอบสินค้า 9. ระบบช่วยในการตัดสินใจเรียกว่าอะไร ก. DSS ข. MIS ค. SOS ง. DSI 10. ข้อใดเป็นขั้นตอนสุดท้ายของระบบ ก. การสํารวจระบบ ข. ความมุ่งมั่นของผู้ใช้ระบบ ค. การวิเคราะห์การสํารวจระบบ ง. รายงานการวิเคราะห์ระบบ