วันเสาร์ที่ 26 พฤศจิกายน พ.ศ. 2554

ส่งงานอาจารย์ป๊อปนะครับ

Data Flow Diagram : DFD
เนื้อหา • แผนภาพการไหลของข้อมูล
• ส่วนประกอบของ DFD
• กระแสข้อมูล (Data Flow)
• แหล่งเก็บข้อมูลนอกระบบ 

1. แผนภาพการไหลของข้อมูล (Data Flow Diagram : DFD)
Data Flow Diagram เป็นเครื่องมือของนักวิเคราะห์ระบบที่ช่วยให้สามารถเข้าใจกระบวนการทำงานของแต่ละหน่วยงาน ซึ่งทราบถึงการรับ / ส่งข้อมูล การประสานงานระหว่างกิจกรรมต่าง ๆ ในการดำเนินงาน ซึ่งเป็นแบบจำลองของระบบ แสดงถึงการไหลของข้อมูลทั้ง INPUT และ OUTPUT ระหว่างระบบกับแหล่งกำเนิดรวมทั้งปลายทางของการส่งข้อมูล ซึ่งอาจเป็นแผนก บุคคล หรือระบบอื่น โดยขึ้นอยู่กับระบบงานและการทำงานประสานงานภายในระบบนั้น นอกจากนี้ยังช่วยให้รู้ถึงความต้องการข้อมูลและข้อบกพร่อง (ปัญหา) ในระบบงานเดิม เพื่อใช้ในการออกแบบการปฏิบัติงานในระบบใหม่
คลิกเพื่อดูรูปใหญ่


รูปที่ 1 แสดงตัวอย่างDFD ต่างระดับ (คลิกที่รูปถ้าต้องการดูรูปที่ชัดเจน)
จากรูปที่ 1 ลูกศรแสดงถึงข้อมูลซึ่งต้องมีชื่อกำกับ ลูกศรนี้จะเคลื่อนที่ผ่านระบบตรงกลาง คือ การสร้างระบบวานใหม่ แสดงถึงการกระทำสิ่งหนึ่งสิ่งใดกับข้อมูลที่วิ่งเข้ามา และลูกศรที่วิ่งออกจากระบบตรงกลางแสดงถึงผลลัพธ์ที่ได้จากการกระทำบนข้อมูลนั้นๆ แต่จากรูปนี้เราไม่อาจทราบว่าระบบใหม่สร้างขึ้นมาได้อย่างไร เอให้ได้รายละเอียดในการสร้างระบบใหม่ เราก็แตกระบบนี้ลงอีกระดับหนึ่ง ในรูปที่ 1 ส่วนล่างที่แตกออกไปเป็น 3 กิจกรรม มีกิจกรรมอยู่ 3 ขั้นตอนในการสร้างระบบใหม่ การแยกย่อยหน้าที่หนึ่งให้ได้รายละเอียดมากขึ้น ทำให้เราเข้าใจระบบนั้นได้ดีขึ้น และอาจจะแตกกิจกรรมทั้ง 3 กิจกรรมลงให้มีรายละเอียดมากขึ้นอีกก็เป็นได้ จนกว่าจะได้รายละเอียดเหมาะสมตามจุดประสงค์ของเรา วิธีการเขียนนี้ก็เหมือนกันกับการเขียนโปรแกรมคอมพิวเตอร์ซึ่งมีหลาย ๆ โปรแกรมย่อยนั่นเอง ดังนั้นการเขียน DFD ละเอียดเท่าใดก็ทำให้การออกแบบที่ตามมาง่ายขึ้นเท่านั้น
โมเดลทางกายภาพและทางตรรกภาพ (hysical and Logical Model)
ในการเขียนแผนภาพการไหลของข้อมูล (Data Flow Diagram) เราอาจเขียนได้ใน 2 รูปแบบ คือ แผนภาพการไหลของข้อมูลทางกายภาพ และแผนภาพการไหลของข้อมูลทางตรรกภาพ ซึ่งทั้ง 2 แบบนี้จะแตกต่างกันคือ เมื่อเราพูดถึงลอจิคัลหรือตรรกภาพจะหมายถึง การกระทำอย่างใดอย่างหนึ่งที่เราพูดถึงโดยไม่สนใจว่าจะทำอย่างไร เช่น เราพูดว่าเรียงลำดับข้อมูล เราจะไม่สนใจว่าจะเรียงลำดับข้อมูลนั้นได้อย่างไร เราเรียกการกระทำแบบนี้ว่า ลอจิคัลหรือตรรกภาพ หรืออีกนัยหนึ่งลอจิคัลก็คือ "ทำอะไร" ในขณะที่ฟิสิคัลหรือกายภาพจะมีความหมายตรงข้ามคือ จะต้องการทราบว่า การจะทำอะไรนั้นจะต้องทำอย่างไร เช่น การเรียงลำดับข้อมูลต้องทราบว่า จะต้องใช้โปรแกรม Utility ช่วยในการเรียงลำดับ
สรุปก็คือ ลอจิคัลหรือตรรกภาพจะไม่สนใจว่า "จะทำอะไร" ส่วนฟิสิคัลหรือกายภาพนอกจากจะต้องทราบว่าจะทำอะไรแล้วยังต้องคำนึงด้วยว่า "จะทำอย่างไร"
ตัวอย่างแผนภาพลอจิคัลและฟิสิคัลสำหรับการพิมพ์รายงานเพื่อเตรียมเงินสด


