การวิเคราะห์ระบบ(2)

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

          วิชานี้เริ่มต้นด้วยการจำลองแบบขั้นตอนการทำงานของระบบ (Process Modeling) ซึ่งเป็นเนื้อหาในบทเรียนนี้ โดยจะนำเสนอรายละเอียดของการจำลองขั้นตอนการทำงานของระบบด้วย “แผนภาพกระแสข้อมูล (Data Flow Diagram : DFD)” จากแผนภาพจะแสดงให้เห็นถึงขั้นตอนการทำงานของระบบ ข้อมูลที่เข้าและออกจากระบบ รวมทั้งข้อมูลที่ไหลอยู่ภายในระบบจากขั้นตอนหนึ่งไปยังอีกขั้นตอนหนึ่ง                

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

                      แผนภาพกระแสข้อมูล (DFD) เป็นเครื่องมือที่ใช้กันอย่างแพร่หลายในการเขียนแบบระบบใหม่ในการเขียนแผนภาพจำลองการทำงานของกระบวนการ (Process) ต่าง ๆ ในระบบ โดยเฉพาะกับระบบที่ "หน้าที่" ของระบบมีความสำคัญและมีความสลับซับซ้อนมากกว่าข้อมูลที่ไหลเข้า 

                    สรุปดีเอฟดี (Data Flow Diagram-DFD) เป็นเครื่องมือเชิงโครงสร้างที่ใช้บรรยายภาพรวมของระบบโดยแสดงขั้นตอนการทำงานของระบบหรือโพรเซส(process)  ระบุแหล่งกำเนิดของข้อมูล การไหลของข้อมูล ปลายทางข้อมูล การเก็บข้อมูลและการประมวลผลข้อมูล กล่าวง่าย ๆ คือดีเอฟดีจะช่วยแสดงแผนภาพ ว่าข้อมูลมาจากไหน จะไปไหน เก็บข้อมูลไว้ที่ไหน มีอะไรเกิดขึ้นกับข้อมูลระหว่างทางเรียกว่าแผนภาพกระแสข้อมูลหรือ แผนภาพแสดงความเคลื่อนไหวของข้อมูลโดยดีเอฟดี

  • วัตถุประสงค์ของการสร้างแผนภาพกระแสข้อมูลมีอะไรบ้าง
    1. เป็นแผนภาพที่สรุปรวมข้อมูลทั้งหมดที่ได้จากการวิเคราะห์ในลักษณะของรูปแบบที่เป็นโครงสร้าง
    2. เป็นข้อตกลงร่วมกันระหว่างนักวิเคราะห์ระบบและผู้ใช้งาน
    3. เป็นแผนภาพที่ใช้ในการพัฒนาต่อในขั้นตอนของการออกแบบระบบ
    4. เป็นแผนภาพที่ใช้ในการอ้างอิง หรือเพื่อใช้ในการพัฒนาต่อในอนาคต
    5. ทราบที่มาที่ไปของข้อมูลที่ไหลไปในกระบวนการต่างๆ (Data and Process)
  • สัญลักษณ์ที่ใช้ในแผนภาพกระแสข้อมูล

