วันพฤหัสบดีที่ 8 กรกฎาคม พ.ศ. 2553

การพัฒนาโปรเเกรม

วงจรการพัฒนาโปรแกรม

posted on 20 Mar 2009 15:36 by itm0069 คอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์อย่างหนึ่ง ซึ่งสามารถทำงานได้ด้วยตัวเอง แต่สามารถทำงาน ได้ตามชุดคำสั่ง ในโปรแกรมที่ป้อนเข้าสู่เครื่อง ซึ่งจะทำงานตามคำสั่งที่ละคำสั่ง โดยคำสั่งที่ เครื่องคอมพิวเตอร์สามารถเข้าใจได้ จะต้องอยู่ในรูปแบบของภาษาเครื่อง ถ้าเขียนโปรแกรมด้วยภาษาอื่น ที่ไม่ใช่ภาษาเครื่องก็ต้องมีตัวแปลมาช่วยแปลคำสั่งเหล่านั้นให้เป็นภาษาเครื่อง ซึ่งตัวที่มาช่วยแปลนี้เรียกว่า ตัวแปลภาษา เช่น Compiler หรือ Interpreter

ในการเขียนโปรแกรมหรือพัฒนาโปรแกรมนั้น โปรแกรมเมอร์ หรือ ผู้เขียนโปรแกรม ต้องมี การเตรียมงาน เกี่ยวกับ การเขียนโปรแกรมอย่างเป็นขั้นตอน เรียกขั้นตอนเหล่านี้ว่า วงจรการพัฒนาโปรแกรม (Program Devenlopment Life Cycle:PDLC) ประกอบด้วย 6 ขั้นตอนตามลำดับดังนี้

ขั้นวิเคราะห์ความต้องการ (Requirement Analysis and Feasibility Study)
ขั้นวางแผนแก้ไขปัญหา (Algorythm Design)
ขั้นดำเนินการเขียนโปรแกรม (Program Coding)
ขั้นทดสอบและแก้ไขโปรแกรม (Program Testing and Debugging)
ขั้นการเขียนเอกสารประกอบ (Documentation)
ขั้นบำรุงรักษาโปรแกรม (Program maintenance)


ภาพที่ 2.1 วงจรการพัฒนาโปรแกรม (Program Devenlopment Life Cycle:PDLC)

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

การวิเคราะห์และกำหนดรายละเอียดของปัญหา

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

ตัวอย่าง ปัญหาการคำนวณจำนวนช่องจอดรถในลานจอดรถ
ซูเปอร์มาร์เกตแห่งหนึ่ง จัดพื้นที่ด้านหน้าสำหรับจอดรถให้กับลูกค้าที่มาใช้บริการ กว้าง 25 เมตร ยาว 35 เมตร สมมติ โดยเฉลี่ย ช่องจอดรถ 1 ช่อง มีความกว้าง 2 เมตร ความยาว 3.5 เมตร และพื้นที่ 1 ใน 10 ของพื้นที่ลานจอดรถทั้งหมดคิดเป็นพื้นที่ถนนให้รถวิ่ง อยากทราบว่าซูเปอร์มาร์เกตแห่งนี้จะสามารถจัดช่องจอดรถให้กับลูกค้าได้ทั้งหมดจำนวนกี่ช่อง

จากปัญหานี้ เราต้องการคำนวณหาจำนวนช่องจอดรถในลานจอดรถ โดยพื้นที่ที่จะนำมาคำนวณจะต้องหักพื้นที่ส่วนที่เป็นถนนออกจากพื้นที่ของลานจอดรถทั้งหมดก่อน จึงนะนำมาคำนวณหาจำนวนช่องจอดรถที่ต้องการได้ โดยอาศัยข้อมูลขนาดชองช่องจอดรถ 1 คัน ตามที่กำหนดให้ในปัญหา ดังนั้นรายละเอียดของข้อมูลออกจึงกำหนดไว้เป็น

ข้อมูลเข้า : ความกว้าง ความยาวของพื้นที่ลานจอดรถทั้งหมด

และความกว้าง ความยาวของพื้นที่ช่องจอดรถ 1 คัน

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

lโครงสร้างแบบตามลำดับ (sequential structure) ขั้นตอนการทำงานเป็นไปตามลำดับก่อนหลัง และแต่ละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเท่านั้น

lโครงสร้างแบบมีทางเลือก (selection structure) ขั้นตอนการทำงานบางขั้นตอนจะได้รับหรือไม่ได้รับการประมวลผล ขึ้นอยู่กับเงื่อนไขบางประการ

lโครงสร้างแบบทำซ้ำ (repetition structure) ขั้นตอนการทำงานบางขั้นตอนจะถูกประมวลผลซ้ำมากกว่า 1 ครั้ง ขึ้นอยู่กับเงื่อนไขบางประการ

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

หลักเกณฑ์ทั่วไปของการเขียนรหัสลำลอง

1. สัญลักษณ์ที่ใช้ในการดำเนินการทางคณิตศาสตร์ต่าง ๆ จะถูกใช้งานตามปกติ คือ + สำหรับการบวก – สำหรับการลบ * สำหรับการคูณ และ/ สำหรับการหาร

2. ชื่อข้อมูลใช้แทนจำนวนที่จะถูกดำเนินการตามขั้นตอนวิธี

3. การใช้คำอธิบายกำกับขั้นตอนวิธี อาจทำโดยใช้สัญลักษณ์ * หรือ ** กำกับหัวท้ายข้อความคำอธิบาย เพื่อแยกออกมาจากขั้นตอนการทำงาน

4. คำสงวนบางคำที่ใช้ในภาษาระดับสูงทั่วไปอาจนำมาใช้ เช่น Read หรือ Enter สำหรับการรับข้อมูลเข้า และWrite หรือ Print สำหรับการแสดงข้อมูลออก

5. การเพิ่มหรือลดระยะเยื้องอย่างเหมาะสม เพื่อแสดงระดับของขั้นตอนการทำงานในโครงสร้างควบคุมการทำงานในกลุ่มเดียวกัน

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

ตารางแสดงความหมายของสัญลักษณ์ของผังงาน (Flowchart)

ตัวอย่าง ปัญหาการคำนวณจำนวนช่องจอดรถในลานจอดรถ

เรากำหนดตัวแปรที่ใช้สำหรับจัดเก็บข้อมูล ดังนี้
ParkW เป็นตัวแปรสำหรับเก็บค่าความกว้างของพื้นที่ลานจอดรถทั้งหมด

ParkL เป็นตัวแปรสำหรับเก็บค่าความยาวของพื้นที่ลานจอดรถทั้งหมด

CarW เป็นตัวแปรสำหรับเก็บค่าความกว้างของพื้นที่ช่องจอดรถ 1 คัน

CarL เป็นตัวแปรสำหรับเก็บค่าความยาวของพื้นที่ช่องจอดรถ 1 คัน

TotalParkAเป็นตัวแปรสำหรับเก็บค่าพื้นที่ลานจอดรถทั้งหมด

ParkA เป็นตัวแปรสำหรับเก็บค่าพื้นที่ที่จะใช้จอดรถได้โดยหักพื้นที่ถนนแล้ว

CarA เป็นตัวแปรสำหรับเก็บค่าพื้นที่ช่องจอดรถ 1 คัน

NumPark เป็นตัวแปรสำหรับเก็บค่าจำนวนช่องจอดรถในลานจอดรถ

กำหนดขั้นตอนวิธีที่ใช้แก้ปัญหา ดังนี้

1. เริ่มต้นการทำงาน

2. รับค่าข้อมูลความกว้าง ความยาวของพื้นที่ลานจอดรถทั้งหมด และข้อมูลความกว้าง ความยาวของพื้นที่ช่องจอดรถ 1 คัน มาเก็บไว้ในตัวแปร ParkW ParkL CarW และ CarL ตามลำดับ

3. คำนวณพื้นที่ลานจอดรถทั้งหทดเก็บไว้ในตัวแปร TotalParkA โดยใช้สูตร TotalParkA = ParkW*ParkL

4. คำนวณพื้นที่ที่เหลือสำหรับใช้เป็นช่องจอดรถเก็บไว้ในตัวแปร ParkA โดยใช้สูตร ParkA = TotalParkA – (TotalParkA / 10)

5. คำนวณพื้นที่ช่องจอดรถ 1 คันเก็บไว้ในตัวแปร CarA โดยใช้สูตร CarA = CarW*CarL

6. คำนวณจำนวนช่องจอดรถในลานจอดรถเก็บไว้ในตัวแปร NumPark โดยใช้

สูตร (MOD คือ การคำนวณโดยไม่คิดเศษ)

NumPark = (Park / CarA)-(ParkA MOD CarA)

7. แสดงค่าของตัวแปร NumPark

8. จบการทำงาน

ขั้นตอนวิธีข้างต้นสามารถนำมาเขียนให้อยู่ในรูปของรหัสลำลองและผังงานได้ ดังนี้



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

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

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

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


ประวัติผู้จัดทำ
ชื่อ นางเนาวรัตน์ ใจการุณ
ชื่อเล่น รัตน์
เกิดเมื่อ 28 ตุลาคม 2514
ที่อยู่ 56/2 หมู่ 6 ต.บ้านทราย อ.บ้านหมี่ จ.ลพบุรี
ที่ทำงาน โรงเรียนปิยะบุตร์ อำเภอบ้านหมี่ จังหวัดลพบุรี
สำนักงานเขตพื้นที่การศึกษาลพบุรี เขต 1
การศึกษา ปริญญาตรี ค.บ. วิชาเอก คอมพิวเตอร์ศึกษา
ปริญญาโท กศ.ม. วิชาเอก การวัดผลการศึกษา
วิชาที่สอน คอมพิวเตอร์ ระดับชั้น ม.3
คอมพิวเตอร์ ระดับชั้น ม.6




จัดทำโดย ครูเนาวรัตน์ ใจการุณ
โีรงเรียนปิยะบุตร์ อำเภอบ้านหมี่ จังหวัดลพบุรี
สำนักงานเขตพื้นที่การศึกษาลพบุรี เขต 1
copyright(c) 2007 Ms.Naowarat Jaikaroon All rights reserved



จำนวนผู้เข้าใช้งาน
ตั้งแต่วันที่ 3 มิถุนายน พ.ศ. 2550


แหล่งที่มา:www.google.com