หลักการออกแบบและพัฒนาโปรแกรม
การออกแบบโปรแกรมนั้นมีหลายวิธี เช่น การสังเคราะห์ การวิเคราะห์ และการลองผิดลองถูกเป็นต้น
1.การออกแบบโปรแกรม โดยวิธีการสังเคราะห์ จะเป็นวิธีการที่ตรงไปตรงมาโดยการสังเคราะห์โปรแกรมออกมาตามข้อกำหนดหัวข้อที่ต้องการถ้าหากมีการทำงานที่ผิดพลาดจะต้องพิจารณาปัญหาที่เกิดขึ้นและทำการสังเคราะห์โปรแกรมใหม่
2. การออกแบบโปรแกรมโดยใช้วิธีการวิเคราะห์ ซึ่งจะทำควบคู่ไปกับการลองผิดลองถูกโดยจะเริ่มจากการพัฒนาข้อกำหนดที่ต้องการก่อนจากนั้นทำการออกแบบในขั้นต้นที่คิดว่าจะสามารถแก้ปัญหานั้นได้แล้วทำการทดสอบว่าสามารถแก้ปัญหาได้หรือไม่ถ้าสามารถแก้ปัญหาได้ตรงกับข้อที่กำหนดก็สามาทรถใช้งานได้แต่ภ้าไม่ตรงกับข้อกำหนดก็ทำการวิเคราะห์ว่าเกิดข้อผิดพลาดที่ขั้นตอนใดที่ทำให้ไม่ตรงกับข้อกำหนดจากนั้นทำการแก้ไขในขั้นตอนนั้น
3. การออกแบบโปรแกรมที่ใช้วิธีการลองผิดลองถูกโดยจะทำควบคู่กับวิธีที่ 2 เมื่อออกแบบขั้นต้นแล้วทำการทดสอบและวิเคราะห์อย่างนี้ไปเรื่อยๆจนกว่าจะเกิดความถูกต้องและตรงตามข้อกำหนดจนครบถ้วน
ขั้นตอนการพัฒนาโปรแกรม
ขั้นตอนการพัฒนาโปรแกรมประกอบด้วย
1. การวิเคราะห์ปัญหา (Program Analysis)
2. การออกแบบโปรแกรม (Program Design)
3. การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ (Program Coding)
4. การทดสอบและแก้ไขโปรแกรม (Program Testing)
5. การทำเอกสารประกอบโปรแกรม (Program Document)
6. การบำรุงรักษาโปรแกรม (Program Maintenance)
1. การวิเคราะห์ปัญหา (Program Analysis)
- กำหนดวัตถุประสงค์ของงาน เพื่อพิจารณาว่าโปรแกรมต้องการผลลัพธ์อย่างไรบ้าง
- พิจารณาข้อมูลนำเข้า เพื่อให้ทราบว่าจะต้องนำข้อมูลอะไรเข้าคอมพิวเตอร์ ข้อมูลมีคุณสมบัติเป็นอย่างไรตลอดจนถึงลักษณะรูปแบบที่นำเข้า
- พิจารณาการประมวลผล เพื่อให้ทราบว่าโปรแกรมมีขั้นตอนการประมวลผลอย่างไรและมีเงื่อนไขอะไรบ้างพิจารณาสารสนเทศเพื่อให้ทราบว่ามีข้อสนเทศอะไรที่จะแสดงตลอดจนรูปแบบและสื่อที่จะใช้ในการแสดงผล
2. การออกแบบโปรแกรม (Program Design)
การออกแบบขั้นตอนการทำงานของโปรแกรมเป็นขั้นที่ใช้เป็นแนวทางในการลงรหัสโปรแกรมผู้ออกแบบขั้นตอนการทำงานของโปรแกรมอาจใช้เครื่องมือต่างๆช่วยในการออกแบบเช่น อัลกอริทึม รหัสจำลอง ผังงานละแผนภูมิโครงสร้าง เป็นต้น การออกแบบโปรแกรมนั้นไม่ต้องกังวลกับรูปแบบคำสั่งภาษาคอมพิวเตอร์แต่ให้มุ่งความสนใจไปที่ลำดับขั้นตอนในการประมวลผลของโปรแกรมเท่านั้น
3. การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ (Program Coding)
การเขียนโปรแกรมเป็นการนำเอาผลลัพธ์ของการออกปบบโปรแกรมมาเปลี่ยนเป็นภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่งผู้เขียนโปรแกรมจะต้องให้ความสนใจต่อรูปแบบคำสั่งและกฎเกณฑ์ของภาษาที่ใช้เพื่อให้การประมวลผลเป็นไปตามผลลัพธ์ที่ได้ออกแบบไว้นอกจากนั้นผู้เขียนโปรแกรมควรแทรกคำอธิบายการทำงานต่างๆลงในโปรแกรมและโปรแกรมนี้ยังเป็นส่วนหนึ่งของเอกสารประกอบ
4. การทดสอบและแก้ไขโปรแกรม (Program Testing)
การทดสอบโปรแกรมเป็นการนำโปรแกรมที่ลงรหัสแล้วเข้าคอมพิวเตอร์เพื่อตรวจสอบรูปแบบกฎเกณฑ์ของภาษาและผลการทำงานของโปรแกรมนั้นถ้าพบว่ายังไม่ถูกต้องก็แก้ไขให้ถูกต้องต่อไปขั้นตอนการทดสอบโปรแกรมอาจจะแบ่งได้ดังนี้
- สร้างแฟ้มเก็บโปรแกรม
- ตรวจสอบความถูกต้องของการประมวลผลโปรแกรม
- ตรวจสอบการทำงานของโปรแกรม
หลักในการตรจสอบโปรแกรมที่ดีมีดังนี้
1. การที่โปรแกรมผ่านการตรวจสอบไม่ได้หมายว่าว่าฏปรแกรมมีข้อผิดพลาดแต่เป็นการสร้างความมั่นใจในระดับหนึ่ง
2. ควรมีการกำหนดกรณีของการตรวจสอบโปรแกรมไม่ควรใช้การตรวขสอบแบบสุ่ม
การแบ่งประเภทความผิดพลาดของโปรแกรมที่อาจตรวจพบ สามารถแบ่งได้ดังนี้
1. ความผิดพลาดในการเรียบเรียง (compilation errors)
2. ความผิดพลาดทางด้านรูปแบบ (Type errors)
3. ความผิดพลาดที่เกิดขึ้นขณะทำงาน (run-time-errors)
การแก้ไข compilation errors
Compiler จะรายงานตำแหน่งที่พบความผิดพลาดพร้อมทั้งมีคำอธิบายคร่าวๆซึ่งวสามารถศึกษาความผิดพลาดที่เกิดขึ้นรวมถึงศึกษาบรรทัดที่อยู่ก่อนหน้าบรรทัดที่เป้นปัญหาด้วยทำการตรวจสอบการเรียกใช้งาน procedure ในบรรทัดที่เกิดปัญหาให้ถูกต้องทั้งในส่วนตัวเลข (number),ลำดับ (order) และรูปแบบ (type) ของ argument
การแก้ไข run-time-errors
1. พยายามหลีกเลี่ยงการเกิด run-time-errors โดยการใช้เวลาในการเขียนโปรแกรมให้เพียงพอเพื่อให้ได้โปรแกรมที่ถูกต้องจะเป็นการหาข้อผิดพลาดของโปรแกรมซึ่งใช้เวลามากกว่าและอาจทำให้เสียสุขภาพอีกด้วย
2. ทำการแก้ไข (debug) ในระดับเล็กๆโดยตรวจสอบโปรแกรมทีละส่วนและแก้ไขข้อผิดพลาดที่พบไปตามลำดับเพราะจะทำได้ง่ายกว่าการหาข้อผิดพลาดในโปรแกรมทั้งหมด
3. ทำความเข้าใจอาการของข้อผิดพลาดให้ละเอียดก่อนที่จะทำการแก้ไขโปรแกรมโดยดูข้อผิดพลาดว่าเกิดขึ้นจุดใดของโปรแกรม
4. หาสาเหตุของความผิดพลาดว่าสาเหตุมาจากอะไรโดยการตั้งสมมติฐานหลายๆแบบและทดสอบสมมติฐานเหล่านั้น
5. หาสาเหตุของปัญหาเพื่อไม่ให้เสียเวลาในการสุ่มแก้ไขโปรแกรม
6. แก้ไขข้อผิดพลาดที่เกิดขึ้นและทำการทดสอบซ้ำอย่างละเอียด
5. การทำเอกสารประกอบโปรแกรม (Program Document)
การจัดทำเอกสารต่างๆที่ใช้สำหรับอธิบายโปรแกรมและช่วยให้ผู้ใช้โปรแกรมทำงานได้สะดวกยิ่งขึ้นเช่น คู่มือปฎิบัติงานเครื่อง(Operation Manual) คู่มือผู้ใช้ (User Manual) ปัจจุบันเอกสารประกอบโปรแกรมมีอยู่ในหลายสื่อ เช่น อยู่ในซอฟต์แวร์ ได้แก่ คำอธิบาย(Help Function )โปรแกรมสาธิต (Demo Program) เป็นต้น
การทำเอกสารประกอบโปนแกรมคือ การอธิบายรายละเอียดของโปรแกรมว่า จุดประสงค์ของโปรแกรมคืออะไรโปรแกรมสามารถทำอะไรได้บ้างและมีขั้นตอนในการทำงานของโปรแกรมอย่างไร เครื่องมือที่ช่วยในการออกแบบโปรแกรม เช่น ผังงาน หรือ รหัสจำลอง ก็สามารถนำมาประกอบเป็นเอกสารประกอบโปรแกรมได้
เอกสารประกอบโปรแกรมโดยทั่วไปมี 2 แบบ คือ
1. เอกสารประกอบโปรแกรมสำหรับผู้ใช้งาน (User Documentation) เป็นเอกสารที่เหมาะสำหรับผู้ใช้ที่ไม่ได้เกี่ยวข้องการการพัฒนาโปรแกรมเกีายวข้องกับผู้ที่จะใช้งานโปรแกรมเพียงอย่างเดียวจะเน้นอธิบายเกี่ยวกับการใช้งานโปรแกรมเป็นหลัก
2. เอกสารประกอบโปรแกรมสำหรับผู้เขียนโปรแกรม (Technical Documentation) จะแบ่งได้เป็น 2 ส่วน
- ส่วนที่เป็นคำอธิบายหรือหมายเหตุในโปรแกรม (Comment) ซึ่งมักจะเขียนแทรกอยู่ในโปรแกรมเพื่ออธิบายการทำงานของโปรแกรมเป็นส่วนๆ
- ส่วนอธิบายด้านเทคนิค ซึ่งส่วนนี้จะทำเป็นเอกสารแยกต่างหากจากโปรแกรมจะอธิบายรายละเอียดที่มากขึ้น
6. การบำรุงรักษาโปรแกรม (Program Maintenance)
เมื่อโปรแกรมผ่านการตรวจสอบตามขั้นตอนเรียบร้อยแล้วและถูกนำมาให้ผู้ใช้ได้ใช้งานในช่วงแรกผู้ใช้อาจจะยังไม่คุ้นเคยก็จะทำให้เกิดปัญหาบ้างดังนั้นจึงต้องมีผู้ควบคุมดูแลและตรวจสอบการทำงานการบำรุงรักษาโปรแกรมจึงเป็นขั้นตอนที่ผู้เขียนโปรแกรมต้องติดตามดูและหาข้อผิดพลาดของโปรแกรมในระหว่างที่ผู้ใช้ใช้งานโปรแกรมและปรับปรุงโปรแกรมเมื่อเกิดข้อผืดพลาดขึ้นหรือในการใช้งานโปรแกรมในระยะเวลสที่นานผู้ใช้อาจต้องการเปลี่ยนแปลงการทำงานของระบบงานเดิมเพื่อให้เหมาะกับเหตุการณ์
คุณลักษณะที่ดีของโปรแกรม
โปรแกรมเกิดจากการนำเอาคำสั่ง(Instruction)มาเลียงลำดับ หรือการนำเอาคำสั่งต่างๆมาประกอบกันขึ้นโดยโปรแกรม เพื่อประมวลผลข้อมูลอย่างใดอย่างหนึ่งตามความต้องการของผู้ใช้ การที่จะมีลักษณะของโปรแกรมที่ดีจะต้องมีสมบัติดังต่อไปนี้
1. มีความถูกต้อง (Correctness)
2. มีความแม่นยำและเชื่อถือได้ (Reliability)
3. มีความเข้ากันได้ (Portability)
4. การบำรุงรักษาโปรแกรมทำได้ง่าย (Maintainability)
5. ต้องอ่านได้ง่าย (Readability)
6. มีความเป็นมิตรต่อผู้ใช้งาน (User-friendliness)
7. สามารถนำกลับมาใช้งานใหม่ (Reusability)
8. มีความปลอดภัย (Security)
9. ค่าใช้จ่ายต่ำ (Low Cost)
10. ใช้เวลาในการพัฒนาน้อย
การประยุกต์การเขียนโปรแกรมด้วยภาษาซี
การใช้งานภาษาซีเพื่อพัฒนาโปรแกรมประยุกต์นั้นสามารถทำได้โดยการดำเนินตามขั้นตอนการพัฒนาโปรแกรมแล้วนำมาออกแบบการประมวลผลและลักษณะข้อมูลที่ใช้งานเพื่อใช้ในการเขียนโปรแกรมต่อไป
ลักษณะโปรแกรมภาษาซี ประกอบด้วยส่วนของโปรแกรมที่เป็นคำสั่งในภาษาซีและต้องมีฟังก์ชันอย่างน้อยหนึ่งฟังก์ชันคือฟังก์ชันหลัก (main function) นอกจากการเขียนโปรแกรมเองแล้วยังสามารถเรียกใช้งานส่วนของโปรแกรมที่เขียนไว้แล้วในแฟ้มข้อมูลไลบรารี(Library file) ก็ได้โดยการระบุแฟ้มข้อมูลหัวเรื่อง (header file) ในคำสั่ง #include