บทที่ 6
หลักการเขียนผังงานระบบ

          ผังงานระบบ  คือ   รูปภาพหรือสัญลักษณ์ที่ใช้แทนลำดับ  หรือขั้นตอนในโปรแกรมรูปภาพหรือสัญลักษณ์ที่ใช้เป็นเอกลักษณ์  และแทนความหมายอย่างใดอย่างหนึ่ง

ประเภทของผังงาน
โดยทั่วไปผังงานคอมพิวเตอร์แบ่งเป็น 2 ประเภทใหญ่ 

ผังงานระบบ(System  Flowchat)
เป็นผังงานที่แสดงถึงขั้นตอนการทำงานภายในระบบหนึ่ง ๆ โดยจะแสดงถึงความเกี่ยวข้องของส่วนที่สำคัญต่าง ๆ ในระบบนั้น เช่น เอกสารเบื้องต้น  หรือสื่อบันทึกข้อมูลที่ใช้อยู่เป็นอะไร  และผ่านไปยังหน่วยงานใด  มีกิจกรรมอะไรในหน่วยงานนั้น  แล้วจะส่งต่อไปหน่วยงานใด  เป็นต้น  ดังนั้นผังงานระบบอาจเกี่ยวข้องกับคน  วัสดุ  และเครื่องจักร  ซึ่งแต่ละจุดจะประกอบไปด้วย   การนำข้อมูลเข้า  วิธีการประมวลผลและการแสดงผลลัพธ์ (Input – Process - Output) ว่ามาจากที่ใดอย่างกว้าง ๆ จึงสามารถเขียนโปรแกรมจากผังงานระบบได้

ผังงานโปรแกรม(Program Flowchat) หรือเรียกสั้น ๆ ว่า ผังงาน
ผังงานประเภทนี้แสดงถึงขั้นตอนของคำสั่งที่ใช้ในโปรแกรม  ผังงานนี้อาจสร้างจากผังงานระบบโดยผู้เขียนผังงานจะดึงเอาแต่ละจุดที่เกี่ยวข้องการทำงานของเครื่องคอมพิวเตอร์ที่ปรากฏในผังงานระบบมาเขียน  เพื่อให้ทราบว่าถ้าจะใช้คอมพิวเตอร์ทำงานในจุดนั้นเพื่อให้ได้ผลลัพธ์ที่ตามต้องการ  ควรที่จะมีขั้นตอนคำสั่งอย่างไร  และจะได้นำมาเขียนโปรแกรมคอมพิวเตอร์ทำงานต่อไป

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

                                         
                                          ผังงานระบบ                     ผังงานโปรแกรม



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


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


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

หลักทั่วไปในการเขียนผังงานระบบ
                การเขียนผังงานระบบอาจจะเขียนลงในกระดาษที่มีแบบฟอร์มมาตรฐานที่เรียกว่า Flowchart Worksheet ซึ่งจะช่วยให้เขียนผังงานระบบได้สะดวกขึ้น ประหยัดเนื้อที่ ง่ายต่อการติดตามจุดต่อและดูเรียบร้อย หรือจะใช้กระดาษธรรมดาเขียนก็ได้ การเขียนรูปหรือสัญลักษณ์ต่าง ๆ ในผังงานระบบ จะใช้ Flowchart Template ซึ่งเป็นแผ่นพลาสติกที่มีช่องเจาะเป็นรูปสัญลักษณ์ต่าง ๆ ของผังงานระบบเข้าช่วยก็ได้ ปัจจุบันมีโปรแกรมคอมพิวเตอร์ที่ใช้เขียนผังงานระบบที่มีความสวยงามและเป็นมาตรฐานมากยิ่งขึ้น

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