บทที่ 10 การออกแบบและพฒันาโปรแกรม

การเขียนโปรแกรม (programming)

การเขียนโปรแกรม (programming) หรือ การเขียนโค้ด (coding) เป็นขั้นตอนการเขียน ทดสอบและดูแลซอร์สโค้ดของโปรแกรมคอมพิวเตอร์ซึ่งซอร์สโค้ดนั้นจะเขียนด้วยภาษาโปรแกรม ขั้นตอนการเขียนโปรแกรมต้องการความรู้ในหลายด้านด้วยกัน เกี่ยวกับโปรแกรมที่ต้องการจะเขียนและอัลกอริทึมที่จะใช้ ซึ่งในวิศวกรรมซอฟต์แวร์นั้น การเขียนโปรแกรมถือเป็นเพียงขั้นหนึ่งในวงจรชีวิตของการพัฒนาซอฟแวร์
การเขียนโปรแกรมจะได้มาซึ่งซอร์สโค้ดของโปรแกรมนั้นๆ โดยปกติแล้วจะอยู่ในรูปแบบของ plaintextซึ่งไม่สามารถนำไปใช้งานได้จะต้องผ่านการคอมไพล์ตัวซอร์สโค้ดนั้นให้เป็นภาษาเครื่อง (Machine Language) เสียก่อนจึงจะได้เป็นโปรแกรมที่พร้อมใช้งาน
การเขียนโปรแกรมถือว่าเป็นการผสมผสานกันระหว่างศาสตร์ของ ศิลปะ วิทยาศาสตร์ คณิตศาสตร์ และ วิศวกรรม เข้าด้วยกัน 
ขั้นตอนการเขียนโปรแกรมหรือพัฒนาโปรแกรม มีขั้นตอนโดยสังเขปดังนี้1.วิเคราะห์ปัญหาและความต้องการ (Problem Analysis and Requirement Analysis)
2.การออกแบบ (Design)
3.การเขียนโปรแกรม(Programming)
4.การทดสอบ (Testing)
5.การจัดทำเอกสาร (Documentation)
6.การบำรุงรักษา (Maintenance)
7.การแก้ปัญหาด้วยคอมพิวเตอร์       
โดยในการแก้ปัญหาโดยอาศัยวิธีการเขียนโปรแกรม ประกอบด้วยขั้นตอนต่าง ๆ ดังนี้
1. การวิเคราะห์และกำหนดรายละเอียดของปัญหา
2. การออกแบบโปรแกรม
3. การเขียนโปรแกรม
4. การตรวจสอบการทำงาน
5. การบำรุงรักษาโปรแกรม
6. การทำเอกสารประกอบโปรแกรม

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

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

ขั้นตอนวิธีที่ดีจะต้องมีระบบระเบียบที่แน่นอนและชัดเจนในการแก้ปัญหา ขั้นตอนวิธีและโปรแกรมที่เราออกแบบจะอาศัยโครงสร้างควบคุมการทำงาน 3 อย่าง คือ • โครงสร้างแบบตามลำดับ (sequential structure) เป็นขั้นตอนการทำงานที่เป็นไปตามลำดับก่อนหลัง และแต่ละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเท่านั้น
• โครงสร้างแบบมีทางเลือก (selection structure) เป็นขั้นตอนการทำงานที่บางขั้นตอนจะได้รับหรือไม่ได้รับการประมวลผล ขึ้นอยู่กับเงื่อนไขบางประการ
• โครงสร้างแบบทำซ้ำ (repetition structure) เป็นขั้นตอนการทำงานที่บางขั้นตอนจะถูกประมวลผลซ้ำมากกว่า 1 ครั้ง ขึ้นอยู่กับเงื่อนไขบางประการ

การเขียนโปรแกรมในกรณีที่ได้วิเคราะห์ปัญหาและกำหนดรายละเอียดของปัญหา ตลอดจนออกแบบโปรแกรมอย่างครบถ้วนสมบูรณ์แล้วจะถึงขั้นตอนการเขียนโปรแกรม ในขั้นตอนนี้ก็สามารถทำให้สัมฤทธิ์ผลได้โดยง่าย ขั้นตอนการเขียนโปรแกรม หมายถึง กระบวนการใช้ภาษาคอมพิวเตอร์เพื่อกำหนดโครงสร้างของข้อมูล และกำหนดขั้นตอนวิธีเพื่อใช้แก้ปัญหาตามที่ได้ออกแบบไว้ โดยอาศัยหลักเกณฑ์การเขียนโปรแกรมภาษาคอมพิวเตอร์แต่ละภาษา หลังจากที่ผู้พัฒนาเขียนโปรแกรมภาษาเสร็จแล้วจะต้องมีการตรวจสอบโปรแกรมที่เขียนว่าคำสั่ง
ถูกต้องตามไวยกรณ์หรือกฎเกณฑ์ ของภาษานั้นหรือไม่ และแปลภาษาโปรแกรมให้เป็นรหัสที่เครื่องคอมพิวเตอร์สามารถเข้าใจ ซึ่งเราเรียกว่าการแปล (Compile) ซึ่งจะมีการสอบความถูกต้องของโปรแกรมตามกฎเกณฑ์การใช้ภาษาที่กำหนดขึ้น โดยตัวแปลภาษาหนึ่งๆ และแจ้งให้ผู้ใช้ทราบในกรณีที่ปรากฏข้อผิดพลาดขึ้น ข้อผิดพลาดที่ตรวจพบในขั้นตอนนี้ เรียกว่า ข้อผิดพลาดทางไวยากรณ์ (Syntax Error) เมื่อผู้ใช้แก้ไขข้อผิดพลาดเรียบร้อยแล้ว จะต้องทำขั้นตอนการแปลใหม่อีกครั้ง และทำเช่นนี้จนกว่าจะไม่พบข้อผิดพลาดทางไวยากรณ์ใดเลย จึงจะถือว่าโปรแกรมถูกต้อง และสมารถรันโปรแกรมเพื่อแก้โจทย์ปัญหาได้

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

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

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

เอกสารที่จัดทำขึ้นควรประกอบด้วย 
1. วัตถุประสงค์
2. ประเภทและชนิดคอมพิวเตอร์และอุปกรณ์ที่ใช้ในโปรแกรม
3. วิธีการใช้โปรแกรม
4. แนวคิดเกี่ยวกับการออกแบบโปรแกรม
5. รายละเอียดโปรแกรม
6. ข้อมูลตัวแทนที่ใช้ทดสอบ
7. ผลลัพธ์ของการทดสอบ

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

ภาษาคอมพิวเตอร์สามารถแบ่งออกได้เป็น 5 ยุคคือ

1. ภาษาเครื่อง (Machine language)
เป็นภาษาพื้นฐานที่คอมพิวเตอร์สามารถเข้าใจได้ แต่ละคำสั่งประกอบขึ้นจากกลุ่มตัวเลขและ 1 ซึ่งเป็นเลขฐานสอง 
2. ภาษาแอสเซมบลี (Assembly language)
เป็นภาษาที่ใช้สัญลักษณ์ข้อความ แทนกลุ่มของตัวเลขฐานสอง เพื่อให้ง่ายต่อการเขียนและการจดจำมากขึ้น การทำงานของโปรแกรมจะต้องทำการแปลภาษาแอสเซมบลีให้เป็นภาษาเครื่อง โดยใช้ตัวแปลที่เรียกว่า แอสเซมเบลอร์ (Assembler)

3. ภาษาชั้นสูง (High-level language)หรือ ภาษารุ่นที่3 (3GL:Third Generation Language)
ถูกสร้างขึ้นมาเพื่อให้เขียนโปรแกรมได้ง่ายขึ้น โดยมีลักษณะเหมือนกับภาษาอังกฤษทั่วไป ผู้เขียนไม่จำเป็นต้องมีความรู้เกี่ยวกับฮาร์แวร์แต่อย่างใด ภาษานี้จำเป็นต้องมีตัวแปลภาษาเครื่องเช่นกัน เรียกตัวแปลนี้ว่า คอมไพเลอร์ (compiler)หรือ อินเตอร์พรีเตอร์ (Interpreter) อย่างใดอย่างหนึ่งตัวอย่างของภาษาชั้นสูง เช่น ภาษาปาสคาล ภาษาซี ภาษโคบอล ภาษเบสิก ภาษาฟอร์แทรน

4. ภาษาชั้นสูงมาก (Very high-level language) หรือภาษารุ่นที่ 4 (4GL)
เป็นภาษาที่มีลักษณะคล้ายภาษาพูดตามปกติของมนุษย์ ภาษานี้จะช่วยให้การเขียนโปรแกรมเร็วมากขึ้นกว่าภาษาในรุ่นที่ 3 เนื่องจากมีเครื่องมือที่ช่วยในการสร้างแบบฟอร์มหน้าจอ เพื่อจัดการกับข้อมูลรวมไปถึงการออกรายงาน เมนูต่าง ๆ
ตัวอย่างของภาษาชั้นสูงมากได้แก่ informix-4GL, MAGIC , Delphi , Power Builder ฯลฯ

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



ไม่มีความคิดเห็น: