590 likes | 1.43k Views
Systems Analysis and Design. การวิเคราะห์และออกแบบ. Data Flow Diagram 2. Chapter 5. เนื้อหา. แผนภาพกระแสข้อมูล Data Flow Diagram (Context Diagram ) DFD Level 0 DFD Level 1 การตรวจสอบสมดุล DFD (Balancing DFD) คำอธิบายการประมวลผล (Process Description) การตัดสินใจแบบต้นไม้
E N D
Systems Analysis and Design การวิเคราะห์และออกแบบ
Data Flow Diagram 2 Chapter 5
เนื้อหา • แผนภาพกระแสข้อมูล Data Flow Diagram (Context Diagram ) • DFD Level 0 • DFD Level 1 • การตรวจสอบสมดุล DFD (Balancing DFD) • คำอธิบายการประมวลผล (Process Description) • การตัดสินใจแบบต้นไม้ • ตารางตัดสินใจ
Conceptual Level DFDs Context Diagram(Parent) Level-0 (top level) (Child) DFD Level 0 Level-1 (lower level) DFD Level 1
Summarized Context Diagrams • รวบรวม all processing activity • Level ชั้นบนสุดของระบบ • แสดงขอบเขตของระบบ • ขอบเขตของระบบแทนด้วย 1 process และ external agents หรือ external entities
หลักการเขียน DFD Level 0 • จะเป็นแผนภาพที่ให้รายละเอียดในระดับแรกสุดรองจาก Context diagram เพื่อให้เห็นภาพรวมของระบบมากขึ้น โดยจะมีสัญลักษณ์การเก็บข้อมูล (data store) , สัญลักษณ์การไหลของข้อมูล (data flow) , และสัญลักษณ์การประมวลผล(process) • Diagram 0 สามารถแสดงให้เห็นรายละเอียดของกระบวนการทำงานหลักๆถัดจาก Context Diagram • แต่ละกระบวนการจะมีหมายเลขกำกับด้านบนของสัญลักษณ์ เริ่มตั้งแต่ หมายเลข 1 เป็นต้นไป • จำนวนกระบวนการที่ต้องทำในระบบไม่ควรมีมากน้อยเกินไป ควรอยู่ระหว่าง 2-7 (หรือ +/- 2) กระบวนการ
ปัญหาที่พบความไม่สมดุลของ Data Flow • จำนวน data flow ที่ไหลเข้า Input (Trigger) ไหลออก Response (Output) ระหว่าง process หลัก (parent process)และ process ลูก (child process) ไม่เท่ากัน • Labels บน data flow ระหว่าง process หลัก (parent process)และ process ลูก (child process) ไม่เหมือนกัน • ผลลัพธ์คือ DFDs เกิดความไม่สมดุล ( unbalanced DFDs)
กฎความสมดุลของ Data Flow (Consistency Rules) • ข้อมูลที่ไหลเข้าสู่ภายใน process หรือ activity ต้องมีข้อมูลไหลออก • ข้อมูลที่ไหลออกจาก process หรือ activity ต้องมีข้อมูลไหลเข้า
การตรวจสอบสมดุล • ตรวจสอบจำนวน external entity หรือ external agents,Input data flow และ Output data flow ระหว่าง parent level และ child level ต้องเท่ากันเสมอ
ข้อควรคำนึงถึงในการเขียน DFD Level 0 • ระดับ (Level) • สมดุล (Balancing) • แหล่งเก็บข้อมูล (Data store)
ความสัมพันธ์ระหว่าง DFD Level แม่และ DFD Level ลูก Level Parent Level Child
ความสมดุลระหว่าง Level parent กับ child Level Parent Level Child
Example DFD ลูกค้า (Customer)ทำการสั่งสินค้ากับบริษัทผ่านทางเว็บไซต์ หลังจากที่สั่งสินค้าเสร็จ ระบบจะทำการตรวจสอบและค้นหารายละเอียดของสินค้าที่สั่งว่า มีคงเหลืออยู่ในสต๊อค (Stock) สินค้าหรือไม่ พร้อมกับดำเนินการแจ้ง Message ตอบกับข้อมูลของสินค้ากลับไปยังลูกค้า และบันทึกรายการสินค้าที่ลูกค้าสั่งไปเก็บไว้ในคลังข้อมูลของบริษัทส่งสินค้า (Shipping)เมื่อดำเนินการเสร็จสิ้น ลูกค้าก็จะได้รับใบส่งของ (Invoice) และชำระเงิน (Payment)และระบบสามารถสร้างรายงานต่างๆ ได้
วิธีการสร้างแบบจำลองขั้นตอนการทำงานของระบบด้วย DFD • สร้างแผนภาพบริบท (Context Diagram) • สร้างแผนภาพระดับ 0 (Level-0 Diagram) • แบ่งย่อยแผนภาพ (Decomposition of DFD) • ตรวจสอบสมดุลของ DFD (Balancing DFD) 7.21
การสร้างแผนภาพบริบท • แผนภาพระดับแรกของ DFD แสดงภาพรวมของระบบ โดยแสดง หน่วยภายนอกที่เกี่ยวข้อง • ประกอบด้วย 1 process เท่านั้น และ process ดังกล่าวนี้จะมีชื่อเป็นชื่อของระบบและมีหมายเลขประจำ process เป็น หมายเลข 0 • context diagram จะมีเพียงสามสัญลักษณ์ คือ external, process (1 process) และ data flow (จะไม่เขียน data store ในระดับนี้)
การสร้างแผนภาพระดับ 0 Level-0 Diagramคือ แผนภาพกระแสข้อมูลในระดับที่แสดง ขั้นตอนการทำงานหลักทั้งหมด เป็นการแสดงให้เห็นถึงการ ทำงานหลักๆ ที่มีอยู่ภายในภาพรวมของระบบ (Context Diagram) ว่ามีขั้นตอนใดบ้าง โดยแต่ละ Process จะมีหมายเลขกำกับอยู่ ด้านบนของสัญลักษณ์ ตั้งแต่ 1 เป็นต้นไป
Context Diagram Data Flow Diagram Level-0 แสดงการแบ่งย่อยแผนภาพ
การแบ่งย่อยแผนภาพออกเป็นระดับต่าง ๆ Decomposition คือ การแบ่ง/แยก/ย่อยระบบ และขั้นตอนการทำงานออกเป็นส่วนย่อย โดยในแต่ละขั้นตอนที่แยกออกมา (Subsystems) จะแสดงให้เห็นถึงรายละเอียดของการทำงานเพิ่มมากขึ้น การแบ่งย่อย Process นั้นสามารถแบ่งย่อยลงไปได้เรื่อยๆ จนกระทั่งถึงระดับที่ไม่สามารถแบ่งย่อยได้อีกแล้ว เรียกว่า “Primitive DFD” ระดับของแผนภาพที่แบ่งย่อยมาจาก Level-0 เรียกว่า Level-1 ซึ่งจะต้องมีอย่างน้อย 2 Process ขึ้นไป
หลักการเขียน DFD Level-1 DFD Level 1 : แสดงถึงโปรเซสย่อย (sub process) ของแผนภาพกระแสข้อมูลระดับที่ 0 เพื่อแสดงถึงกระบวนการทำงานของระบบในรายละเอียด คือ มีการแตกฟังก์ชันการทำงานข้อมูลระดับที่ 1 ออกเป็นส่วนๆ เรียกว่า Functional Decomposition 1. ใช้เลขทศนิยมเพื่อระบุความสัมพันธ์ระหว่างโปรเซส ตัวอย่างเช่น 1.1,1.2 , 2.1,2.2 , 3.1,3.2
1.1 1.3 1.2 3.0 2.0 1.0 0 1.1.1 1.1.3 1.1.2 การระบุหมายเลขของแผนภาพ
หลักการเขียน DFD Level-1 0.การทำอาหาร Context Diagram DFD LEVEL-0 1. แกงจืด 2. ต้มข่าไก่ 3. ไข่เจียว 4. ข้าวเหนียว 1.1 ต้มน้ำให้เดือด 1.2 ใส่หมูสับ 1.3 ใส่วุ้นเส้น 2.1 …….. 2.2 …….. 2.3 …….. DFD LEVEL-1 3.1 …….. 3.2 …….. 3.3 …….. 4.1 …….. 4.2 …….. 4.3 …….. ต้มน้ำให้เดือดแล้วใส่หมูสับปั้นเป็นก้อน เสร็จแล้วใส่วุ้นเส้น ตามด้วยน้ำปลา ปรุงรสตามชอบ Process Description
คำอธิบายการประมวลผล (Process Description ) วัตถุประสงค์ของคำอธิบายการประมวลผล 1. เรียนรู้รายละเอียดของแต่ละโปรเซสว่ามีกระบวนการทำงานอย่างไรเป็นสำคัญ 2. สามารถกระทำให้สำเร็จตามกระบวนการที่ได้อธิบายไว้ได้อย่างถูกต้องและเข้าใจตรงกัน 3. ตรวจสอบในขั้นตอนของการออกแบบระบบ เพื่อให้เกิดความมั่นใจว่าโปรเซสหรือกระบวนการที่ได้รับอินพุตเข้ามา และทำการประมวลผลลัพธ์ที่นำเสนอบนแผนภาพกระแสข้อมูลนั้น เป็นไปอย่างถูกต้องหรือไม่
คำอธิบายการประมวลผล (Process Description ) จำแนกออกเป็น 2 รูปแบบใหญ่ๆ 1. คำอธิบายการประมวลผลในรูปแบบภาษาธรรมชาติ (Natural Language Specification) เขียนคำอธิบายการประมวลผลที่ใกล้เคียงกับภาษามนุษย์ ทำให้ง่ายต่อการทำความเข้าใจ 2. คำอธิบายการประมวลผลในรูปแบบภาษาสคริปต์ (Scripting) จัดเป็นคำอธิบายการประมวลผลในระดับระบบ ใกล้เคียงกับภาษาคอมพิวเตอร์ที่โปรแกรมเมอร์สามารถรับรู้ได้อย่างเข้าใจ ตัวอย่างเช่น ภาษาอังกฤษแบบโครงสร้าง (Structured English) ผังการตัดสินใจแบบต้นไม้ (Decision Tree) ตารางตัดสินใจ (Decision Table)
คำอธิบายการประมวลผล (Process Description ) Process Description ตัวอย่างการเขียนคำอธิบายการประมวลผลในรูปแบบภาษาธรรมชาติ System : Order System DFD number : 1 Process name : Fill Order Input data flows : Order Output data flows : Pickinglist, Order Reject Notioce Data stored used :- Description : เป็นโปรเซสการสั่งซื้อสินค้า ซึ่งประกอบด้วย โปรเซสย่อยๆ ดังนี้ 1.1 Verify Order 1.2 Prepare Reject Notice 1.3 Assemble Order
คำอธิบายการประมวลผล (Process Description ) Process Description ตัวอย่างการเขียนคำอธิบายการประมวลผลในรูปแบบภาษาธรรมชาติ System : Order System DFD number : 1.1 Process name : Verify Order Input data flows : Order Output data flows : Rejected Order, Accepted Order Data stored used :Customers, Products Description :เมื่อลูกค้ามีการซื้อสินค้า ระบบจะทำการตรวจสอบ เครดิตลูกค้าและรายละเอียดสินค้า ถ้าลูกค้ามีเครดิตและมีสินค้า ก็จะยอมรับการสั่งซื้อ ถ้าไม่ได้เป็นไปตามเงื่อนไขก็จะปฏิเสธ การสั่งซื้อกลับไปยังลูกค้า
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง Structured English คือ การนำภาษาอังกฤษมาเขียนเพื่อบ่งบอก รายละเอียดการทำงานของ Process ที่ปรากฏอยู่บน DFD โดยมี รูปแบบการเขียนใกล้เคียงกับไวยากรณ์ที่ใช้ในการเขียนโปรแกรม ใช้อธิบายการทำงานของแต่ละ process ใน DFDs โดยใช้ 3 logical structures ต่อไปนี้ • แบบตามลำดับ (Sequence) • แบบมีเงื่อนไข(Conditional หรือ Decision Structure) • แบบการทำซ้ำ (Iteration หรือ Repetition)
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง แบบตามลำดับ (Sequence)มีลักษณะการทำงานเป็นไปตามลำดับ ขั้นตอน ไม่มีการกระโดดข้ามขั้นตอน ตัวอย่างเช่น Read Record Calculate Gross Pay = Hours work * Hour wage Print Gross Pay
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง แบบมีเงื่อนไข (Conditional/Decision/Selection)เป็นการทำงานที่ มีการกำหนดการกระทำการทำงานแตกต่างกันไปตามแต่ละเงื่อนไข โดยรูปแบบการเขียนคำอธิบาย Process แบบมีเงื่อนไข แบ่งออกได้ 2 ลักษณะคือ • If-then-else • Case
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง • If-then-else • If Accept_Applicant then • Print Accepted Letters • Record Applicant_Data in Applicant_File • Else • Print Reject Letters • End If
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง • Case • Select Case Item • Case 1 : if Grade <= 2.00 then • Reject Applicant • Case 2 : if Grade > 2.00 and Grade <= 3.50 then • Print Interview Letters • Case 3 : If Grade > 3.50 then • Print Interview Letters • Record Application_Data • End Select
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง แบบการทำซ้ำ (Iteration/Repetition)เป็นโครงสร้างของการเขียน ที่มีลักษณะการกระทำกิจกรรมซ้ำไปเรื่อยๆ ภายใต้เงื่อนไขที่กำหนด ลักษณะการทำซ้ำสามารถอธิบาย Process ด้วย Structure English ได้คือ • Do-While • Do-Until • For Loop
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง • 1. Do-While • ตัวอย่างเช่น Read Employee Record While not End-of-File do Print Employee Record End Do 2. Do-Until ตัวอย่างเช่น Do Read Employee Record Print Employee Record Until End –of File
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง • For Loop 8.17
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง
ภาษาอังกฤษแบบโครงสร้างภาษาอังกฤษแบบโครงสร้าง นอกจากนี้สิ่งที่ควรคำนึงถึงเมื่อมีการจัดทำ Structured English ได้แก่ • ชื่อของข้อมูลที่แสดงอยู่ใน Structured English จะเป็นชื่อของข้อมูลที่ปรากฏอยู่บนแผนภาพกระแสข้อมูลเท่านั้น • ประโยคที่เป็นสูตรคำนวณทางคณิตศาสตร์ ควรจะเขียนให้กระทัดรัด และตัวกระทำทางคณิตศาสตร์ (Operand) ควรจะเป็นข้อมูลที่มีอยู่ภายในระบบหรือเป็นค่าคงที่ที่ได้กำหนดไว้ • หากเป็น Structured English ที่มีโครงสร้างการทำงานแบบมีเงื่อนไขหรือการทำซ้ำควรมีการเชื่อมโยงเส้น (Blocking) หรือใช้คำที่แสดงให้เห็นถึงจุดสิ้นสุดการทำงานของแต่ละส่วน
การตัดสินใจแบบต้นไม้ Decision Treeเป็นโครงสร้างเงื่อนไขการตัดสินใจที่ลักษณะคล้าย ต้นไม้ที่แผ่กิ่งก้าน ด้วยการแบ่งแยกเงื่อนไขออกเป็นส่วนๆ ทำให้เห็น โครงสร้างของเงื่อนไขชัดเจนยิ่งขึ้น 8.23
ตารางการตัดสินใจ Decision Tableคือ แผนภาพที่ใช้ในการอธิบายการทำงานของ Process ที่มีเงื่อนไขการตัดสินใจที่ซับซ้อน โดยแสดงเงื่อนไข (Conditions)การกระทำ (Actions) และกิจกรรมที่เป็นไปได้ตาม กฎเกณฑ์ (Rules) ของเงื่อนไขนั้นอยู่ในรูปของตาราง ซึ่งภายใน ตารางการตัดสินใจ มีส่วนประกอบต่อไปนี้ • Conditionsคือ เงื่อนไขต่างๆ ที่กำหนดขึ้น • Action คือ ผลของเงื่อนไข ซึ่งได้จากเงื่อนไขต่างๆ มาประมวลจนได้ผลลัพธ์ • Rule คือ กฎเกณฑ์ เป็นการรวมกันของเงื่อนไขและการกระทำอันใดอันหนึ่งที่ระบุว่ากิจกรรมใดที่จะต้องกระทำตามเงื่อนไขใด
ตารางการตัดสินใจ The four quadrants
ตารางการตัดสินใจ Condition Action
ระบบร้านขายรองเท้าจะต้องปฏิสัมพันธ์กับบุคคลอื่น หรือหน่วยงานอื่นที่อยู่นอกระบบ 3 กลุ่ม คือ บริษัทคู่ค้า หมายถึง ร้านค้า หรือบริษัทที่ระบบจัดซื้อรองเท้าเข้ามาขาย ลูกค้า หมายถึง ผู้ที่มาซื้อ หรือมาชมรองเท้า เจ้าของร้าน หมายถึง ผู้ที่กำหนดราคาขาย และ ต้องการรายงานต่างๆ จากระบบ เช่น รายงานการขายประจำวัน รายงานสต๊อกสินค้าคงเหลือ ระบบร้านขายรองเท้า 48
ระบบร้านขายรองเท้า 0 ระบบ ร้านขายรองเท้า รองเท้าที่ต้องการ ลูกค้า บริษัทคู่ค้า รองเท้าใหม่ ใบเสร็จรับเงิน รายงานการขาย รายงานสต๊อกสินค้า กำหนดราคาขาย เจ้าของร้าน Context Diagram ของระบบร้านขายรองเท้า(Shoes Shop System) 49
ลูกค้า ตัวอย่างData Flow Diagram Level 0 รองเท้าที่ต้องการ 2.0 ขาย สินค้า ใบเสร็จรับเงิน บริษัทคู่ค้า รองเท้าใหม่ 1.0 จัดการข้อมูลสินค้า ข้อมูลสินค้า ข้อมูลการขาย ข้อมูลสินค้า D2รายการขาย D1สินค้า ข้อมูลการขาย 3.0 ทำรายงาน ข้อมูลสินค้า กำหนดราคาขาย รายงานสต๊อกสินค้า เจ้าของร้าน รายงานการขาย DFD Level 0 ของระบบร้านขายสินค้า