ขั้นตอนสำคัญในการแก้ปัญหาคือการวางแผน การวางแผนที่ดีจะช่วยในการแก้ปัญหาเป็นไปได้โดยง่าย ผู้ที่สามารถวางแผนในการแก้ปัญหาได้ดี นอกจากจะต้องใช้ประสบการณ์ ความรู้ และความมีเหตุผลแล้ว ยังควรรู้จักวางแผนให้เป็นขั้นตอนอย่างเป็นระบบด้วย การออกแบบโปรแกรมเป็นส่วนหนึ่งในขั้นตอนที่สองของการพัฒนาโปรแกรม วิธีการออกแบบโปรแกรมออกมาในลักษณะข้อความ หรือเป็นสัญลักษณ์ จะช่วยให้สามารถแก้ปัญหาได้ดี โดยเฉพาะปัญหาที่ยุ่งยากซับซ้อน การวางแผนจะเป็นแนวทางในการดำเนินการแก้ปัญหาต่อไป อีกทั้งเป็นการแสดงแบบเพื่อให้ผู้ที่เกี่ยวข้องได้เข้าใจ และสามารถปฏิบัติตามในแนวทางเดียวกัน ทั้งนี้ก็ด้วยวัตถุประสงค์อย่างเดียวกับกลุ่มกิจการก่อสร้าง ซึ่งจำเป็นต้องมีแบบแปลนเป็นเครื่องมือติดต่อสื่อสารระหว่างผู้ออกแบบและผู้ก่อสร้าง แบบแปลนเหล่านี้จะอยู่ในรูปลักษณะของการวาดภาพหรือแสดงเครื่องหมาย ซึ่งเป็นที่เข้าใจระหว่างผู้เกี่ยวข้อง แบบแปลนจะต้องจัดทำให้เสร็จก่อนที่จะลงมือก่อสร้าง โดยผ่านการตรวจสอบ ทบทวนและพิจารณาจากผู้เกี่ยวข้องหลายฝ่าย เมื่อเห็นว่าเป็นที่ถูกต้องและพอใจของทุกฝ่ายแล้ว จึงก่อสร้างตามแบบนั้น แต่ถ้ายังไม่เป็นที่พอใจก็จะพิจารณาแก้ไขแบบแปลนส่วนนั้นๆ เสียก่อนจะได้ไม่ต้องรื้อถอนหรือทุบทิ้งภายหลัง และเมื่อต้องการซ่อมแซมหรือต่อเติมก็นำเอาแบบแปลนเดิมมาตรวจสอบและเพิ่มแบบแปลนในส่วนนั้นได้โดยง่าย การใช้แบบแปลนจึงเป็นสิ่งที่จำเป็นระหว่างช่างก่อสร้าง ผู้ออกแบบ และผู้ที่เกี่ยวข้องอื่นๆ เป็นอย่างมาก เพราะประหยัดเวลา ค่าใช้จ่ายและเข้าใจง่าย เมื่อสรุปรวมแล้วแบบแปลนเหล่านี้ก็คือข้อตกลงให้สร้างอาคารของผู้จ้าง กับผู้รับจ้างที่อยู่ในรูปแบบกะทัดรัด แทนที่จะเขียนเป็นข้อความที่เป็นลายลักษณ์อักษรอย่างยืดยาว และยังเป็นเครื่องมือให้ช่างใช้ในการก่อสร้างอีกด้วย
เครื่องมือที่ใช้ในการออกแบบโปรแกรม มักจะประกอบขึ้นด้วยเครื่องหมายที่แตกต่างกันหลายอย่าง แต่พอสรุปได้เป็น 2 ลักษณะคือ
- ข้อความหรือคำบรรยาย
เป็นการเขียนเค้าโครงด้วยการบรรยายเป็นภาษาที่มนุษย์ใช้สื่อสารกัน เพื่อให้ทราบถึงขั้นตอนการทำงานของโปรแกรมแต่ละขั้นตอน ในบางครั้งก็อาจใช้คำสั่งของภาษาที่ใช้เขียนโปรแกรมก็ได้
1.1 จอดรถหลบข้างทาง
1.2 คลายสกรูยึดล้อ
1.3 นำแม่แรงออกยกรถ
1.4 ถอดล้อออก นำยางอะไหล่มาเปลี่ยน
1.5 ขันสกรูเข้า เก็บยางที่ชำรุดเพื่อไปซ่อม
1.6 คลายแม่แรง เก็บแม่แรง
- สัญลักษณ์
การเขียนโปรแกรมเพื่อสั่งให้คอมพิวเตอร์ทำงาน จำเป็นต้องมีการออกแบบขั้นตอนการทำงานของโปรแกรม เพื่อวางแผนอย่างเป็นขั้นตอนว่าจะต้องเขียนโปรแกรมแก้ปัญหาอย่างไร เรียกการวางแผนในขั้นตอนนี้ว่า การจำลองความคิด หรือ อัลกอลิทึม (Algorithm) การออกแบบหรือการเขียนโปรแกรมต้องเป็นไปตามความต้องการของผู้ใช้ โดยมีเครื่องมือที่ใช้ในการออกแบบที่นิยมกันคือ รหัสจำลอง (Pseudo-code) คือการใช้ประโยคภาษาอังกฤษที่สื่อความหมายง่ายๆสามารถอ่านแล้วเข้าใจได้โดยทันทีหรือผังงาน (Flowchart) คือการใช้สัญลักษณ์รูปภาพเป็นตัวสื่อความหมายจากโจทย์ ที่ทำให้ผู้ออกแบบสามารถเขียนลำดับการทำงานและขั้นตอนของการประมวลผลของโปรแกรมได้ โดยไม่ต้องกังวลกับรูปแบบคำสั่งภาษาคอมพิวเตอร์
ความหมายของผังงาน (Flowchart)
- ผังงานคือ การเขียนอธิบายขั้นตอนวิธีการทำงานในลักษณะของรูปภาพ
- ผังงานคือ แผนภาพที่มีการใช้สัญลักษณ์รูปภาพและลูกศรที่แสดงถึงขั้นตอนการทำงานของโปรแกรมหรือระบบทีละขั้นตอน รวมไปถึงการไหลของข้อมูลตั้งแต่แรก จนได้ผลลัพธ์ตามที่ต้องการ
3. ผังงาน เป็นเครื่องมือหนึ่งของการออกแบบโปรแกรมที่เป็นที่นิยมใช้ เนื่องจากมีการใช้สัญลักษณ์ในลักษณะของรูปภาพ ทำให้สามารถเห็นลำดับขั้นตอนวิธีการทำงานได้ชัดเจนกว่าการอธิบายขั้นตอนวิธีการทำงานในลักษณะของข้อความ
ประเภทของผังงาน
- ผังงานระบบ (System Flowchart)
เป็นผังงานแสดงขั้นตอนการทำงานทั้งหมด ในผังงานประเภทนี้จะเห็นระบบงานภายในของระบบหนึ่งๆ ที่เกี่ยวข้องกับงานทั้งหมด ทั้งวัสดุ เครื่องจักร โปรแกรม และบุคลากรจุดมุ่งหมายของการใช้ผังงานระบบ เพื่อให้ทราบถึงความสัมพันธ์ของระบบทั้งหมด หรือภาพรวมของระบบทั้งหมดตั้งแต่เริ่มต้นจนสุดท้ายว่ามี ขั้นตอนอะไรบ้าง แต่ละขั้นตอนทำอย่างไร ใช้วิธีการอะไรบ้าง ผังงานระบบนี้เหมาะสำหรับผู้บริหาร ผู้วิเคราะห์ระบบและผู้เขียนโปรแกรม แต่ผังงานระบบนี้ยังไม่สามารถนำไปใช้ในการเขียนโปรแกรมได้
ลักษณะของผังงานระบบ
1) แสดงขอบเขตของระบบทั้งหมด
2) แสดงข้อมูลเข้าถูกเก็บอยู่ที่ใดบ้าง ใช้สื่อบันทึกข้อมูลแบบใด
3) ประมวลผลและแสดงผลลัพธ์ที่ใด
- ผังงานโปรแกรม (Program Flowchart)
หรือที่นิยมเรียกกันสั้นๆ ว่า Flowchart ผังงานประเภทนี้เป็นผังงานซึ่งแสดงลำดับขั้นตอนการทำงานอย่างละเอียดของโปรแกรม โดยจะแสดงรายละเอียดของขั้นตอนการทำงานอย่างชัดเจนไม่ว่าจะเป็นขั้นตอนของการรับข้อมูลเข้า การคำนวณ (การประมวลผล) และการแสดงผลลัพธ์
สถาบันมาตรฐานแห่งชาติอเมริกา (The American National Standard Institute : ANSI) ได้กำหนดสัญลักษณ์ที่ใช้ในการเขียนผังงานไว้เป็นมาตรฐานแล้ว ซึ่งมีรายละเอียด รูปแบบและความหมายที่ควรทราบ ดังนี้