สรุปความหมายของสัญลักษณ์ต่างๆ (ใช้สัญลักษณ์ของ Gane & Sarson)

                              Process หรือ ขั้นตอนการดำเนินงาน คือ งานที่ดำเนินการ/ตอบสนองข้อมูลที่รับเข้า หรือดำเนินการ/ตอบสนองต่อเงื่อนไข/ สภาวะใดๆ ที่เกิดขึ้น ไม่ว่าขั้นตอนการดำเนินงานนั้นจะกระทำโดยบุคคล หน่วยงาน หุ่นยนต์ เครื่องจักร หรือ เครื่องคอมพิวเตอร์ก็ตาม โดยจะเป็นกริยา (Verb)

                              เส้นทางการไหลของข้อมูล (Data Flows) เป็นการสื่อสารระหว่างขั้นตอนการทำงาน (Process) ต่างๆ และสภาพแวดล้อมภายนอกหรือภายในระบบ โดยแสดงถึงข้อมูลที่นำเข้าไปในแต่ละ Process และข้อมูลที่ส่งออกจาก Process ใช้ในการแสดงถึงการบันทึกข้อมูล การลบข้อมูล การแก้ไขข้อมูลต่างๆ สัญลักษณ์ที่ใช้อธิบายเส้นทางการไหลของข้อมูลคือ เส้นตรงที่ประกอบด้วยหัวลูกศรตรงปลายเพื่อบอกทิศทางการเดินทางหรือการไหลของข้อมูล

                              ตัวแทนข้อมูล (External Agents) หมายถึง บุคคล หน่วยงานในองค์กร องค์กรอื่นๆ หรือระบบงานอื่นๆ ที่อยู่ภายนอกขอบเขตของระบบ แต่มีความสัมพันธ์กับระบบ โดยมีการส่งข้อมูลเข้าสู่ระบบเพื่อดำเนินงาน และรับข้อมูลที่ผ่านการดำเนินงานเรียบร้อยแล้วจากระบบ สัญลักษณ์ที่ใช้อธิบาย คือ สี่เหลี่ยมจตุรัส หรือสี่เหลี่ยมผืนผ้า ภายในจะต้องแสดงชื่อของ External Agent โดยสามารถทำการซ้ำ (Duplicate) ได้ด้วยการใช้เครื่องหมาย \ (back slash) ตรงมุมล่างซ้าย

                              แหล่งจัดเก็บข้อมูล (Data Store) เป็นแหล่งเก็บ/บันทึกข้อมูล เปรียบเสมือนคลังข้อมูล (เทียบเท่ากับไฟล์ข้อมูล และฐานข้อมูล) โดยอธิบายรายละเอียดและคุณสมบัติเฉพาะตัวของสิ่งที่ต้องการเก็บ/บันทึก สัญลักษณ์ที่ใช้อธิบายคือสี่เหลี่ยมเปิดหนึ่งข้าง แบ่งออกเป็นสองส่วน ได้แก่ ส่วนที่ 1 ทางด้านซ้ายใช้แสดงรหัสของ Data Store อาจจะเป็นหมายเลขลำดับหรือตัวอักษรได้เช่น D1, D2 เป็นต้น สำหรับส่วนที่ 2 ทางด้านขวา ใช้แสดงชื่อ Data Store หรือชื่อไฟล์

  • ตัวอย่างการเขียนแผนภาพกระแสข้อมูล DFD Level 0 [Context  Diagram]

                    แผนภาพบริบท (Context Diagram) คือ แผนภาพกระแสข้อมูลระดับบนสุดที่แสดงภาพรวมการทำงานของระบบที่มีความสัมพันธ์กับสภาพแวดล้อมภายนอกระบบ

                    Level-0 Diagram คือ แผนภาพกระแสข้อมูลในระดับที่แสดงขั้นตอนการทำงานหลักทั้งหมด (Process หลัก) ของระบบแสดงทิศทางการไหลของ Data Flow และแสดงรายละเอียดของแหล่งจัดเก็บข้อมูล (Data Store)

                    Level-0 Diagram เป็นการแสดงให้เห็นถึงรายละเอียดของ Process การทำงานหลักๆ ที่มีอยู่ภายในภาพรวมของระบบ (Context Diagram) ว่ามีขั้นตอนใดบ้าง

                    ระดับของแผนภาพที่แบ่งย่อยมาจาก Level-0 เรียกว่า Level-1 ซึ่งแผนภาพที่แบ่งย่อยในระดับถัดมาจาก Level-0 diagram จะต้องมี Process  อย่างน้อย 2 Process ขึ้นไป

  • ตัวอย่างการเขียนแผนภาพกระแสข้อมูล DFD Level 1

ถ้าระบบใดมีการทำงานที่ซับซ้อนมาก นักวิเคราะห์ระบบจะไม่สามารถอธิบายการทำงานทั้งหมดได้ภายในขั้นตอนเดียวใน Context Diagram ดังนั้นในการวิเคราะห์ระบบจึงสามารถจำแนกระบบใหญ่หนึ่งระบบออกเป็นระบบย่อยๆ ได้หลายระบบ โดยแบ่งให้เป็นระบบย่อยที่มีขนาดเล็กลงเรื่อยๆ จนสามารถอธิบายการทำงานได้ทั้งหมด เรียกวิธีนี้ว่า “ การแบ่งย่อย