รูปตัวอย่างแผนภาพลอจิคัล สำหรับการพิมพ์รายงานเพื่อเตรียมเงินสด


รูปตัวอย่างแผนภาพฟิสิคัลสำหรับการพิมพ์รายงานเพื่อเตรียมเงินสด 

2. ส่วนประกอบของ DFDเพื่อให้การเขียนแผนภาพการไหลของข้อมูลเป็นมาตรฐานและมีแบบแผนที่ถูกต้อง ในที่นี้จะใช้สัญลักษณ์ในการเขียน DFD ตามทฤษฎีของ SSADM (Structure Systems Analysis and Design Method) ซึ่งมีองค์ประกอบ 4 สัญลักษณ์ ดังต่อไปนี้
1. สัญลักษณ์แทนการประมวลผล (Process)
2. สัญลักษณ์แทนกระแสข้อมูลเป็นลูกศร (Data Flow)
3. สัญลักษณ์แทนแหล่งเก็บข้อมูล (Data Store) เป็นเส้นขนาน 2 เส้น ปลายปิด 1 ด้าน
4. สัญลักษณ์แทนสิ่งที่อยู่นอกระบบ (External หรือ Terminators)



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



2. กระแสข้อมูล (Data Flow)กระแสข้อมูลแทนด้วยลูกศร โดยที่มีชื่อกำกับบนลูกศร
ข้อมูลจะไหลระหว่างโพรเซสต่างๆ และอาจจะเคลื่อนที่มาจากสิ่งที่อยู่นอกระบบก็ได้ ข้อมูลที่เคลื่อนที่อาจจะเป็นเพียงข้อมูลเดี่ยวๆ เช่น เลขที่สินค้า หรือกลุ่มของข้อมูล เช่น ข้อมูลพนักงาน ข้อมูลลูกค้า เป็นต้น


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


รูปที่ 3 ข้อมูล 2 รายการไม่เหมือนกันจะต้องแยกลูกศรออกจากกัน(ซ้ายเป็นภาพที่ผิด),(ขวาเป็นภาพที่ถูก)
3. แหล่งเก็บข้อมูล (Data Store) แทนด้วยเส้นขนาน 2 เส้น ปลายปิด 1 ด้าน และมีชื่อและหมายเลขกำกับ ข้อมูลจะถูกเก็บไว้ในไฟล์และถูกเรียกใช้เมื่อต้องการ โดยปกติแล้วไฟล์ไม่อาจจะอยู่ในจานแม่เหล็ก หรือเทปแม่เหล็ก ถ้าหัวลูกศรวิ่งเข้าสู่ไฟล์แสดงว่า มีการเขียนข้อมูล หรือการแก้ไขข้อมูลในไฟล์ การตั้งชื่อไฟล์ควรเป็นคำนาม
 รูปที่ 4 การแก้ไขข้อมูลในไฟล์
ประเภทของแฟ้มข้อมูล คือ1. Manual File
2. Digital File
3. Transaction File
ในการเขียน DFD แหล่งเก็บข้อมูลต้องไม่เชื่อมต่อกันโดยตรง โดยปราศจากโพรเซสใดโพรเซสหนึ่งก่อน






รูปที่ 5 แสดงการเชื่อม Data Store (ด้านบนเป็นภาพที่ผิด),(ด้านล่างเป็นภาพที่ถูก)

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



รูปที่ 6 แสดงการเชื่อมโพรเซส 2 โพรเซส (ด้านบนเป็นภาพที่ผิด),(ด้านล่างเป็นภาพที่ถูก)
อีกหนึ่งอันนะครับ

