Control Flowgraphs หรือเรียกสั้นๆ ว่า flowgraphs เป็นการแสดงโครงสร้างที่ควบคุมการทำงานของโปรแกรม (control structure) ในรูปแบบของกราฟฟิก ที่มีลักษณะเหมือน flowchart แต่ไม่แสดงรายละเอียดว่าแต่ละ process ทำอะไรบ้าง ส่วนประกอบของ flowgraph มีดังนี้
- process block
เป็นลำดับของคำสั่ง (statement) ถ้าคำสั่งใดคำส่งหนึ่ง ถูกประมวลผลแล้ว ทั้งหมดใน block จะถูกประมวลผลไปด้วย จะไม่มีการถูกแทรก ไม่ว่าจเป็น Dicision หรือว่า Junction อาจจะมีแค่คำสั่งเดียว หรือมากกว่านั้น มีทางเข้าทางเดียว ทางออกทางเดียว
ในการออกแบบกรณีทดสอบนั้น ไม่ต้องสนใจในเรื่องรายละเอียดของคำสั่ง ยกเว้นคำสั่งที่มีผลการทบต่อ control flowgraph เช่น ใช้เป็นเงื่อนไขของ Decision หรือ เกี่ยวของกับ Case
- Decision และ case statement
Decision คือจุดที่ control flowgraph ของโปรแกรมแยกออกไปได้ 2 ทาง เช่นคำสั่ง if-then-else เป็นต้นหรือมากกว่า 2 ทาง เช่น คำสั่ง case เป็นต้น
ในการออกแบบกรณีทดสอบสำหรับ Decision และ Case statement ไม่แตกต่างกัน โดยจะต้องออกแบบกรณีทดสอบให้เท่ากับจำนวนทางเลือก ให้การทำงานของโปรแกรมผ่านครบทุกทาง
- junction
Junction คือจุดในโปรแกรมที่ control flowgraph สามารถรวมกันได้ เช่น คำสั่ง go to เมื่อ jump ไปยัง ปลายทางจะทำให้ control flowgraph ไปรวมกับเส้นทางอื่น
- สัญลักษณ์ที่ใช้
เส้นทาง(path) ลำดับคำสั่ง ที่เริ่มต้นจากจุดเริ่ต้นของโปรแกรม และไปยังจุดสิ้นสุดอีกจุดหนึ่ง ในหนึ่งเส้นทาง อาจจะมีการวิ่งผ่าน junction,process block,decision กี่รอบก็ได้ ซึ่ง path จะประกอบด้วยหลายๆ segment โดยที่ segment ที่เล็กที่สุดคือ link ซึ่งก็คือ 1 process ที่อยู่ระหว่าง 2 โนด(node) ความยาว(length) ของเส้นทางนับจากจำนวน link ในเส้นทางหรือจำนวนโนด(node) ที่วิ่งผ่าน
จากรูป เป็นการแสดงการเขียน control flowgraph ของโปรแกรม จะใช้ node แทนแต่ละ process block และ decision ได้แก่ 1,2,3,4 และ 5 ส่วน link คือ a,b,c,d และ e หมายเลข 2 เป็น decision node มีทางเลือก 2 ทาง คือ Y และ N เส้นทางหรือ path ได้แก่ 1-2-3-5(หรือa-d-e) และ 1-2-4-5(หรือa-b-c) ทั้งสองเส้นทางมีความยาวเท่ากับ 3
Control Flowgraphs
Moderator: mindphp, ผู้ดูแลกระดาน
-
- PHP VIP Members
- โพสต์: 4933
- ลงทะเบียนเมื่อ: 02/06/2014 9:58 am
Control Flowgraphs
บางที Bug ก็ไม่มีเหตุผล และไม่ต้องการคำจำกัดความ
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ Service Organization Control (SOC) คืออะไร
โดย Chidchanok » 24/01/2019 12:36 pm » ใน Microsoft Office Knowledge & line & Etc - 0 ตอบกลับ
- 4028 แสดง
-
โพสต์ล่าสุด โดย Chidchanok
24/01/2019 12:36 pm
-
-
- 0 ตอบกลับ
- 1165 แสดง
-
โพสต์ล่าสุด โดย prakon
06/07/2018 11:45 am
-
-
โพสต์ใหม่ การใช้งาน Branch ใน Git (Version Control)
โดย tsukasaz » 22/07/2015 7:06 pm » ใน Microsoft Office Knowledge & line & Etc - 0 ตอบกลับ
- 1018 แสดง
-
โพสต์ล่าสุด โดย tsukasaz
22/07/2015 7:06 pm
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 55