วันพฤหัสบดีที่ 10 กรกฎาคม พ.ศ. 2551

การแตกลูกหลาน(Parent-Child)มากน้อยแค่ไหนที่จำเป็น

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

ไม่มีความคิดเห็น: