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

ภาษาคอมพิวเตอร์ ขั้นตอนการทำงาน Algorithm

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

1. กำหนดและวิเคราะห์ปัญหา (Problem Definition and Problem Analysis)

2. เขียนผังงานและซูโดโค้ด (Pseudocoding)

3. เขียนโปรแกรม (Programming)

4. ทดสอบและแก้ไขโปรแกรม (Program Testing and Debugging)

5. ทำเอกสารและบำรุงรักษาโปรแกรม (Program Documentation and Maintenance)

1. กำหนดและวิเคราะห์ปัญหา

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

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

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

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

2. เขียนผังงานและซูโดโค้ด

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

1. ซูโดโค้ด (Pseudocode)

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

รูปแบบ

Algorithm <ชื่อของอัลกอริทึม>

1……………………………….

2……………………………….

…………………………………

END

ตัวอย่างที่ 1 การเขียนซูโดโค้ด สำหรับให้คอมพิวเตอร์หาค่าเฉลี่ยจากข้อมูลที่รับเข้าทางแป้นพิมพ์ ถ้าใส่ค่าศูนย์แสดงว่าหยุดป้อนข้อมูล เขียนได้ดังนี้

Algorithm การหาค่าเฉลี่ย

1. เริ่มต้น

2. ตัวนับ = 0

3. ผลรวม = 0

4. รับค่าทางแป้นพิมพ์เก็บไว้ในตัวแปร (ข้อมูล)

5. ถ้า ข้อมูล มากกว่า 0

เพิ่มค่าตัวนับขึ้นหนึ่งค่า

ผลรวม = ผลรวม + ค่าข้อมูล

ย้อนกลับไปทำขั้นตอนที่ 3

ถ้าไม่มากกว่าไปทำขั้นตอนที่ 5

6. ค่าเฉลี่ย = ผลรวมหารด้วยตัวนับ

7. แสดงค่าเฉลี่ยทางจอภาพ (ทศนิยมสองตำแหน่ง)

จบ

Algorithm Average_Sum

1. START

2. count =0

3. sum = 0

4. INPUT (value)

5. IF value > 0 THEN

count = count +1

sum = sum + value

GOTO 3

ELSE GOTO 5

6. average = sum / count

7. OUTPUT (average)

END

ตัวอย่างที่ 2 การเขียนซูโดโค้ด คำนวณหาพื้นที่สามเหลี่ยม หรือเขียนเป็นภาษาอังกฤษได้ดังนี้

Algorithm การหาพื้นที่สามเหลี่ยม

1. เริ่มต้น

2. รับค่าความยาวของฐานมาเก็บในตัวแปร X

3. รับค่าความยาวของสูงมาเก็บในตัวแปร Y

4. คำนวณหาพื้นที่ ARRAY = ( X*Y ) / 2

5. แสดงผลพื้นที่

จบ

Algorithm Average_Sum

1. START

2. READ X

3. READ Y

4. Compute ARRAY = ( X*Y ) / 2

5. Print ARRAY

END

2. การเขียนผังงาน (Flowchart)

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

ประโยชน์ของผังงาน

  1. ช่วยอธิบายลำดับขั้นตอนการทำงานของโปรแกรม
  2. ทำให้ตรวจสอบข้อผิดพลาดของโปรแกรมได้ง่าย
  3. ทำให้ผู้อื่นสามารถศึกษาการทำงานของโปรแกรมและแก้ไขโปรแกรมได้ง่าย

การเขียนผังงานที่ดี

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

การเขียนผังงาน สามารถแบ่งออกเป็น 2 ประเภท คือ

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

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

3. เขียนโปรแกรม

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

4. ทดสอบและแก้ไขโปรแกรม

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

1. การเขียนคำสั่งไม่ถูกต้องตามหลักการเขียนโปรแกรมภาษานั้น ๆ ซึ่งเรียกว่า Syntax Error หรือ

Coding Error ข้อผิดพลาดประเภทนี้เรามักพบตอนแปลภาษาโปรแกรมเป็นรหัสภาษาเครื่อง

2. ข้อผิดพลาดทางตรรกะ หรือ Logic Error เป็นข้อผิดพลาดที่โปรแกรมทำงานได้ แต่ผลลัพธ์ออกมาไม่

ถูกต้อง

5. ทำเอกสารและบำรุงรักษาโปรแกรม

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

1. คู่มือการใช้ หรือ User Document หรือ User Guide ซึ่งจะอธิบายการใช้โปรแกรม

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

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

System Development life Cycle : SDLC

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

แบบฝึกหัด

1. จงเขียนผังงาน โปรแกรมคอมพิวเตอร์หาค่าเฉลี่ยจากข้อมูลที่รับเข้าทางแป้นพิมพ์ ถ้าใส่ค่าศูนย์แสดงว่าหยุดป้อนข้อมูล

2. จากตัวอย่างในหนังสือแบบเรียน หน้า 218 ให้นักเรียนเขียนผังงานโปรแกรมที่ถูกต้อง ไม่มี Error และทดสอบผังงานนั้นให้ถูกต้อง

**********************************

ที่มา - http://thecprogrammingproject.weebly.com/3595364136503604365035883658360436493621363235853634361936483586363736183609361236333591359136343609.html

- http://thecprogrammingproject.weebly.com/3586363336573609360536293609358536343619361436333602360936343650361136193649358536193617.html)

- https://pepsirukfanta1991.wordpress.com/%E0%B8%82%E0%B8%B1%E0%B9%89%E0%B8%99%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1-2/

- https://anttawiporn.wordpress.com/category/%E0%B8%9A%E0%B8%97%E0%B8%97%E0%B8%B5%E0%B9%887-%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1/