การแบ่ง/แยก/ย่อยระบบและขั้นตอนการทำงานออกเป็นส่วนย่อย โดยในแต่ละขั้นตอนที่แยกออกมา (Subsystems) จะแสดงให้เห็นถึงรายละเอียดของการทำงานเพิ่มมากขึ้น การแบ่งย่อย Process นั้นสามารถแบ่งย่อยลงไปได้เรื่อยๆ จนกระทั่งถึงระดับที่ไม่สามารถแบ่งย่อยได้อีกแล้ว

  • ตัวอย่างการเขียนแผนภาพกระแสข้อมูล DFD Level 2

                    กระแสข้อมูล DFD Level 2 คือ การแตกการประมวลผลย่อย โดยใช้แผนภาพกระแสข้อมูล DFD Level 1 แบ่งการประมวลผลภายในออกไปเป็นขั้นตอนต่างๆ ได้อีก ตัวอย่าง เช่น

  • กฎเกณฑ์การเขียนแผนภาพกระแสข้อมูล

                    [ หมายเหตุ เอนทิตี้ (Entity) เป็นวัตถุ หรือสิ่งของที่เราสนใจในระบบงานนั้น ๆ เป็นได้ทั้งนามธรรมและรูปธรรม ]

                    การสร้างดีเอฟดีของระบบงานจะใช้หลักการของการเขียนแบบโครงสร้างจากบนลงล่าง (top-down approach) หรือจากระบบใหญ่ไปสู่ระบบย่อย  ผู้สร้างดีเอฟดีจะต้องทราบถึงหน่วยงานภายนอกที่เกี่ยวข้องกับระบบทั้งหมด ลักษณะการเคลื่อนไหวของข้อมูล และการจัดเก็บข้อมูลของระบบต่าง ๆ                  

                    กฎของการใช้สัญลักณ์ประมวลผล (Process)

  1. ต้องไม่มีข้อมูลรับเข้าเพียงอย่างเดียว โดยไม่มีการส่งข้อมูลออกจากขั้นตอนการทำงาน (Process) เรียกข้อผิดพลาดชนิดนี้ว่า “Black Hole” เนื่องจากข้อมูลที่รับเข้ามาแล้วสูญหายไป 
  2. ต้องไม่มีข้อมูลออกเพียงอย่างเดียว โดยไม่มีข้อมูลเข้าสู่ Process เลย 
  3. ข้อมูลรับเข้าจะต้องเพียงพอในการสร้างข้อมูลส่งออก กรณีที่มีข้อมูลที่รับเข้าไม่เพียงพอในการสร้างข้อมูลส่งออกเรียกว่า “Gray Hole” โดยอาจเกิดจากการรวบรวมข้อเท็จจริงและข้อมูลไม่สมบูรณ์ หรือการใช้ชื่อข้อมูลรับเข้าและข้อมูลส่งออกผิด
  4. การตั้งชื่อ Process ต้องใช้คำกริยา (Verb) เช่น Prepare Management Report, Calculate Data สำหรับภาษาไทยใช้เป็นคำกริยาเช่นเดียวกัน เช่น บันทึกข้อมูลใบสั่งซื้อ ตรวจสอบข้อมูลลูกค้า คำนวณเงินเดือน เป็นต้น

กฎของกระแสข้อมูลใช้สัญลักษณ์ลุกศร (Data Flow)

  1. ชื่อของ Data Flow ควรเป็นชื่อของข้อมูลที่ส่งโดยไม่ต้องอธิบายว่าส่งอย่างไร ทำงานอย่างไร
  2. Data Flow ต้องมีจุดเริ่มต้นหรือสิ้นสุดที่ Process เพราะ Data Flow คือข้อมูลนำเข้า (Inputs) และข้อมูลส่งออก (Outputs) ของ Process
  3. Data Flow จะเดินทางระหว่าง External Agent กับ External Agent ไม่ได้
  4. Data Flow จะเดินทางจาก External Agent ไป Data Store ไม่ได้
  5. Data Flow จะเดินทางจาก Data Store ไป External Agent ไม่ได้
  6. Data Flow จะเดินทางระหว่าง Data Store กับ Data Store ไม่ได้
  7. การตั้งชื่อ Data Flow จะต้องใช้คำนาม (Noun) เช่น Inventory Data, Goods Sold Data เป็นต้น

กฎของตัวแทนข้อมูล (External Agents)

  1. ข้อมูลจาก External Agent จะวิ่งไปสู่อีก External Agent หนึ่งโดยตรงไม่ได้ จะต้องผ่าน Process ก่อนเพื่อประมวลข้อมูลนั้น จึงได้ข้อมูลออกไปสู่อีก External Agent
  2. การตั้งชื่อ External Agent ต้องใช้คำนาม (Noun) เช่น Customer, Bank เป็นต้น

กฎของแหล่งจัดเก็บข้อมูล (Data Store)

  1. ข้อมูลจาก Data Store หนึ่งจะวิ่งไปสู่อีก Data Store หนึ่งโดยตรงไม่ได้ จะต้องผ่านการประมวลผลจาก Process ก่อน
  2. ข้อมูลจาก External Agent จะวิ่งเข้าสู่ External Agent โดยตรงไม่ได้
  3. การตั้งชื่อ Data Store จะต้องใช้คำนาม (Noun) เช่น Customer File, Inventory หรือ Employee File เป็นต้น
  • ขั้นตอนการเขียนแผนภาพกระแสข้อมูล

          วิธีการสร้าง DFD 
          1). กำหนดสิ่งที่อยู่ภายนอกระบบทั้งหมด และหาว่าข้อมูลอะไรบ้างที่เข้าสู่ระบบหรือออกจากระบบที่เราสนใจสู่ระบบที่อยู่ภายนอก ขั้นตอนนี้สำคัญมากทั้งนี้เพราะจะทำให้ทราบว่าขอบเขตของระบบนั้นมีอะไรบ้าง
          2). ใช้ข้อมูลที่ได้จากขั้นตอนที่ 1 นำมาสร้าง DFD ต่างระดับ
          3). ขั้นตอนถัดมาอีก 4 ขั้นตอนโดยให้ทำทั้ง 4 ขั้นตอนนี้ซ้ำๆ หลายๆ ครั้ง จนกระทั่งได้ DFD ระดับต่ำสุด
               3.1 เขียน DFD ฉบับแรก กำหนดโพรเซสและข้อมูลที่ไหลออกจากโพรเซส
               3.2 เขียน DFD อื่นๆ ที่เป็นไปได้จนกระทั่งได้ DFD ที่ถูกที่สุด ถ้ามีส่วนหนึ่งส่วนใด ที่รู้สึกว่าไม่ง่ายนักก็ให้พยายามเขียนใหม่อีกครั้งหนึ่ง แต่ไม่ควรเสียเวลาเขียนจนกระทั่งได้ DFD ที่สมบรูณ์แบบ เลือก DFD ที่เห็นว่าดีที่สุดในสายตาของเรา
               3.3 พยายามหาว่ามีข้อผิดพลาดอะไรหรือไม่ ซึ่งมีรายละเอียดในหัวข้อ "ข้อผิดพลาดใน DFD"
               3.4 เขียนแผนภาพแต่ละภาพอย่างดี ซึ่ง DFD ฉบับนี้จะใช้ต่อไปในการออกแบบ และใช้ด้วยกันกับบุคคล อื่นๆ ที่เกี่ยวข้องในโครงการด้วย
          4). นำแผนภาพทั้งหมดที่เขียนแล้วมาเรียงลำดับ ทำสำเนา และพร้อมที่จะนำไปตรวจสอบข้อผิดพลาดจากผู้ร่วมทีมงาน ถ้ามีแผนภาพใดที่มีจุดอ่อนให้กลับไปเริ่มต้นที่ขั้นตอนที่ 3 อีกครั้งหนึ่ง
          5). นำ DFD ที่ได้ไปตรวจสอบข้อผิดพลาดกับผู้ใช้ระบบเพื่อหาว่ามีแผนภาพใดไม่ถูกต้องหรือไม่
          6). ผลิตแผนภาพฉบับสุดท้ายทั้งหมด

          สรุปขั้นตอนการเขียนแผนภาพกระแสข้อมูลมีสาระสำคัญ คือ
          1) เอนทิตีภายนอก (external entiy) ที่มีความสัมพันธ์กับข้อมูลอาจเป็นจุดกำเนิดข้อมูล จุดหมายปลายทางข้อมูล ซึ่งอาจจะเป็นองค์การ บุคคล ระบบงาน
          2)   ขบวนการประมวลผลเรียกว่าโพรเซส (process) แสดงการกระทำหรือการเปลี่ยนแปลงตัวข้อมูล 
          3)  แหล่งเก็บข้อมูล (data store) แสดงการเก็บข้อมูลในแฟ้มหรือฐานข้อมูล
          4)  การไหลของข้อมูล (data flow) แสดงการไหลของข้อมูลหรือการย้ายตำแหน่งของข้อมูลจากที่หนึ่งไปอีกที่หนึ่ง

  • การใช้แผนภาพกระแสข้อมูลในการกำหนดกระบวนการทางธุรกิจ

                    แผนภาพกระแสข้อมูลระดับแรกจะเป็นการนำเสนอแวดล้อม (Context) ของระบบในภาพรวม ในขณะที่แผนภาพกระแสข้อมูลระดับถัดลงมาก็จะแตกรายละเอียด (Explode) มากขึ้นตามลำดับ ดังนั้น แผนภาพกระแสข้อมูลระดับ ล่าง ๆ ก็จะเป็นการขยายรายละเอียดของระดับก่อนหน้า ทำให้เห็นถึงกระบวนการทำงาน ซึ่งเรียกกระบวนการนี้ว่า ฟังก์ชั่นนัลดีคอมโพซิชัน (Functional Decomposition)
                      หน้าที่ของนักวิเคราะห์ระบบจะต้องทำการออกแบบกระบวนการทางธุรกิจใหม่ (Business Process Redesign: BRP) หรืออาจเรียกว่า Business Process Reengineering เพื่อทำการปรับปรุงหรือเปลี่ยนแปลงกระบวนการทางธุรกิจเดิมที่เป็นอยู่ให้มีทิศทางที่ดีขึ้นกว่าเดิม

  • ข้อผิดพลาดใน DFD มีอะไรบ้าง

                    การเขียน DFD อาจเขียนได้หลายแบบ ผลลัพธ์ฉบับสุดท้ายอาจจะไม่เหมือนกันถ้าเขียนโดยนักวิเคราะห์ระบบคนละคน ถึงอย่างไรแนวทางการเขียน DFD ซึ่งจะช่วยให้เราเขียน DFD ได้ถูกต้องมากขึ้นก็มีอยู่บ้าง ซึ่งพอสรุปได้ดังนี้

  1. ถ้า DFD ซับซ้อนมาก ทุกๆ นิ้วในกระดาษถูกใช้งานหมด แสดงว่า DFD นั้นควรแตกย่อยไปอีกระดับหนึ่งหรือมากกว่าหนึ่ง
  2. ข้อมูลที่ออกจากโพรเซส หรือผลลัพธ์มีข้อมูลขาเข้าไม่เพียงพอ เราจะต้องพิจารณาแผนภาพต่อไปอีก แต่ที่สำคัญไม่ควรใส่ข้อมูลที่แคบใช้เข้ามาในโพรเซสเป็นอันขาด
  3. การตั้งชื่อโพรเซสนั้นไม่ง่ายนัก อาจจะมีปัญหา 2 อย่าง คือ โพรเซสนั้นควรจะแยกออกเป็น 2 ส่วน หรือเราไม่ทราบว่ามีอะไรว่ามีอะไรเกิดขึ้นบ้างในโพรเซสนั้น ๆ ในกรณีนี้เราต้องศึกษาระบบให้ละเอียดยิ่งขึ้น
  4. จำนวนระดับในแต่ละแผนภาพแตกต่างกันมาก เช่น โพรเซสที่ 1 มีลูก 2 ชั้น แต่โพรเซสที่ 2 มีลูก 10 ชั้น แสดงว่าการแบ่งจำนวนโพรเซสไม่ดีนัก จำนวนลูกโพรเซสไม่จำเป็นต้องเท่ากัน แต่ไม่ควรจะแตกกันมากนัก
  5. มีการแตกแยกย่อยข้อมูล รวมตัวกันของข้อมูล หรือมีการตัดสินใจในโพรเซส แสดงว่าโพรเซสนั้นไม่ถูกต้อง การแยกข้อมูลหรือรวมตัวของข้อมูลเป็นหน้าที่ของพจนานุกรมข้อมูล การตัดสินใจเป็นรายละเอียดอยู่ในคำอธิบายโพรเซส

 


เอกสารประกอบการสอน (อ่านเพื่อเพิ่มความเข้าใจ)

เอกสารอ้างอิงสำหรับอ่านเพิ่มเติม ได้แก่