ตัวอย่างกระบวนการ
- บันทึกข้อมูล
- คำนวณค่าหน่วยกิต
- เลือกข้อมูลจากแฟ้ม
- ประมวลผลเพื่อแสดงผล
- เลือกรูปแบบรายงาน
ดีเอฟดี (DFD = Data Flow Diagrams) คืออะไร
แผนภาพแสดงการไหลของข้อมูลจากแหล่งข้อมูลภายนอกเข้ามาในระบบ เพื่อสแดงวิธีการไหลของข้อมูลจากกระบวนการหนึ่งไปอีกกระบวนการหนึ่ง ซึ่งมีสัญลักษณ์ 4 แบบคือ สี่เหลี่ยม สีเหลี่ยมมุมมน ลูกศร และสี่เหลี่ยมปลายเปิดข้างหนึ่ง
Introduction [ #1 :: #2 :: wikipedia.org ]
In the late 1970s data-flow diagrams (DFDs) were introduced and popularized for structured analysis and design (Gane and Sarson 1979). DFDs show the flow of data from external entities into the system, showed how the data moved from one process to another, as well as its logical storage. There are only four symbols:
1. Squares representing external entities, which are sources or destinations of data.
2. Rounded rectangles representing processes, which take data as input, do something to it, and output it.
3. Arrows representing the data flows, which can either be electronic data or physical items.
4. Open-ended rectangles representing data stores, including electronic stores such as databases or XML files and physical stores such as or filing cabinets or stacks of paper.




ตัวอย่าง : Context Diagram
    
คำอธิบาย
ระบบนี้อาจมีผู้เกี่ยวข้อง 2 คน คือ นักศึกษา และอาจารย์ ส่วนชื่อระบบคือ ระบบส่งโครงงานประจำวิชาแบบออนไลน์
- น.ศ.ส่งรายงาน และรับคะแนน
- อาจารย์รับรายงานแล้วส่ง

ตัวอย่าง : DFD 0 : Level 1 ระบบส่งโครงงานประจำวิชาแบบออนไลน์
   
    
  
กระบวนการ
- รับโครงงาน
- ตรวจ และบันทึกคะแนน
- พิมพ์รายงาน
# แฟ้มโครงงาน
# แฟ้มนักศึกษา
@ นักศึกษา
@ อาจารย์

ตัวอย่าง 1 : DFD ของ 2 กระบวนการ
ที่มีความสัมพันธ์กับ สิ่งแวดล้อมภายนอก เช่น พนักงาน สมัครงานใหม่ และลงเวลาทำงาน เป็นต้น
        ไม่ถูกต้อง
- ต้องผ่านการสมัครก่อน
- จึงไปลงเวลาทำงานได้

    
 
   


กระบวนการ
- สมัครงานใหม่
- ลงเวลาทำงาน
# แฟ้มพนักงาน
# แฟ้มลงเวลาทำงาน
@ พนักงาน

ตัวอย่าง 2 : DFD ของ 3 กระบวนการ
ระบบลงทะเบียนเรียนอย่างง่าย
 
      
 
 


กระบวนการ
- รับข้อมูลการลงทะเบียน
- ลงทะเบียนรายวิชา

: อ่านแฟ้มวิชา นักเรียน ผลการเรียน
: ถ้าผลการเรียนต่ำ ลงเกิน 18 หน่วยกิตไม่ได้
: อ่าน-เขียน แฟ้มลงทะเบียน
- พิมพ์ใบเสร็จให้นักศึกษา
: อ่านทุกแฟ้มที่เกี่ยวข้องมาทำรายงาน

ภาพสำหรับนำไปใช้
เมื่อสีแดงหมายถึงคำอธิบาย กระบวนการ (Process) และสีน้ำเงินหมายถึงคำอธิบายการไหลของข้อมูล (Data Flow) และสีดำแสดงถึงชื่อแฟ้ม หรือชื่อสิ่งแวดล้อมภายนอก หรือเลขของกระบวนการ
      
                                                
ตัวอย่าง : ระบบสั่งซื้อหนังสือ

http://www.yourdon.com/imgs/strucanalysis/ch9/SA.9.1.gif
กระบวนการ
- Receive Order
- Ship Books
- Collect Payments
# Orders File ใบสั่งซื้อ
# Invoices File ใบส่งของ
# Customers File
@ Customers
@ Warehouse

ตัวอย่าง DFD จากบอร์ดของนักศึกษา
        
        


dfd_sale_p10.doc

แนะนำเว็บ (Web Guides)
- http://www.agilemodeling.com/artifacts/dataFlowDiagram.htm (Introduction)
- http://www.smartdraw.com/tutorials/software-dfd/dfd.htm
- http://web.schq.mi.th/~suriyon/rong2/coul-4.htm
- http://www.thaiall.com/learn/sader.htm (เน้นออกแบบฐานข้อมูล)
- http://www.thaiall.com/project/dfd_mny.htm (ตัวอย่างของคุณ วุฒิชัย วิสุทธิพรต)
- http://infoarchgroup.com/qrdfd.htm
- http://www.umsl.edu/~sauter/analysis/dfd/dfd_intro.html (แตก Level ได้ชัดเจน)
- http://www.cems.uwe.ac.uk/~tdrewry/dfds.htm (ภาพเข้าใจง่าย)
- http://spot.colorado.edu/~kozar/DFD.html

1 ความคิดเห็น: