บทที่ 1 ขั้นตอนและการวางแผนพัฒนาโปรแกรม
สาระการเรียนรู้
1.
ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม
2.
หลักการเขียนโปรแกรม
3.
วงจรการพัฒนาโปรแกรม
4.
คุณลักษณะของโปรแกรมที่ดี
5.
เครื่องมือมือในการออกแบบโปรแกรม
จุดประสงค์การเรียนรู้
1.
บอกขั้นตอนการวางแผนและพัฒนาโปรแกรมได้
2.
บอกคุณลักษณะของโปรแกรมที่ดีได้
3.
อธิบายเครื่องมือต่างๆ
ในการออกแบบโปรแกรมได้
4.
บอกวิธีการลงรหัสของโปรแกรมได้
5.
อธิบายการทดสอบและแก้ไขโปรแกรมได้
6.
วิเคราะห์ขั้นตอนเพื่อแก้ไขปัญหาของคอมพิวเตอร์ได้
7.
พัฒนาลำดับขั้นตอนวิธีการทำงานได้
8.
เขียนขั้นตอนการหาแนวทางการแก้ไขปัญหาด้วยคอมพิวเตอร์ได้
9.
เลือกเครื่องมือในการออกแบบโปรแกรมให้ที่เหมาะสม
10. มีความสุขใจใฝ่เรียนรู้ ตั้งใจเรียน
11. มีวินัย เข้าเรียนทันเวลาปฏิบัติตามกฎระเบียบของวิทยาลัยฯ
12. มีความรับผิดชอบต่องานที่ได้รับมอบหมาย
13. มีความคิดริเริ่มสร้างสรรค์ มีความเชื่อมั่นกล้าลองผิดลองถูก
14. มีความซื่อสัตย์ต่อตนเองและผู้อื่น
โปรแกรมคอมพิวเตอร์ หมายถึง
ชุดกลุ่มคำสั่งงานที่จัดทำขึ้น
เพื่อให้สามารถใช้ในระบบการทำงานในลักษณะประยุกต์ใช้ประโยชน์จากคอมพิวเตอร์ มีจุดประสงค์เพื่อแบ่งเบาภาระงานของมนุษย์ ทำให้ระบบงานมีความสะดวกรวดเร็วในการทำงาน
โดยมีการใช้งานคำสั่งต้องใช้ตามกฎเกณฑ์การใช้งานของแต่ละภาษาคอมพิวเตอร์ที่เลือกใช้
การเขียนโปรแกรมคอมพิวเตอร์โดยใช้ภาษาระดับสูง เช่น
ภาษาปาสคาล หรือภาษาซี บ่อยครั้งที่ผู้ที่ทำการเขียนโปรแกรมสำหรับแก้ไขปัญหานั้นทันที
ไม่ได้มีการออกแบบและวางแผนขั้นตอนการเขียนโปรแกรม โดยหวังว่าเมื่อทำการเขียนโปรแกรมเสร็จแล้ว
โปรแกรมที่เขียนขึ้นมานั้นจะสามารถทำงานได้อย่างถูกต้อง
วิธีการดังกล่าวเป็นวิธีการเขียนโปรแกรมที่ไม่ถูกต้อง ถ้าต้องการทำการแก้ไขหรือพัฒนาการทำงานเพิ่มเติมการทำงานเข้าไปในภายหลังจะทำได้ยากและไม่สะดวก
ดังนั้น ก่อนการลงมือทำการเขียนโปรแกรม
จึงต้องมีวิธีการวางแผนและศึกษาความเป็นไปได้ของการโปรแกรมมาใช้งาน
รวมถึงขั้นตอนและวิธีการทำงานของวิธีการแก้ไขปัญหาที่ต้องการแก้ไขก่อนที่จะทำการเขียนโปรแกรม เหมือนกับการก่อสร้างบ้านจะมีการเขียนแบบก่อนทำการสร้างจริงก่อน คำนึงถึงสิ่งต่างๆ ที่จะนำมาใช้
ขนาดของเสาที่จะใช้สามารถรองรับน้ำหนักได้หรือไม่
ถ้าไม่คำนึงถึงจุดนี้
หลังจากที่สร้างเสร็จแล้วอาจไม่ปลอดภัยแก่ผู้ที่มาพักอาศัย
การเขียนโปรแกรมคอมพิวเตอร์ก็เช่นกันจะมีการออกแบบ เขียนโครงร่างเกี่ยวกับการทำงานของโปรแกรมก่อนลงมือเขียนจริง
ถ้าไม่ทำเช่นนี้โปรแกรมที่ทำการเขียนขึ้นมาอาจใช้งานไม่ได้จริง
ทำให้เสียเวลาในการเขียนโปรแกรมเสียทั้งค่าแรงงานที่ต้องจ้างนักเขียนโปรแกรมมาทำการเขียนโปรแกรม
เวลาและจำนวนของนักเขียนโปรแกรมที่ใช้สำหรับทำการเขียนโปรแกรมคอมพิวเตอร์ขึ้นอยู่กับขนาดของโปรแกรม
สมารถแบ่งขนาดโปรแกรมคอมพิวเตอร์ได้ดังนี้
ขนาดของโปรแกรม
|
จำนวนของนักเขียนโปรแกรม
|
เวลาที่ใช้สำหรับการเขียนโปรแกรม
|
จำนวนบรรทัดของโปรแกรม
|
เล็กมาก
|
1คน
|
1-4
สัปดาห์
|
500
|
เล็ก
|
1
คน
|
1-6
เดือน
|
1,000
– 5,000
|
ปานกลาง
|
2-5
คน
|
1-2
ปี
|
5,000
-50,000
|
ใหญ่
|
5-20
คน
|
2-3
ปี
|
50,000
-100,000
|
ใหญ่มาก
|
100-1,000
คน
|
4-5
ปี
|
1,000,000
|
![]() |
การออกแบบโปรแกรมนั้นมีด้วยกันหลายวิธีเช่น
การสังเคราะห์,การวิเคราะห์,การลองผิดลองถูก เป็นต้น การอกแบบโปรแกรมโดยวิธีการสังเคราะห์นั้น จะเป็นวิธีที่ตรงไปตรงมาโดยการสังเคราะห์โปรแกรมออกมาตามข้อกำหนดที่ต้องการ ถ้าหากมีการทำงานที่ผิดพลาด จะต้องทำการพิจารณาปัญหาที่เกิดขึ้น
แล้วจะสังเคราะห์โปรแกรมใหม่
การออกแบบอีกวิธีหนึ่งที่นิยม คือ
การวิเคราะห์
โดยทำควบคู่ไปกับการลองผิดลองถูกโดยจะเริ่มจากการพิจารณาข้อกำหนดที่ต้องการอ่าน จากนั้นทำการออกแบบในขั้นต้น ที่คิดว่าจะทำการแก้ปัญหานั้นได้ แล้วทำการทดสอบสมารถแก้ไขปัญหาได้หรือไม่
ถ้าสามารถแก้ไขปัญหาได้ตรงกับข้อกำหนดก็ใช้ได้ ถ้าไม่ตรงข้อกำหนดที่ทำการวิเคราะห์ว่าผิดพลาดที่ขั้นตอนใดที่ทำให้ไม่ตรงกับข้อกำหนดจากนั้นก็ทำการแก้ไขในขั้นตอนนั้น
แล้วทำการทดสอบและวิเคราะห์ เช่นนี้ไปเรื่อย ๆ
จนกว่าจะถูกตามข้อกำหนดอย่างครบถ้วน
วิธีการจะนำเครื่องคอมพิวเตอร์ในการแก้ไขปัญหาต่าง ๆ
จะต้องทราบถึงวิธีการในการแก้ไขปัญหานั้นเสียก่อนว่ามีวิธีการในการแก้ไขปัญหานั้นอย่างไร
จากนั้นเรียบเรียงขั้นตอนการทำงานเพื่อใช้ในการส่งงานให้เครื่องคอมพิวเตอร์ทำงานตามลำดับขั้นตอนการทำงาน
ในการวางแผนเพื่อเขียนโปรแกรมนั้นสิ่งที่สำคัญก็คือการทำให้เครื่องคอมพิวเตอร์ทำงานได้ถูกต้อง ตรงความต้องการของผู้ใช้มากที่สุด ไม่ซับซ้อนมากนักใช้งานง่าย หากเป็นโปแกรมที่ใหญ่
มีการทำงานที่ซับซ้อนมากก็อาจเกิดปัญหาหรือข้อผิดพลาดได้ง่าย ดังนั้นเวลาเขียนโปแกรมจะต้องมีการเตรียมงานที่ดี
เพื่อไม่ให้เกิดปัญหาในการเขียนโปรแกรมทั้งมีการเตรียมงานที่ดี
บ่อยครั้งการนำคอมพิวเตอร์มาใช้ในการแก้ไขปัญหา นำมาใช้ไม่เหมาะสมกับงานที่ต้องการใช้คอมพิวเตอร์ช่วย
ไม่ว่าจะเป็นระดับความสามารถของเครื่องคอมพิวเตอร์ ราคาของโปรแกรมที่ใช้ในการแก้ไขปัญหา
การบำรุงรักษาเครื่อง รวมถึงค่าใช้จ่ายในการจ้างวิเคราะห์ระบบและการเขียนโปรแกรม
ลำดับแรกสำหรับการนำโปแกรมคอมพิวเตอร์
เพื่อนำมาใช้สำหรับการแก้ไขปัญหา
คือ ต้องตั้งคำถามกับตัวเองถึงความคุ้มค่าสำหรับการซ้ำเครื่องคอมพิวเตอร์ ซื้อหรือจ้างจัดทำคอมพิวเตอร์มาใช้สำหรับการแก้ไขปัญหา
ว่าคุ้มค่ากับการนำเครื่องคอมพิวเตอร์มาใช้สำหรับแก้ไขปัญหาหรืองานง่าย
ๆ
บางงานก็ไม่จำเป็นต้องใช้เครื่องคอมพิวเตอร์สำหรับการแก้ไขปัญหา
เพราะจะเป็นการไม่คุ้มค่ากับการนำคอมพิวเตอร์มาใช้งาน
![]() |
ในการเขียนโปรแกรมหรือพัฒนาโปรแกรม
ผู้เขียนโปรแกรมต้องเตรียมงานเกี่ยวกับการเขียนโปรแกรมอย่างเป็นขั้นตอน
อาจแบ่งขั้นตอนสำหรับการออกแบบและการพัฒนาการเขียนโปรแกรมด้วยคอมพิวเตอร์ออกเป็น 6
ขั้นตอนดังนี้
1.
การวิเคราะห์ความต้องการ (Requirement
Analysis & Feasibility Study)
เป็นขั้นตอนการวิเคราะห์ปัญหาจากระบบงาน สำหรับการวิเคราะห์ความต้องการ
การทำความเข้าใจกับปัญหาและค้นหาสิ่งที่ต้องการนิยมใช้วิธีวิเคราะห์ จากผลลัทธ์หรือลักษณะรูปแบบรายงานของระบบงานนั้น
ๆ เพื่อย้อนกลับไปถึงที่มาของข้อมูล
สมการคำนวณจนถึงการป้อนข้อมูลที่มีความเกี่ยวข้องในการดำเนินการประมวลผล
เพื่อให้ผลลัทธ์เข้าระบบการกำหนดลักษณะของการทำงานของโปรแกรม ระหว่างผู้ที่ทำการออกแบบโปรแกรมต้องเก็บความต้องการทั้งหมดของผู้ใช้ ที่ต้องการได้รับจากโปรแกรมคอมพิวเตอร์ ยิ่งเก็บรายละเอียดความต้องการของผู้ใช้งานได้มากเท่าใด
โปรแกรมคอมพิวเตอร์ที่ได้รับการออกแบบจะสามารถแก้ปัญหานั้นได้ดียิ่งขึ้น
การเก็บรายละเอียดของความต้องการได้ไม่ครบถ้วนจะทำให้เสียเวลาในการออกแบบโปรแกรม
เพราะต้องทำการแก้ไขโปรแกรมหลังจากที่ทำการออกแบบไปแล้ว รวมไปถึงอาจต้องทำการเขียนโปรแกรมเพิ่มขึ้นในส่วนที่ต้องการให้โปรแกรมทำงานเพิ่มเติม
ขั้นตอนการวิเคราะห์ความต้องการ เป็นการศึกษาวิเคราะห์โดยละเอียดว่าต้องการผลลัพธ์อะไร
ต้องการใช้ข้อมูลอะไรเพื่อให้ได้ผลลัพธ์ตามต้องการและมีขั้นตอนการประมวลผลอย่างไรบ้าง เรียกขั้นตอนนี้ว่า การวิเคราะห์ปัญหาหรือการวิเคราะห์งาน
การวิเคราะห์ความต้องการเป็นขั้นตอนซึ่งถือเป็นขั้นตอนที่สำคัญก่อนถึงขั้นว่างแผนแก้ไขปัญหาและดำเนินการเขียนโปรแกรม วิธีการวิเคราะห์งานแบ่งเป็น 5 หัวข้อ
ได้แก่
1.
สิ่งที่ต้องการ บอกให้ทราบว่างานที่ต้องการให้ทำมีอะไรบ้าง
2.
รูปแบบผลลัทธ์ การศึกษาแบบหรือลักษณะการแสดงข้อมูล
3.
ข้อมูลนำเข้า ข้อมูลที่ใช้ในการประมวลผลมีอะไรบ้าง
4.
ตัวแปรที่ใช้ ตัวแปรอะไรแทนข้อมูลเข้า หรือแทนค่าที่อยู่ระหว่างประมวลและตัวแปรที่ใช้
แสดงผลลัพธ์
5.
วิธีการประมวล ขั้นตอนของคำสั่งหรือวิธีการที่ใช้ในโปรแกรม ซึ่งขั้นตอนต่าง ๆ
จะต้องเรียงลำดับก่อนหลัง
สลับลำดับไม่ได้
เพราะจะทำให้ไม่สามารถประมวลผลหรือทำให้ผลลัพธ์ไม่ตรงตามที่ต้องการ
ตัวอย่างการวิเคราะห์ความต้องการ
ตัวอย่างที่ 1
จงคำนวณค่าลงทะเบียนของนักศึกษาระดับ ปวช.
คิดค่าลงทะเบียนหน่วยกิตละ 80 บาท
1.
สิ่งที่ต้องการ :
ค่าลงทะเบียน
2.
รูปแบบผลลัพธ์ : ชื่อนักศึกษา,จำนวนหน่วยกิต,ค่าลงทะเบียน
3.
ข้อมูลนำเข้า
:
ชื่อนักศึกษา
จำนวนหน่วยกิต
4.
ตัวแปรที่ใช้ :NAME =ชื่อนักศึกษา
:
CRE = จำนวนหน่วยกิต
: MONEY
=คะแนนคณิตศาสตร์
: ENG =ค่าหน่วยกิต
5.
วิธีการประมวลผล : 1. เริ่มต้น
2.รับค่า NAME, CRE
3.คำนวณค่าลงทะเบียน MONEY =
CRE * 80
4.คำนวณคะแนนเฉลี่ย AVER = SUM / 3
5.พิมพ์ NAME,CRE,MONEY
6.จบการทำงาน
ตัวอย่างที่ 2
จงคำนวณคะแนนเฉลี่ยจากการสอบ 3
วิชา ของนกศึกษา
ประกอบด้วยวิชาภาษาไทยชื่อนักศึกษาคณิตศาสตร์และภาษาอังกฤษ
1.
สิ่งที่ต้องการ :
คะแนนเฉลี่ย 3 วิชา
2.
รูปแบบผลลัพธ์ :ชื่อนักศึกษา ,คะแนนรวม ,คะแนนเฉลี่ย
3.
ข้อมูลนำเข้า : ชื่อนักศึกษา
คะแนนภาษาไทย
คณิตศาสตร์
ภาษาอังกฤษ
4. ตัวแปรที่ใช้ :NAME
= ชื่อนักศึกษา
THAI = คะแนนภาษาไทย
MATH =คะแนนคณิตศาสตร์
ENG =คะแนนภาษาอังกฤษ
SUM =คะแนนรวม
AVER =คะแนนเฉลี่ย
5.วิธีการประมวลผล :
1.
เริ่มต้น
2. รับค่า NAME , THAI , MATH ,ENG
3.คำนวณคะแนนรวม SUM = THAI + MATH
+ ENG
4. คำนวรคะแนนเฉลี่ย AVER = SUM /3
5. พิมพ์ NAME , SUM ,AVER
6. จบการทำงาน
ตัวอย่างที่ 3
จงคำนวณรายได้สุทธิของพนักงาน
หาได้จากเงินเดือนและเงินล่วงหน้าจากอัตราปกติชั่วโมงล่ะ 80 บาท
ถ้าทำล่วงเวลาเกน 30 ชั่วโมง ๆ ละ 100 บาท
1.
สิ่งที่ต้องการ : เงินล่วงเวลา , รายได้สุทธิ
2.
รูปแบบผลลัทธ์ :
ชื่อพนักงาน,เงินเดือน,เงินล่วงเวลา,รายได้สุทธิ
3.
ข้อมูลนำเข้า : ชื่อพนักงาน
เงินเดือน
ชั่วโมงทำงานล่วงเวลา
4.
ตัวแปรที่ใช้ : NAME = ชื่อพนักงา
SAL = เงินเดือน
HOUR = ชั่วโมงทำงานล่วงเวลา
OT = เงินเดือน
NET = รายได้สุทธิ
5.
วิธีการประมวลผล :
1. เริ่มต้น
2. รับค่า NAME ,SAL,HOUR
3.ตรวจสอบชั่วโมงทำงานล่วงเวลา
เพื่อคำนวณเงินล่วงเวลา
ถ้า HOUR <= 30 ให้ OT
=HOUR * 80 แล้วไปทำข้อ 4.
ถ้า HOUR > 30 ให้ OT = HOUR * 100 แล้วไปทำข้อ 4.
4. คำนวณรายได้สุทธิ NET = SAL + OT
5.พิมพ์ NAME
, SAL, OT,NET
6. จบการทำงาน
2. ขั้นวางแผนแก้ไขปัญหา (Algorithm Design)
การทำงานแผนแก้ไข้ปัญหาเป็นการจัดลำดับการทำงานของโปแกรมตามขั้นตอนการประมวลผล
และสอดคล้องกับวิธีการทำงานของคอมพิวเตอร์ขั้นตอนนี้มักเรียกว่า การออกอัลกอริทึม
ซึ่งเป็นแนวทางที่ช่วยให้โปรแกรมเมอร์เขียนโปรแกรมได้ง่ายขั้น
ขั้นตอนการงวางแผนแก้ไขปัญหาทางคอมพิวเตอร์มีหลายวิธี เช่น
ใช้วิธีการแก้ไขอัลกอริทึม ( Algorithm ) การเขียนคำสั่งเทียม ( Pseudo
Code )การเขียนผังงาน ( Flowchart ) เป็นต้น ทั้งนี้แต่ละวิธีมีจุดประสงค์เพื่อแสดงลำดับขั้นตอนกระบวนการแก้ไขปัญหางาน
เพื่อให้ได้ผลลัพธ์ตามต้องการ
ก่อนไปสู้ขั้นตอนการเขียนคำสั่งงาน
1. การเขียนอัลกอริทึม
เป็นการนำเอาลำดับขั้นตอนการทำงานที่ออกแบบไว้ มาเขียนอยู่ในรูปภาษาเขียน หรืออาจเขียนอยู่ในรูปภาษาอังกฤษที่จัดเป็นโครงการไว้
เช่นเดียวกับการเขียนคำสั่งเทียมแต่ต่างกันที่การเขียนอัลกอริทึมจะเน้นลำดับขั้นตอนการทำงานเป็นหลักจึงมีการตัดทอนรายละเอียดปลีกย่อยออก
2.
การเขียนผังงาน
เป็นการนำเอาขั้นตอนการทำงานมาเขียนเป็นแผนภาพหรือสัญลักษณ์ โดยเปลี่ยนจากคำพูดหรือข้อความในการวิเคราะห์
มาเป็นรูปภาพก่อนแล้วใช้คำอธิบายข้อความนั้น ๆ
เขียนเพิ่มเติมในรูปสัญลักษณ์ที่เป็นมาตรฐานสากล
โดยสัญลักษณ์แต่ล่ะรูปจะสื่อความหมายแทนการกระทำแต่ละอย่าง
ที่จะต้องศึกษาทำความเข้าใจ
3. การเขียนคำสั่งเทียม
เป็นเครื่องมือที่ใช้กันมากในการออกแบบโปรแกรมช่วยให้โปรแกรมเมอร์สามารถเขียนโปรแกรมได้ง่ายขึ้น
ภาษาหรือคำที่ใช้เขียนคำสั่งเทียม
เป็นการผสมผสานระหว่างคำในภาษาอังกฤษทั่วไปกับภาษาคอมพิวเตอร์
โครงสร้างของคำสั่งเทียมจึงมีส่วนที่คล้ายกับการเขียนโปรแกรมมาก
3. ขั้นดำเนินการเขียนโปรแกรม (Program Coding)
การเขียนโปรแกรมทางคอมพิวเตอร์
ต้องใช้คำสั่งของภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่งโดยเลือกใช้ภาษาที่เหมาะสมกับลักษณะและประเภทของงาน โดยใช้หลักพิจารณาถึงความรู้ความสามารถและความถนัดของผู้เขียนโปรแกรมว่า สามารถใช้โปรแกรมใดได้บ้าง จากนั้นจึงพิจารณาประสิทธิภาพการทำงานของคำสั่งในภาษาเป็นลำดับถัดมาแล้วจึงนำมาเป็นชุดคำสั่งตามลำดับขั้นที่ได้วางแผนแก้ปัญหาไว้ การเขียนโปรแกรมภาษาคอมพิวเตอร์ต้องการเขียนให้ถูกต้องตามหลักไวยากรณ์ของภาษาที่เลือก
ตัวอย่างของโปรแกรมภาษาคอมพิวเตอร์
เช่น ภาษาปาสคาล , ภาษาซีหรือภาษาเบสิกเป็นต้น
ตัวอย่างของโปรแกรมภาษาสำหรับส่วนของการคำนวณหาคะแนนเฉลี่ยและการแสดงผล
ภาษาคอมพิวเตอร์
|
คำสั่งคำนวณ
|
คำสั่งเหตุผล
|
ภาษาปาสคาล
|
Average := Sum / Number;
|
Write (Average);
|
ภาษาซี
|
Average = Sum / Number;
|
print (“%f” , Average);
|
ภาษาเบสิก
|
Let A = S / N
|
Print A
|
จากตัวอย่างโปรแกรมภาษาคอมพิวเตอร์สำหรับการทำงานต่าง
ๆ
โดยเขียนในลักษณะของโปรแกรมภาษาคอมพิวเตอร์ที่แตกต่างกันออกไปแต่ลักษณะการทำงานของแต่ละโปรแกรมภาษาคอมพิวเตอร์จะมีการทำงานที่เหมือนกัน
4. ขั้นทดสอบและแก้ไขโปรแกรม(Program
Testing & Debugging)
การทดสอบการทำงานของโปรแกรม
นิยมดำเนินการใน 2 ช่วง คือ “ ช่วงแรกทดสอบโดยผู้พัฒนาระบบงานเอง ” ก่อนนำไปใช้งานจริง
โดยใช้ข้อมูลสมมติบันทึกเข้าระบบ
ประมวลผลเพื่อพิจารณาผลลัพธ์ว่าเป็นไปตามที่ได้วิเคราะห์หรือไม่
หากยังมีข้อผิดพลาด ต้องดำเนินการแก้ไขปรับปรุงโปรแกรมให้ถูกต้อง
จากนั้นเมื่อทดสอบการทำงานจนได้ผลถูกต้องแล้ว จึงนำไปทดสอบในอีกช่วง คือ “ ทดสอบโดยผู้ใช้ระบบจริง ” หากยังมีข้อแก้ไขปรับปรุงอีก
ผู้พัฒนาระบบงานต้องดำเนินการให้แล้วเสร็จ
ให้เป็นไปตามวัตถุประสงค์ของระบบงานและผู้ใช้ระบบ
การทดสอบการทำงานของโปรแกรมด้วยชุดข้อมูลจริง 1, 10 หรือ 100 ชุดข้อมูล
แล้วโปรแกรมคอมพิวเตอร์สามารถทำงานได้อย่างถูกต้อง
จะแน่ใจได้อย่างไรว่าโปรแกรมคอมพิวเตอร์ที่ทำการเขียนขึ้นมานั้น
สามารถทำงานได้ถูกต้องกับทุกข้อมูลจริงที่ใช้งาน
วิธีการพื้นฐานที่ใช้สำหรับทดสอบการทำงานของโปรแกรมคอมพิวเตอร์ที่ทำการเขียนขึ้นมา
มีด้วยกัน 2 วิธีคือ ทดสอบด้วยข้อมูลจำนวนมาก (Empirical
testing) และการทดสอบอย่างมีแบบแผน (Formal Verification)
1.
การทดสอบด้วยข้อมูลจำนวนมาก
เป็นการทดสอบโดยทดลองป้อนชุดข้อมูลที่เหมือนกับข้อมูลที่ใช้งานจริง
จำนวนมากเข้าไปในโปรแกรมแล้วทดลองให้โปรแกรมทำงาน จากนั้นสังเกตผลลัพธ์ที่ได้จากการทำงานของโปรแกรม
ว่าสามารถทำงานได้อย่างถูกต้องหรือไม่ กับทุกชุดข้อมูลจริงที่ทำการป้อนเข้าไป
โปรแกรมคอมพิวเตอร์ต้องทำงานได้อย่างถูกต้องกับชุดข้อมูลที่ทำการป้อนเข้าไป
จำนวนของชุดข้อมูลที่ใช้ในการทดสอบขึ้นอยู่กับจำนวนข้อมูลจริงที่ใช้งาน
2. การทดสอบอย่างมีแบบแผน
เป็นการทดสอบโดยใช้หลักเกณฑ์ทางคณิตศาสตร์หรืทางตรรกศาสตร์มาสนับสนุนความ ถูกต้องของการทำงานของโปรแกรม โดยใช้ชุดข้อมูลที่มีความซับซ้อน
มาทำการทดสอบการทำงานของโปรแกรม
หรือทาการทดสอบการทางานของโปรแกรมทุกกรณีที่ชุดข้อมูลสามารถเป็นได้ เพื่อสนับสนุนว่าโปรแกรมคอมพิวเตอร์ที่ทำการสร้างขึ้นมานี้สามารถทำงานได้อย่างถูกต้อง
การตรวจสอบจุดผิดพลาดของโปรแกรม (Bugs) ที่เขียนขึ้น และดำเนินการแก้ไขข้อผิดพลาดนั้น เรียกว่าการ Debugs โปรแกรมที่ทำงานไม่ได้ตามวัตถุประสงค์ เรียกว่า โปรแกรมมี Error มักเกิดจาก 2 สาเหตุหลัก คือ
1.ข้อผิดพลาดทางไวยากรณ์ของภาษา (Syntax Error) คือข้อผิดพลาดที่เกิดจากการเขียนโค้ดคำสั่ง
(Source Code) ที่ไม่ตรงกับไวยากรณ์ (Syntax) ของภาษาโปรแกรมนั้น ๆ
ข้อผิดพลาดนี้เป็นข้อผิดพลาดที่ง่ายต่อการตรวจหาและแก้ไข เนื่องจากจะพบในระหว่างที่มีการแปลภาษาโปรแกรม
ถ้ามีข้อผิดพลาดประเภทนี้อยู่ตัวแปลภาคอมพิวเตอร์จะแจ้งให้ทราบทันที
และต้องแก้ไขจนถูกต้องจึงจะทำงานต่อไปได้
2.
ข้อผิดพลาดที่เกิดจากการตีความหมายของปัญหาผิดไป(Logical
Error) เป็นข้อผิดพลาดที่เกิดจากการออกแบบอัลกอริทึมให้ทำงานผิดจากวัตถุประสงค์หรือความต้องการ
การแก้ไขข้อผิดพลาดประเภทนี้จะต้องทำโดยการตรวจไล่โปรแกรมทีละคำสั่ง
เพื่อหาข้อผิดพลาดนั้นให้พบ
การตรวจสอบโปรแกรมเพื่อหาข้อผิดพลาด
อาจจะทำเป็นขั้นตอน ดังนี้
1.
การตรวจสอบก่อนนำโปรแกรมเข้าเครื่องคอมพิวเตอร์ เรียกขั้นตอนนี้ว่า “Desk Checking” วิธีการนี้จะตรวจสอบว่าโปแรกรมสามารถให้ผลลัพธ์ตามต้องหารหรือไม่
เป็นการตรวจสอบข้อผิดพลาดทางตรรกะ โดยกำหนดข้อมูลชุดหนึ่งขึ้นมาแล้วแทนค่าตามขั้นตอนต่าง
ๆ ที่เขียนโปแรกรมไว้ตั้งแต่ต้นจนจบ โดยสมมติว่าเป็นการปฏิบัติงานของเครื่องคอมพิวเตอร์
วิธีการนี้จะช่วยลดข้อผิดพลาดทางตรรกะได้มาก
2. การตรวจสอบโดยเครื่องคอมพิวเตอร์
โดยส่งโปรแกรมเข้าเครื่องพร้อมข้อมูลสมมติที่ทราบคำตอบ ขั้นแรกเครื่องคอมพิวเตอร์จะทำการตรวจ
Syntax Error หรือข้อผิดพลาดทางไวยากรณ์
ถ้าพบจะพิมพ์ข่าวสารข้อผิดพลาดนั้นออกมา ถ้าได้คาตอบตรงตามต้องการ
ก็ค่อนข้างมั่นใจว่าโปรแกรมน่าจะถูกต้อง เมื่อทดสอบโปรแกรมแล้วสามารถนำโปรแกรมพร้อมข้อมูลจริงเข้าเครื่องคอมพิวเตอร์
เพื่อทำการประมวลผลต่อไป
5. การทาเอกสารรายงานประกอบโปรแกรม
(Documentation)
เมื่อทาทุกอย่างเรียบร้อยแล้ว
ถ้าจะให้สมบูรณ์ที่สุด
ผู้เขียนโปรแกรมควรจะทำคู่มือการใช้โปรแกรมหรือทาเอกสารรายงานประกอบการใช้งาน
ซึ่งเป็นขั้นตอนที่นำเอาโปรแกรมและผลลัพธ์ของโปรแกรมที่ได้มาจัดทำเป็นเอกสารรายงานประกอบโปรแกรม
ในคู่มือหรือเอกสารประกอบการใช้งานควรจะบอกวิธีการแก้ปัญหาต่าง ๆ
เบื้องต้นที่อาจเกิดขึ้นระหว่างการใช้งานโปรแกรมนั้น ขั้นตอนการทำงานของโปรแกรม
และแนะนำวิธีการใช้งานที่ถูกต้อง
เอกสารดังกล่าวจะช่วยให้ผู้ใช้โปรแกรมเข้าใจวัตถุประสงค์และสามารถใช้งานได้สะดวกยิ่งขึ้น
ตลอดจนการปรับปรุงเปลี่ยนแปลงแก้ไขโปรแกรมก็สามารถดูได้จากเอกสารรายงานประกอบโปรแกรม
เอกสารรายงานประกอบโปรแกรมควรมีลักษณะดังนี้
1. วัตถุประสงค์
2. คุณสมบัติของเครื่องคอมพิวเตอร์ และอุปกรณ์ที่ใช้ในการเขียนโปรแกรม
3. ภาษาที่ใช้ในการเขียนโปรแกรม
4. ขั้นตอนการใช้โปรแกรม
5. สาระสำคัญเกี่ยวกับการออกแบบโปรแกรม
6. รายละเอียดของโปรแกรม
7. ตัวอย่างข้อมูลที่ใช้ทดสอบโปรแกรม
8. ผลลัพธ์ของการทดสอบโปรแกรม
จากนั้นนาเอาเอกสารทั้งหมดที่ได้มาทำการรวมให้เป็นเอกสารประกอบที่สมบูรณ์
เพื่อให้สะดวกกับการใช้งานและใช้สำหรับผู้ที่ทาการเขียนโปรแกรมคนต่อ ๆ ไป
ที่จะมาศึกษาการทางานของโปรแกรมและพัฒนาการทำงานของโปรแกรมในภายหลัง
เอกสารประกอบการทำงานของโปรแกรม
สามารถแบ่งได้ 2 ประเภท คือ
1. คู่มือระบบ (System
Manual) คือ เอกสารที่เป็นรายละเอียดความต้องการของผู้ใช้งานโปรแกรม
วิธีการออกแบบส่วนของมอดูลต่าง ๆ ที่มีใช้งานในโปรแกรม
ขั้นตอนวิธีที่ใช้สาหรับนำมาเขียนโปรแกรม ลักษณะโครงสร้างข้อมูลที่มีการใช้งาน
หรือใช้เป็นกรณีศึกษาสำหรับพัฒนาโปรแกรมในด้านอื่นต่อไป
จะมีประโยชน์ต่อการปรับปรุงแก้ไขโปรแกรมในอนาคต
2. คู่มือการใช้งาน
(User Manual) คือ
เอกสารที่บอกถึงวิธีการใช้งานโปรแกรมที่ได้ทำการเขียนขึ้น เช่น โปรแกรมนี้ทำอะไร
วิธีเปิดโปรแกรม วิธีการป้อนข้อมูล วิธีการพิมพ์เอกสารออกทางเครื่องพิมพ์
ตัวอย่างข้อมูลที่ใช้งานในโปรแกรมลักษณะของหน้าจอของโปรแกรมที่ใช้สำหรับติดต่อระหว่างโปรแกรมคอมพิวเตอร์กับผู้ใช้งานโปรแกรม
คู่มือการใช้งานโปรแกรมจะมีประโยชน์สาหรับผู้ใช้งานโปรแกรม
ศึกษาเพื่อสามารถนำโปรแกรมที่เขียนขึ้นมาใช้งานได้อย่างถูกต้อง
6. การบำรุงรักษาโปรแกรม (Program Maintenance)
หลังจากที่โปรแกรมที่เขียนขึ้นได้ถูกใช้งานไประยะเวลาหนึ่ง
ผู้ใช้โปรแกรมอาจจะมีวามต้องการเพิ่มเติมจากโปรแกรมเดิมที่เป็นอยู่
ซึ่งจะต้องทำการปรับปรุงให้ตรงกับความต้องการนั้น ๆ การบำรุงรักษาโปรแกรม คือการนำโปรแกรมมาเปลี่ยนแปลงบางส่วนหรือแก้ไขเพียงเล็กน้อย
ทั้งนี้ถ้ามีการเปลี่ยนแปลงทั้งหมดจะทำให้สิ้นเปลืองกาลังคนและค่าใช้จ่าย
โปรแกรมที่ได้รับการบำรุงรักษาแล้ว ควรเป็นโปรแกรมที่อ่านแล้วเข้าใจง่าย
และสามารถแก้ไขได้ง่าย ฉะนั้น เอกสารประกอบระบบต่าง ๆ ที่ทำไว้จึงมีความสำคัญยิ่งในการปรับปรุงแก้ไขโปรแกรม
โดยทั่วไปแล้วการปรับปรุงแก้ไขโปรแกรมสามารถกระทำใน 2 ลักษณะ คือ
1. การบำรุงรักษาระบบ (Maintenance)
2. การเปลี่ยนแปลงระบบทั้งหมด (Redevelopment)
การบำรุงรักษาระบบหรือการเปลี่ยนแปลงแก้ไขเพียงเล็กน้อย
จะไม่กระทบกระเทือนต่อผู้ใช้และไม่ ต้องสิ้นเปลืองกาลังคนและค่าใช้จ่ายมากนัก
ในขณะที่การเปลี่ยนแปลงระบบทั้งหมดจะทำให้สิ้นเปลืองทั้งกาลังคน และค่าใช้จ่ายทำให้เกิดความเสียหายเป็นอย่างมาก
เพราะเท่ากับเป็นการเริ่มต้นใหม่อีกครั้ง บางองค์กรจะให้มีคณะกรรมการปรับปรุงแก้ไข
เพื่อตัดสินใจในกรณีที่จะต้องมีการแก้ไขเล็กน้อย
การตัดสินใจอาจจะพิจารณาแก้ไขในกรณีที่เลวร้ายที่สุดก่อน
หรือบางองค์กรอาจจะพิจารณาที่อัตราผลได้ ผลเสียและค่าใช้จ่ายเป็นหลัก
![]() |
โปรแกรมเกิดจากการนำเอาคาสั่ง (Instruction) มาเรียงลำดับหรือเป็นการนำเอาคาสั่งต่าง
ๆ มาประกอบกันขึ้นเป็นโปรแกรม
เพื่อประมวลผลงานอย่างใดอย่างหนึ่งตามความต้องการของผู้ใช้
การที่จะมีลักษณะของโปรแกรมที่ดีจะต้องมีคุณสมบัติดังต่อไปนี้
1. มีความถูกต้อง (Correctness) โปรแกรมที่ดีจะต้องมีความถูกต้อง
ให้ผลลัพธ์ถูกต้องแม่นยำตรงกับความต้องการของผู้ใช้เป็นสำคัญ
2.
มีความแม่นยำและเชื่อถือได้ (Reliability) การทำงานของโปรแกรมนั้นจะต้องไม่มีข้อผิดพลาดเกิดขึ้นในการทำงานของโปรแกรม
เช่น เมื่อโปรแกรมรันงานเดิมเป็นจำนวน หลาย ๆ ครั้ง จะต้องให้ผลลัพธ์ที่ได้ในลักษณะเดิมทุกครั้ง
โดยไม่มีข้อผิดพลาดใด ๆ เกิดขึ้น เป็นต้น
3. มีความเข้ากันได้ (Portability) จะต้องมีความเข้ากันได้กับ
Hardware ไม่ติดอยู่กับ Hardware ตัวใดตัวหนึ่ง
โดยจะต้องสามารถที่จะนำโปรแกรมไปรันงานที่เครื่องใดๆก็ได้
4. บำรุงรักษาโปรแกรมได้ง่าย (Maintainability) ต้องมีการบำรุงรักษาโปรแกรมได้อย่างสะดวก
นั่นคือ หากมีการปรับปรุงเปลี่ยนแปลงโปรแกรมก็จะต้องสามารถแก้ไขได้ง่าย เป็นต้น
5.
ต้องอ่านง่าย (Readability)
ผู้เขียนโปรแกรมจะต้องเขียนโปรแกรมให้อ่านง่าย เช่นการ Coding
Program จะต้องเป็นระบบระเบียบ มีย่อหน้า เว้นวรรค
มีการหมายเหตุในโปรแกรม กำหนดตัวแปรต่าง ๆ จะต้องสื่อความหมายได้
เพื่อผู้เขียนโปรแกรมคนอื่น ๆ
หรือเจ้าของโปรแกรมเองจะสามารถเข้าไปปรับปรุงแก้ไขได้ด้วยความสะดวก
หากมีการปรับเปลี่ยนเกิดขึ้นในอนาคต
6.
มีความเป็นมิตรต่อผู้ใช้ (User-friendliness)
ปัจจุบันมีผู้ใช้โปรแกรมในการทางานมากขึ้น
มีผู้ใช้ที่เป็นผู้ที่เริ่มต้นและไม่มีพื้นฐานทางด้านคอมพิวเตอร์เลย
และมีแนวโน้มมากขึ้นการสร้างโปรแกรมให้ใช้งานง่าย ใช้เวลาในการเรียนรู้โปรแกรมในระยะเวลาอันสั้น
จึงเป็นสิ่งที่สำคัญ
7. สามารถนำกลับมาใช้ใหม่ (Reusability) โปรแกรมที่มีความสามารถมาก
มักมีโครงสร้างขนาดใหญ่และซับซ้อน จึงควรมีการออกแบบเป็นโมดูลย่อย ๆ
ที่มีอิสระต่อกัน และเรียบง่าย เพื่อให้ผู้พัฒนานำโปรแกรมคนอื่นสามารถเข้าใจและนำไปพัฒนาต่อกับยุคสมัยได้
หรือเพื่อใช้งานร่วมกับสภาวะแวดล้อมใหม่ได้อีก โดยการพัฒนาโปรแกรมด้วยภาษาเชิงวัตถุ
8.
มีความปลอดภัย (Security)
มีความสามารถในการป้องกันการเข้าถึงข้อมูล
หรือแฟ้มข้อมูลเพื่อป้องกันการทำลายข้อมูลจากผู้ที่ไม่มีสิทธิในการใช้งานโปรแกรม
9.
ค่าใช้จ่ายต่ำ ( Low Cost) ก่อนการพัฒนาต้องวางแผนและประเมินค่าใช้จ่าย
เมื่อพัฒนาก็ต้องควบคุมค่าใช้จ่ายให้เป็นตามแผน
ทั้งส่วนของผู้ใช้และผู้พัฒนาโปรแกรม
10. ใช้เวลาในการพัฒนาน้อย
เทคโนโลยีเปลี่ยนแปลงอย่างรวดเร็ว
การพัฒนาโปรแกรมต้องเร็วเพื่อให้ทันส่งมอบงานและการนาไปใช้ของผู้ใช้
เครื่องมือในการออกแบบโปรแกรมจัดว่าเป็น Graphic Model Diagram ที่จะเป็นแผนภาพบอกลาดับและขั้นตอนการทำงานของโปรแกรม
เครื่องมือในการออกแบบโปรแกรมนี้มีอยู่หลายรูปแบบ เช่น
ผังงาน
(Flowchart) จัดว่าเป็นเครื่องมือที่เก่าแก่และเป็นที่รู้จักกันมากที่สุด
นักโปรแกรมส่วนใหญ่จะต้องรู้จักใช้ผังงานในการออกแบบโปรแกรม
หรือใช้ในการเขียนโปรแกรมเป็นอย่างดี โดยเฉพาะในช่วงที่เริ่มฝึกหัดเขียนโปรแกรมใหม่
ๆ แต่พอมีความชำนาญมากขึ้นก็อาจจะเลิกใช้และลงมือเขียนคำสั่งโปรแกรมเลย
แต่อย่างไรก็ตามการศึกษาเครื่องมือชนิดนี้ก็ยังจัดว่ามีความสำคัญเป็นอย่างมาก สำหรับผู้ฝึกหัดเขียนโปรแกรมเริ่มต้นที่จะต้องมีความเข้าใจ
เนื่องจากจะช่วยให้ผู้เขียนโปรแกรมสามารถกำหนดขั้นตอนการทำงานก่อนหลังของโปรแกรมได้ง่าย
หากมีการปรับปรุงโปรแกรมที่จะเกิดขึ้นในอนาคตได้ ในการเขียนผังงานนั้นสามารถจำแนกแบบของผังงานออกเป็น
2 แบบใหญ่ คือ
1. ผังงานระบบ (System Flowchart) ผังงานระบบอาจเรียกอีกอย่างหนึ่งว่า ผังงานในระดับกว้าง
ซึ่งจะเป็นการแสดงขั้นตอนการทำงานของระบบทั้งหมด ผังงานระบบมักจะมีลักษณะย่นย่อ รวบรัด
และแสดงแต่ตัวงานที่จะต้องทำในระบบเท่านั้น ไม่ได้แสดงว่างานนั้นจะทำอย่างไร
ความสำคัญของผังงานระบบอยู่ที่การแสดงความสัมพันธ์ระหว่างงาน หรือขั้นตอนต่าง ๆ
ในระบบว่าเกี่ยวข้องกันอย่างไร
2. ผังงานโปรแกรม (Program Flowchart)
ผังงานโปรแกรมอาจเรียกอีกอย่างหนึ่งว่า ผังงานระดับละเอียด คือ
ในแต่ละขั้นตอนจะแสดงการทำงานในแต่ละคำสั่งโดยละเอียดสำหรับโปรแกรมนั้น ๆ
ที่ผู้เขียนโปรแกรมกำลังทำงานอยู่
ไม่ได้แสดงความสัมพันธ์ระหว่างโปรแกรมนั้นกับโปรแกรมอื่น ๆ
ในความเป็นจริงแล้วการใช้ผังงานในการออกแบบโปรแกรม
โดยเริ่มจากผังงานระบบ (System
Flowchart) ลงมายังผังงานโปรแกรมอย่างคร่าว ๆ
และเป็นผังงานโปรแกรมอย่างละเอียดนั้น เป็นเทคนิคการออกแบบชนิดจากบนลงล่าง (Top-Down-Design)
แต่เหตุผลที่นักโปรแกรมไม่ค่อยจะใช้ผังงานกันมากนัก
เป็นเพราะเวลาเขียนและทดสอบโปรแกรมนั้นจาเป็นจะต้องเขียนและทดสอบโปรแกรมบ่อยครั้ง
และถ้าใช้ผังงานก็จาเป็นจะต้องคอยแก้ไขผังงานให้สอดคล้องกับโปรแกรมอยู่เสมอ
ซึ่งทาให้การแก้ไขโปรแกรมต้องล่าช้าตามไปด้วย
ผังงานแบบแนสซี-ชไนเดอร์แมน หรือเรียกย่อ ๆ ว่าผังงาน N-S Chart ได้ตั้งชื่อขึ้นตามผู้คิด
คือ I.Nassiและ B. Shneidermanซึ่งเป็นผู้เขียนวิธีการนี้
ในบทความเรื่อง Flowchart Techniques for Structured Programming
การเขียนผังงานแบบ N –
S Chart นี้เหมาะกับแนวทางการเขียนโปรแกรมแบบมีโครงสร้างมาก
เนื่องจากไม่มีการใช้ลูกศรสาหรับระบุแนวทางการไหลของข้อมูล (Flow Line) เหมือนผังงานโปรแกรม ดังนั้น จึงไม่อาจใช้คาสั่ง GOTO ในโปรแกรมได้ ข้อแตกต่างอีกอย่างหนึ่งคือ สัญลักษณ์ที่ใช้ในผังงาน N
– S Chart จะน้อยกว่าสัญลักษณ์ของผังงานแบบธรรมดา
คือจะให้สัญลักษณ์ดังนี้
1. เส้นขีดแบ่งงานออกเป็นส่วน ๆ
เพื่อแสดงขั้นตอนที่จะต้องทำตามลำดับ
คำสั่งที่
1
|
คำสั่งที่
2
|
คำสั่งที่
3
|
........
|
คำสั่งที่
N
|
2.
ใช้รูปสามเหลี่ยมแสดงทางเลือกเพื่อการตัดสินใจ คือถาเงื่อนไขเป็นจริง ทำคำสั่งที่
1 และถ้าเงื่อนไขเป็นเท็จให้ทำคำสั่งที่ 2
3. ในรูปตัวอักษร L (แอล)
แสดงการทางานซ้ำ หรือการวนรอบ (Loop)
ดังนี้
ตัวอย่างการเขียนผังงานแบบ Nassi-Shneidermanและผังงานโปรแกรมแบบธรรมดา
ผังงานโครงสร้าง
เครื่องมือในการออกแบบโปรแกรมอีกรูปแบบหนึ่งก็คือ การเขียนผังงานในลักษณะ Structure Chart จะมีลักษณะคล้ายกับ Organization
Chart ที่แบ่งออกเป็นลำดับขั้น
เพื่อที่จะบอกฟังก์ชั่นการทำงานของโปรแกรมทั้งหมด
แต่ไม่ได้แสดงรายละเอียดการทำงานของโปรแกรมเอาไว้ แนวทางการออกแบบในลักษณะนี้จะคล้ายกับการออกแบบจากบนลงล่าง
คือ เริ่มต้นกำหนดหน้าที่ของระบบทั้งระบบเอาไว้เป็นระดับบนสุด
แล้วย่อยระดับบนลงเป็นระดับที่ 2 และที่ 3 ต่อไปเรื่อย ๆ โดยแต่ละระดับพยายามให้แตกโมดูล (Module) ย่อยออกเป็น 3 โมดูล คือ โมดูลรับข้อมูลเข้า โมดูลสำหรับการประมวลผล
และโมดูลสาหรับการแสดงผลลัพธ์ ระหว่างโมดูลย่อยกับโมดูลหลัก
จะแสดงการแลกเปลี่ยนข้อมูลระหว่างกัน การเรียงลาดับจะเรียงจากซ้ายไปขวา
ตัวอย่าง
กำหนดให้มีตัวเลขหนึ่งชุด
ต้องการทราบว่าจะมีตัวเลขอยู่กี่ตัวจากชุดของตัวเลขดังกล่าว เช่น 25 14 0 36 4 58 2 15 และ 81 พบว่ามีตัวเลขทั้งหมดอยู่
9 ตัว หากต้องการหาคาตอบสำหรับปัญหานี้
โดยกระบวนการผังงานโครงสร้าง สามารถเขียนได้ดังนี้
ตาราง
จะเห็นว่าผังงานแบบโครงสร้างจะแสดงงานที่ทา
และความสัมพันธ์ระหว่างโมดูลเท่านั้น ไม่มีการแสดงลำดับการประมวลผล
จึงไม่สามารถนำผังงานโครงสร้างมาทดแทนผังงานโปรแกรมได้
ในการออกแบบโปรแกรมโดยใช้เทคนิคแบบบนลงล่าง
จะเน้นการมองภาพโครงสร้างทั้งหมดของโปรแกรม ส่วนรายละเอียดของโมดูลต่าง ๆ
จะกระทำภายหลัง ตรงกันข้ามกับการเขียนผังงานโปรแกรม (Program Flowchart) ซึ่งจะวางแผนในขั้นรายละเอียดทันที
ถ้าหากมีการปรับต้องกระทบทั้งหมด แต่ถ้าการวางแผนเริ่มทำที่ผังโครงสร้าง
จะไม่กำหนดรายละเอียดของการประมวลผลจนกว่าผังงานโครงสร้างจะเสร็จสมบูรณ์แล้ว
คำสั่งเทียม (Pseudo Code)
คำสั่งเทียม (Pseudo Code) เป็นคำสั่งที่ไม่ใช่คำสั่งในภาษาคอมพิวเตอร์ใด
ๆ อย่างแท้จริง แต่เป็นคำสั่งที่เขียนเลียนแบบคำสั่งจริงอย่างย่อ ๆ
และใช้เป็นแนวทางของคำสั่งควบคุมในภาษานั้น ๆ
เพื่อให้เห็นแนวทางของการทำงานในโปรแกรม เช่น ในโปรแกรมเราอาจตั้งค่าตัวแปรต่าง ๆ
ของโปรแกรมให้มีค่าเป็นศูนย์ เพื่อให้โปรแกรมทำงานได้อย่างถูกต้อง
ซึ่งกระบวนการนี้หากเขียนเป็นผังงานโปรแกรม
จะต้องกำหนดค่าตัวแปรที่ใช้ในโปรแกรมทั้งหมดให้เป็นศูนย์ ถ้ามีตัวแปร 10
ตัวก็จะต้องเขียนชื่อตัวแปรทั้ง 10 ตัง พร้อมกับการกำหนดค่าเริ่มต้นให้มีค่าเป็น 0
แต่หากเขียนด้วยคำสั่งเทียม สามารถเขียนย่อ ๆ ว่า “การกำหนดค่าเริ่มต้น”
(Initial Program) ได้
ประโยชน์ของคำสั่งเทียม มีดังต่อไปนี้
1.
คำสั่งเทียมมีประโยชน์มากสำหรับการร่างเค้าโครงโปรแกรมที่จะเขียน
ใช้สาหรับทบทวนความถูกต้องของการออกแบบ อาจจะทบทวนได้ด้วยตนเอง
หรือประชุมทบทวนตามหลักการ Walkthrough คือให้ทีมงานออกแบบและเขียนโปรแกรมได้มีส่วนศึกษา
พิจารณาและแสดงความเห็นได้
2.
ใช้สำหรับกำหนดงานเขียนโปรแกรม โดยให้นักเขียนโปรแกรมนำคำสั่งเทียมไปเพิ่มเติมรายละเอียดที่จาเป็น
3.
ใช้เป็นเอกสารกำกับโปรแกรม สำหรับใช้ในการบำรุงรักษาโปรแกรมในอนาคต
4.
ใช้เป็นเครื่องมือประกอบในวิธีการออกแบบอื่น ๆ เช่น การออกแบบผังงานโครงสร้าง
เป็นต้น
ตัวอย่าง กำหนดให้มีตัวเลขหนึ่งชุด
ต้องการทราบว่าจะมีตัวเลขอยู่กี่ตัวจากชุดของตัวเลขดังกล่าว เช่น 25 14 0 36 4 58
2 15 และ 81 พบว่ามีตัวเลขทั้งหมดอยู่ 9 ตัว หากต้องการหาคำตอบสาหรับปัญหานี้
โดยกระบวนการคำสั่งเทียม สามารถเขียนได้ดังนี้
Start เริ่มต้น
Initial for
Accumulation Value N กำหนดข้อมูลเริ่มต้นเพื่อสะสมค่าเท่ากับ 0 คือ
N=0
Read Numberอ่านข้อมูลชุดตัวเลขตัวที่ 1
Do While not
end of Number อ่านจนกว่าจะหมดชุดข้อมูล
Compute N = N +
1 นับจำนวนชุดตัวเลข N
= N + 1
Read Next
Numberอ่านข้อมูลตัวเลขตัวต่อไป
End Doสิ้นสุดรอบการทำงาน
Print result พิมพ์ผลลัพธ์จากการสะสมค่า (N)
Stop จบการทำงาน
แบบประเมินผลการเรียนรู้ การออกแบบและพัฒนาโปรแกรม
1.จงเขียนวงจรการวางแผนและพัฒนาโปรแกรม
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
2.จงบอกคุณลักษณะของโปรแกรมที่ดี
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
3.จงอธิบายวิธีการลงรหัสของโปรแกรม
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
4.จงอธิบายวิธีการทดสอบและแก้ไขโปรแกรม
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
5.จงยกตัวอย่างเครื่องมือที่นักคอมพิวเตอร์ใช้ในการออกแบบโปรแกรม
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
6.จงอธิบายลักษณะข้อผิดพลาดที่เกิดขึ้นในโปรแกรม
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
7.เอกสารรายงานประกอบโปรแกรม
ประกอบด้วยอะไรบ้าง
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
8.จงบอกหัวข้อในการวิเคราะห์ระบบ
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
9.จงบอกความหมายและประโยชน์ของคำสั่งเทียม
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
10.จงบอกความหมายของผังงานโครงสร้าง
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
******************


