หน่วยการเรียนรู้ที่ 2
การพัฒนาโปรแกรมเพื่อการแก้ปัญหา
การพัฒนาโปรแกรมเพื่อการแก้ปัญหา
การพัฒนาโปรแกรมเพื่อการแก้ปัญหาด้วยการเขียนโปรแกรมนั้น เป็นศาสตร์วิชาแขนงหนึ่งที่ว่าด้วยหลักการเขียนโปรแกรมขึ้นมา ซึ่งหลักการดังกล่าว ทำให้ผู้เริ่มต้นศึกษาได้เข้าใจว่า กว่าจะได้โปรแกรมขึ้นมาสักโปรแกรมหนึ่ง จะต้องผ่านขั้นตอนอะไรมาก่อน เพื่อนำไปสู่โปรแกรมที่ได้รับการพัฒนาขึ้น สามารถแก้ไขปัญหาได้ตรงวัตถุประสงค์ และบรรลุผลได้จริง ดังนั้น เมื่อต้องการฝึกฝนการเขียนโปรแกรมที่ถูกต้อง มีระบบระเบียบ จึงควรฝึกปฏิบัติตามขั้นตอนด้วย "วงจรการพัฒนาโปรแกรม"
ที่มาภาพ https://www.rw.ac.th/jetavat/?web=les01.3
1. ขั้นระบุปัญหาหรือวิเคราะห์ความต้องการ (Requirement Analysis) เป็นขั้นตอนแรกของวงจรการพัฒนาโปรแกรม ซึ่งเป็นการศึกษาถึงปัญหาที่เกิดขึ้นและค้นหาสิ่งที่ต้องการ เพื่อพิจารณาสิ่งต่อไปนี้
ข้อมูลที่จะนำเข้าสู่คอมพิวเตอร์มีอะไรบ้าง
วิธีการประมวลผลข้อมูลที่นำเข้าและผลลัพธ์ที่ต้องการ
การแสดงผลที่ได้ ต้องการแสดงผลลัพธ์อะไรและมีหน้าตาเป็นอย่างไร
2. การออกแบบ (Algorithm Design) เป็นขั้นตอนที่ต้องใช้เครื่องมือช่วยในการออกแบบ เช่น ผังงาน (Flowchart) รหัสลำลอง (Pseudo code) เป็นต้น ซึ่งจะช่วยให้เข้าใจขั้นตอนการทำงานของโปรแกรมได้ดียิ่งขึ้น
ตัวอย่างผังงาน (Flowchart) ตัวอย่างการเขียนรหัสลำลอง (Pseudo code)
3. การเขียนโปรแกรม (Program Coding) เป็นขั้นตอนหลังจากที่ได้มีการออกแบบโปรแกรมไว้แล้ว ขั้นตอนนี้เป็นการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ เช่น ภาษา C , ภาษา Pascal , ภาษา Python ฯลฯ เพื่อกำหนดการทำงานในการแก้ปัญหา ทั้งนี้แต่ละภาษาจะมีความเหมาะสมในการใช้งานแตกต่างกันไป
4. การทดสอบโปรแกรม (Program Testing) เป็นการนำโปรแกรมที่ลงรหัสแล้วเข้าคอมพิวเตอร์ เพื่อตรวจสอบรูปแบบกฎเกณฑ์ของภาษา และผลการทำงานของโปรแกรมนั้น ถ้าพบข้อผิดพลาด ก็ต้องแก้ไขโปรแกรมให้ถูกต้องก่อน ซึ่งข้อผิดพลาดของโปรแกรมมักจะมีสาเหตุมาจาก
Syntax Error คือ ข้อผิดพลาดที่เกิดจากการเขียนโค้ดคำสั่ง (Source Code) ที่ไม่ตรงกับไวยากรณ์ (Syntax) ของภาษา โปรแกรมนั้นๆ ข้อผิดพลาดนี้เป็นข้อผิดพลาดที่ง่ายที่สุดต่อการตรวจสอบและแก้ไข เนื่องจากจะพบในระหว่างที่มีการแปลภาษาโปรแกรม ถ้ามีข้อผิดพลาดประเภทนี้อยู่ ตัวแปลภาษาคอมพิวเตอร์จะแจ้งให้ทราบทันที
Runtime Error คือ ข้อผิดพลาดที่เกิดขึ้นขณะโปรแกรมกำลังทำงาน (Execution) มักเกิดจากความรู้เท่าไม่ถึงการณ์ เช่น ตัวหารเป็นศูนย์ ซึ่งจะพบข้อผิดพลาดได้เมื่ออยู่ในเหตุการณ์นั้นๆ
Logic Error คือ ข้อผิดพลาดที่เกิดจากการออกแบบอัลกอริทึมให้ทำงานผิดวัตถุประสงค์หรือความต้องการ วิธีแก้ไขข้อผิดพลาดประเภทนี้จะต้องทำโดยการตรวจไล่โปรแกรมทีละคำสั่ง เพื่อหาข้อผิดพลาดนั้นให้พบ เช่น ผู้เขียนโปรแกรมต้องการนำค่า A ไปบวกกับค่า B แต่เขียนเครื่องหมายเป็นลบ ก็จะทำให้ค่าที่คำนวณได้ไม่ถูกต้อง ซึ่งสามารถตรวจสอบข้อผิดพลาดนี้โดยใช้ ข้อมูลทดสอบ (Test data) หรือข้อมูลที่ทราบคำตอบในขั้นปฏิบัติ ถ้าโปรแกรมถูกต้อง ผลลัพธ์ที่ได้จะต้องตรงกับคำตอบที่เราทราบอยู่ก่อนแล้ว
* ข้อผิดพลาดของโปรแกรม เรียกว่า “Bug”
* ส่วนการแก้ไขข้อผิดพลาด เรียกว่า “Degug”
* โปรแกรมที่ทำงานไม่ได้ตามวัตถุประสงค์ เรียกว่ามี “Error”
5. การเขียนเอกสารประกอบ (Documentation) เป็นการทำเอกสารประกอบโปรแกรม คือการอธิบายรายละเอียดของโปรแกรมว่า จุดประสงค์ของโปรแกรมคืออะไรสามารถทำงานอะไรได้บ้าง และมีขั้นตอนการทำงานของโปรแกรมเป็นอย่างไร เครื่องมือที่ช่วยในการออกแบบโปรแกรม เช่น ผังงาน หรือรหัสจำลอง ก็สามารถนำมาประกอบกันเป็นเอกสารประกอบโปรแกรมได้ โปรแกรมเมอร์ที่ดีควรมีการทำเอกสารประกอบโปรแกรม ทุกขั้นตอนของการพัฒนาโปรแกรมไม่ว่าจะเป็นขั้นตอนการออกแบบ การเขียนโปรแกรม หรือขั้นตอนการทดสอบโปรแกรมซึ่งการทำเอกสารนี้จะมีประโยชน์อย่างมากต่อหน่วยงานเนื่องจากบางครั้งอาจต้องการเปลี่ยนแปลงแก้ไขโปรแกรมที่ได้มีการทำเสร็จไปนานแล้วเพื่อให้ตรงกับความต้องการที่เปลี่ยนไปจะทำให้เข้าใจโปรแกรมได้ง่ายขึ้นและจะเป็นการสะดวกต่อผู้ที่ต้องเข้ามารับช่วงงานต่อทีหลังเอกสารประกอบโปรแกรมโดยทั่วไปจะมีอยู่ด้วยกัน 2 แบบคือ
เอกสารประกอบโปรแกรมสำหรับผู้ใช้ (User Documentation) จะเหมาะสำหรับผู้ใช้ที่ไม่ต้องเกี่ยวข้องกับการพัฒนาโปรแกรมแต่เป็นผู้ที่ใช้งานโปรแกรมอย่างเดียวจะเน้นการอธิบายเกี่ยวกับการใช้งานโปรแกรมเป็นหลัก ตัวอย่างเช่น
· โปรแกรมนี้ทำอะไร ใช้งานในด้านไหน
· ข้อมูลเข้า มีลักษณะอย่างไร
· ข้อมูลออกหรือผลลัพธ์มีลักษณะอย่างไร
· การเรียกใช้โปรแกรม ทำอย่างไร
· คำสั่งหรือข้อมูลที่จำเป็นให้โปรแกรมเริ่มทำงาน มีอะไรบ้าง
· อธิบายเกี่ยวกับประสิทธิภาพ และความสามารถของโปรแกรม
เอกสารประกอบโปรแกรมสำหรับผู้เขียนโปรแกรม (Technical Documentation) แบ่งออกได้เป็น 2 ส่วน ได้แก่
· ส่วนที่เป็นคำอธิบายหรือหมายเหตุในโปรแกรมหรือเรียกอีกอย่างหนึ่งว่า คอมเมนท์ (Comment) ซึ่งส่วนใหญ่มักจะเขียนแทรกอยู่ในโปรแกรม อธิบายการทำงานของโปรแกรมเป็นส่วนๆ
· ส่วนอธิบายด้านเทคนิค ซึ่งส่วนนี้มักจะทำเป็นเอกสารแยกต่างหากจากโปรแกรมจะอธิบายในรายละเอียดที่มากขึ้น เช่น ชื่อโปรแกรมย่อยต่างๆ มีอะไรบ้างแต่ละโปรแกรมย่อยทำหน้าที่อะไร และคำอธิบายย่อๆ เกี่ยวกับวัตถุประสงค์ของโปรแกรม
6. การบำรุงรักษาโปรแกรม (Program Maintenance) เมื่อโปรแกรมผ่านการตรวจสอบตามขั้นตอนเรียบร้อยแล้ว และถูกนำมาให้ผู้ใช้ได้ใช้งาน ในช่วงแรกผู้ใช้อาจจะยังไม่คุ้นเคยก็อาจทำให้เกิดปัญหาขึ้นมาบ้าง ดังนั้นจึงต้องมีผู้คอยควบคุมดูแลและคอยตรวจสอบการทำงาน การบำรุงรักษาโปรแกรมจึงเป็นขั้นตอนที่ผู้เขียนโปรแกรมต้องคอยเฝ้าดูและหาข้อผิดพลาดของโปรแกรมในระหว่างที่ผู้ใช้ใช้งานโปรแกรม และปรับปรุงโปรแกรมเมื่อเกิดข้อผิดพลาดขึ้น หรือในการใช้งานโปรแกรมไปนานๆ ผู้ใช้อาจต้องการเปลี่ยนแปลงการทำงานของระบบงานเดิมเพื่อให้เหมาะกับเหตุการณ์ นักเขียนโปรแกรมก็จะต้องคอยปรับปรุงแก้ไขโปรแกรมตามความต้องการของผู้ใช้ที่เปลี่ยนแปลงไปนั่นเอง