ขั้นตอนการพัฒนาโปรแกรม

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

  1. การกำหนดและวิเคราะห์ปัญหา (problem definition and problem analysis)
  2. เขียนผังงานและซูโดโค้ด (pseudo coding)
  3. เขียนโปรแกรม (programming)
  4. ทดสอบและแก้ไขโปรแกรม (program testing and debugging)
  5. ทำเอกสารและบำรุงรักษา (program documentation and maintenance)

     1. การกำหนดและวิเคราะห์ปัญหา (problem definition and problem analysis) เป็นขั้นตอนที่จะต้องกำหนดแนวทางในการแก้ปัญหาให้เหมาะสมกับคอมพิวเตอร์ เพื่อให้การทำงานเป็นไปอย่างมีประสิทธิภาพ โดยต้องทำความเข้าใจกับปัญหาที่ต้องการแก้ไขให้ได้ มีขั้นตอนการดำเนินการย่อย ๆ ดังต่อไปนี้

       1.1) กำหนดขอบเขตของปัญหา โดยกำหนดรายละเอียดให้ชัดเจนว่าจะให้คอมพิวเตอร์ทำอะไร ตัวแปร ค่าคงที่ต้องเป็นไปในลักษณะใด

       1.2) กำหนดลักษณะของข้อมูลเข้าและออกจากระบบ (Input/Output specification) โดยต้องรู้ว่าข้อมูลที่ส่งไปเป็นอย่างไร มีอะไรบ้าง เพื่อทำให้โปรแกรมประมวลผลและแสดงผลลัพธ์ เช่น การรับค่าจากคีย์บอร์ด การใช้เมาส์ การกำหนดปุ่มต่าง ๆ ลักษณะการแสดงผลหน้าจอว่าจะให้มีรูปร่างอย่างไร โดยขึ้นอยู่กับผู้ใช้งานโปรแกรมเป็นหลัก เช่น ข้อมูลประเภท ตัวเลข ตัวอักษร ข้อความ ใช้ทศนิยมกี่ตำแหน่ง

       1.3) กำหนดวิธีการประมวลผล (process specification) ต้องรู้ว่าจะให้คอมพิวเตอร์ประมวลผลอย่างไร จึงจะได้ผลลัพธ์ตามที่ต้องการ

     2. เขียนผังงานและซูโดโค้ด (pseudo coding) หลังจากที่ได้วิเคราะห์ปัญหาแล้ว ขั้นตอนต่อไปเป็นการนำเครื่องมือมาช่วยในการออกแบบโปรแกรม ซึ่งยังไม่ใช่การเขียนโปรแกรมจริง ๆ แต่ช่วยในการเขียนโปรแกรม ทำให้ผู้อื่นนำโปรแกรมของเราไปพัฒนาต่อได้ง่ายขึ้น โดยเขียนเป็นลำดับขั้นตอนการทำงานของโปรแกรมที่เรียกว่าอัลกอริทึม (algorithm) ซึ่งจะแสดงขั้นตอนการแก้ปัญหา ใช้ประโยคที่ชัดเจนไม่คลุมเครือ และมีรายละเอียดการทำงานที่เพียงพอที่จะนำมาเขียนโปรแกรมให้ทำงานจริง อาจเขียนในรูปของรหัสจำลอง หรือซูโดโค้ด (pseudo code) หรืออีกลักษณะหนึ่งคือเขียนในรูปของผังงาน (Flowchart) ซึ่งความแตกต่างอยู่ที่ ซูโดโค้ดเขียนคำอธิบายการทำงานของโปรแกรมเป็นแบบย่อ ไม่มีรูปแบบเฉพาะตัว แต่ละส่วนจะเป็นแนวทางในการเขียนโปรแกรม ซึ่งนำไปใช้กับทุก ๆ โปรแกรมได้ง่ายขึ้น ส่วนผังงานเป็นสัญลักษณ์แทนการทำงานและทิศทางของโปรแกรม

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

     3. เขียนโปรแกรม (programming) เป็นขั้นตอนการเปลี่ยนคำอธิบายโปรแกรม หรือผังงานให้อยู่ในรูปของรหัสภาษาคอมพิวเตอร์ ซึ่งผู้เขียนโปรแกรมต้องทำความเข้าใจกับไวยากรณ์ของแต่ละภาษา และความถนัดของผู้เขียนโปรแกรมด้วย

     4. ทดสอบและแก้ไขโปรแกรม (program testing and debugging) เพื่อให้การนำโปรแกรมไปใช้มีความถูกต้อง แก้ปัญหาได้ตรงจุด ผู้เขียนโปรแกรมจึงต้องทดสอบความถูกต้องของโปรแกรมที่เขียนขึ้น เพื่อหาจุดผิดพลาด อาจจะให้บุคคลอื่นลองใช้โปรแกรมด้วย และแก้ไข ทดสอบจนไม่พบจุดผิดพลาดอีก จุดผิดพลาดของโปรแกรมเรียกว่า Bug และการแก้ไขโปรแกรมเรียกว่า Debug ซึ่งข้อผิดพลาดของโปรแกรมมี 2 ประเภท ดังนี้

     4.1) การเขียนคำสั่งไม่ถูกต้องตามหลักการเขียนโปรแกรมภาษาที่เลือก ซึ่งเรียกว่า Syntax Error หรือ Coding error ข้อผิดพลาดแบบนี้มักพบตอนแปลภาษาโปรแกรม เป็นรหัสภาษาเครื่อง

     4.2) ข้อผิดพลาดทางตรรกะ หรือ Logic error เป็นข้อผิดพลาดที่โปรแกรมทำงานได้ แต่ผลลัพธ์ออกมาไม่ถูกต้อง ซึ่งอาจเกิดขึ้นจากขั้นตอนการแก้ปัญหา หรือหาคำตอบที่ออกแบบขึ้น เช่น ต้องการผลลัพธ์อย่างหนึ่ง แต่สิ่งที่คำนวณหรือประมวลผลได้เป็นอีกแบบหนึ่ง

     5. ทำเอกสารและบำรุงรักษา (program documentation and maintenance) เป็นการให้ผู้ใช้งานโปรแกรมใช้งานได้อย่างมีประสิทธิภาพ และสะดวกในการตรวจสอบข้อผิดพลาดโดยเขียนเป็นเอกสารประกอบโปรแกรมขึ้นมา แบ่งออกเป็น 2 ประเภท คือ

       5.1) คู่มือการใช้ (User Document) หรือ user guide ซึ่งจะอธิบายการใช้โปรแกรม

       5.2) คู่มือโปรแกรมเมอร์ หรือ Program document หรือ Technical reference ซึงจะอำนวยความสะดวกในการแก้ไขโปรแกรมและพัฒนาโปรแกรมในอนาคต โดยมีรายละเอียดต่าง ๆ เกี่ยวกับโปรแกรม เช่น ชื่อโปรแกรม การรับข้อมูล การพิมพ์ผลลัพธ์ ขั้นตอนต่าง ๆในโปรแกรม เป็นต้น

     ส่วนการบำรุงรักษาโปรแกรม (Maintenance) เป็นการที่ผู้เขียนโปรแกรมจะต้องคอยตรวจสอบการใช้โปรแกรมจริง เพื่อแก้ไขข้อผิดพลาด ซึ่งอาจเกิดขึ้นภายหลัง รวมทั้งการพัฒนาโปรแกรมให้ทันสมัยอยู่เสมอเมื่อเวลาผ่านไป