วันศุกร์ที่ 18 มีนาคม พ.ศ. 2554

หลักการออกแบบและพัฒนาโปรแกรม



หลักการออกแบบและพัฒนาโปรแกรม
1. ความหมายของโปรแกรม
โปรแกรมคอมพิวเตอร์ หมายถึง คำสั่งหรือชุดคำสั่ง ที่เขียนขึ้นมาเพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานตามที่เราต้องการ เราจะให้คอมพิวเตอร์ทำอะไรก็เขียนเป็นคำสั่ง ซึ่งต้องสั่งเป็นขั้นตอนและแต่ละขั้นตอนต้องทำอย่างละเอียดและครบถ้วน ซึ่งจะเกิดเป็นงานชิ้นหนึ่งขึ้นมามีชื่อเรียกว่า "โปรแกรม" ซอฟต์แวร์จะแบ่งออกเป็นประเภทใหญ่ ๆ ได้ 2 ประเภท คือ
1.1 ซอฟต์แวร์ระบบ (System Software)
1.2 ซอฟต์แวร์ประยุกต์ (Application Software)
1.1 ซอฟต์แวร์ระบบ (System Software)
ซอฟต์แวร์ระบบ หมายถึงโปรแกรมที่ทำหน้าที่ควบคุมการทำงานของฮาร์ดแวร์ทุกอย่างและอำนวยความสะดวกให้กับผู้ใช้เครื่องคอมพิวเตอร์ ซึ่งแบ่งแต่ละโปรแกรมตามหน้าที่การทำงานดังนี้
1.1.1 OS (Operating System)
คือโปรแกรมระบบที่ทำหน้าที่ควบคุมการใช้งานส่วนต่างๆของเครื่องคอมพิวเตอร์เช่นควบคุมหน่วยความจำควบคุมหน่วยประมวลผลควบคุมหน่วยรับและควบคุมหน่วยแสดงผล ตลอดจนแฟ้มข้อมูลต่าง ๆ ให้มีประสิทธิภาพสูงที่สุด และสามารถใช้อุปกรณ์ทุกส่วนของคอมพิวเตอร์มาทำงานได้อย่างเต็มที่ นอกจากนั้นยังเข้ามาช่วยจัดสรรการใช้ทรัพยากรในเครื่องและช่วยจัดการกระบวนการพื้นฐานที่สำคัญ ๆ ภายในเครื่องคอมพิวเตอร์ เช่น การเปิดหรือปิดไฟล์การสื่อสารกันระหว่างชิ้นส่วนต่าง ๆ ภายในเครื่อง การส่งข้อมูลออกสู่เครื่องพิมพ์หรือจอภาพ เป็นต้น ก่อนที่เครื่องคอมพิวเตอร์แต่ละเครื่องจะสามารถอ่านไฟล์ต่าง ๆ หรือสามารถใช้ซอฟต์แวร์ต่าง ๆ ได้จะต้องผ่านการดึงระบบปฏิบัติการออกมาฝังตัวอยู่ในหน่วยความจำก่อน ปัจจุบันนี้มีโปรแกรมระบบอยู่หลายตัวด้วยกัน ซึ่งแต่ละตัวนั้นก็เป็นโปรแกรมระบบปฏิบัติการเหมือนกัน แต่ต่างกันที่ลักษณะการทำงานจะไม่เหมือนกัน ดังนี้
- DOS (Disk Operating System) เป็นระบบปฏิบัติการที่นิยมใช้กันมาตั้งแต่ในอดีตออกมาพร้อมกับเครื่องพีซีของไอบีเอ็มรุ่นแรก ๆ จากนั้นก็มีการพัฒนารุ่นใหม่ออกมาเรื่อย ๆ จนกระทั่งถึงเวอร์ชั่นสุดท้ายคือ เวอร์ชั่น 6.22 หลังจากที่มีการประกาศใช้วินโดวส์ 95 ก็คงจะไม่ผลิต DOS เวอร์ชั่นใหม่ออกมาแล้ว โดยทั่วไปจะนิยมใช้วินโดวส์ 3.x ซึ่งถือว่าเป็นโปรแกรมเสริมชนิดหนึ่งที่ใช้ในดอส
- UNIX เป็นระบบ ปฏิบัติการที่สามารถใช้ร่วมกันได้หลายคน (Multiuser) หรือเป็นระบบปฏิบัติการแบบเครือข่ายโดยที่ผู้ใช้แต่ละคนจะต้องมีชื่อและพาสเวิร์ดส่วนตัวและสามารถเชื่อมโยงถึงกันได้ถึงทั่วโลกโดยผ่านทางสายโทรศัพท์และมี Modem เป็นตัวกลางในการรับส่งข้อมูลหรือโอนย้ายข้อมูลนิยมใช้แพร่หลายในมหาวิทยาลัยหน่วยงานรัฐบาลหรือบริษัทเอกชนที่มีระบบคอมพิวเตอร์ใหญ่ๆใช้ในระบบยูนิกซ์เองก็มีวินโดวส์อีกชนิดหนึ่งใช้เรียกว่า X Windows สำหรับผู้ที่ต้องการใช้ระบบยูนิกซ์ในเครื่องพีซีที่บ้านก็มีเวอร์ชั่นสำหรับพีซีเรียกว่า Linux ซึ่งจะมีคำสั่งพื้นฐานคล้าย ๆ กับระบบยูนิกซ์
- Linux เป็นระบบปฏิบัติการตัวหนึ่งเช่นเดียวกับ DOS,Windows และ Unix แต่ Linux นั้นจัดว่าเป็นระบบปฏิบัติการ Unix ประเภทหนึ่งในปัจจุบันนี้มีการใช้ Linux กันมากเนื่องจากความสามารถของตัวระบบปฏิบัติการและโปรแกรมประยุกต์ที่ทำงานบนระบบ Linux ได้พัฒนาขึ้นมามากมายโดยเฉพาะอย่างยิ่งโปรแกรมในตระกูลของGNU (GNU's Not UNIX) และสิ่งที่สำคัญที่สุดคือระบบ Linux เป็นระบบปฏิบัติการประเภทฟรีแวร์ (Free Ware) คือไม่เสียค่าใช้จ่ายในการซื้อโปรแกรมระบบ Linux และนอกจากนั้น Linux ยังสามารถทำงานได้บน CPU ทั้ง 3 ตระกูลคือบน CPU ของอินเทล (PCIntel) ดิจิตอลอัลฟาคอมพิวเตอร์ (Digital Alpha Computer) และซันสปาร์ (SUNSPARC) ปัจจุบันนี้ได้มีการนำระบบปฏิบัติการ Linux ไปประยุกต์ใช้เป็นระบบปฏิบัติการแบบเครือข่ายสำหรับงานด้านต่างๆ เช่นงานด้านการคำนวณสถานีงานสถานีบริการต่างๆ ระบบอินเทอร์เน็ตภายในองค์กรใช้ในการเรียนการสอน การทำวิจัยทางคอมพิวเตอร์ การพัฒนาโปรแกรม เป็นต้น
- LAN เป็นระบบปฏิบัติการแบบเครือข่ายเช่นเดียวกัน แต่จะใช้เชื่อมโยงกันใกล้ ๆ เช่น ในอาคารเดียวกันหรือระหว่างอาคารที่อยู่ใกล้กัน โดยใช้สาย Lan เป็นตัวเชื่อมโยง
- WINDOWS เป็นระบบปฏิบัติการที่กำลังนิยมใช้กันมากในปัจจุบัน ซึ่งพัฒนามาถึงรุ่นแล้ว Windows 2000 แล้ว บริษัทไม่โครซอฟต์ได้เริ่มประกาศใช้ MS Windows 95 ครั้งแรกเมื่อ 24 สิงหาคม ค.ศ. 1995 โดยมีความคิดที่ว่าจะออกมาแทน MS-DOS และ วินโดวส์ 3.x ที่ใช้ร่วมกันอยู่ลักษณะของวินโดวส์ 95 จึงคล้ายกับระบบโอเอสที่มีทั้งดอสและวินโดวส์อยู่ในตัวเดียวกันแต่เป็นวินโดวส์ที่มีลักษณะพิเศษกว่าวินโดวส์เดิม เช่น มีคุณสมบัติเป็น Plug and Play ซึ่งสามารถจะรู้จักฮาร์ดแวร์ต่าง ๆ ที่ติดตั้งอยู่ในเครื่องได้โดยอัตโนมัติ มีลักษณะเป็นระบบ 32 บิต ในขณะที่วินโดวส์เดิมเป็นระบบ 16 บิต เป็น
- WINDOWS NT เป็นระบบ OS ที่ผลิตมาจากบริษัท IBM เป็นระบบ 32 บิต ที่มีรูปลักษณ์เป็นกราฟิกที่ต้องใช้เม้าส์ คล้ายกับวินโดวส์ทั่วไปเช่นกัน
1.1.2 Translation Program
คือ โปรแกรมระบบที่ทำหน้าที่ในการแปลโปรแกรม หรือชุดคำสั่งที่เขียนด้วยภาษาที่ไม่ใช่ภาษาเครื่องหรือภาษาเครื่องที่ไม่เข้าใจให้เป็นภาษาที่เครื่องเข้าใจ และนำไปปฏิบัติได้ เช่น ภาษาBASIC,COBOL,C,PASCAL, FORTRAN,ASSEMBLY เป็นต้น สำหรับตัวแปลนั้นจะมีอยู่ 3 แบบคือ
- Assembler เป็นโปรแกรมที่ใช้แปลภาษาแอสแซมบลี ซึ่งมีลักษณะการแปรทีละคำสั่ง เมื่อทำตามคำสั่งนั้นเสร็จแล้ว ก็จะแปลคำสั่งถัดไปเรื่อย ๆ จนจบ
- อินเตอร์พรีเตอร์ (Interpreter) เป็นตัวแปลภาษาระดับสูงเช่นเดียวกับคอมไพล์เลอร์แต่จะแปลพร้อมกับทำงานตามคำสั่งทีละคำสั่งตลอดไปทั้งโปรแกรม ทำให้การแก้ไขโปรแกรมทำได้ง่ายปละรวดเร็ว การแปลโดยใช้อินเตอร์พรีเตอร์จะไม่สร้างโปรแกรมเรียกใช้งาน ดังนั้นจะต้องทำการแปลใหม่ทุกครั้งที่มีการเรียกใช้งาน ตัวอย่างตัวแปลภาษาที่ใช้ตัวแปลอินเตอร์พรีเตอร์ เช่น ภาษาเบสิก (BASIC)
- คอมไพเลอร์ (Compiler) เป็นตัวแปลภาษาระดับสูง เช่น ภาษาปาสคาล ภาษาโคบอลและภาษาฟอร์เเทรน การทำงานจะใช้หลักการแปลโปรแกรมต้นฉบับทั้งโปรแกรมให้เป็นโปรแกรมเรียกใช้งาน (executable program) ซึ่งจะถูกบันทึกไว้ในลักษณะของแฟ้มข้อมูลหรือไฟล์ เมื่อต้องการเรียกใช้งานโปรแกรมก็สามารถเรียกใช้จากไฟล์เรียกใช้งานโดยไม่ต้องทำการแปลหรือคอมไพล์อีก ทำให้การทำงานเป็นไปอย่างรวดเร็ว ขณะที่คอมไพล์โปรแกรมต้นฉบับที่เขียนขึ้นด้วยภาษาระดับสูง คอมไพล์เลอร์จะตรวจสอบโครงสร้างไวยกรณ์ของคำสั่งและข้อมูลที่ใช้ในการคำนวณและเปรียบเทียบต่อจากนั้นคอมไพล์เลอร์จะสร้างรายการข้อผิดพลาดของโปรแกรม (Program Listing) เพื่อใช้เก็บโปรแกรมต้นฉบับและคำสั่งที่เขียนไม่ถูกต้องตามกฎหรือโครงสร้างของภาษานั้น ๆ ไฟล์นั้นมีประโยชน์ในการช่วยโปรแกรมเมอร์ในการแก้ไขโปรแกรม (Debug)
1.1.3 Utility Program
คือโปรแกรมระบบที่ทำหน้าที่ในการอำนวยความสะดวกให้กับผู้ใช้เครื่องคอมพิวเตอร์ ให้สามารถทำงานได้สะดวก รวดเร็วและง่ายขึ้น เช่น โปรแกรมที่ใช้ในการเรียงลำดับข้อมูล โปรแกรมโอนย้ายข้อมูลจากชนิดหนึ่งไปยังอีกชนิดหนึ่ง โปรแกรมรวบรวมข้อมูล 2 ชุดด้วยกัน โปรแกรมคัดลอกข้อมูล เป็นต้น สำหรับโปรแกรมที่ทำงานในด้านนี้ ได้แก่ Pctools,Sidekick,PKZIP,PKUNZIP Norton Utility เป็นต้น
1.1.4 Diagnostic Program
คือโปรแกรมระบบที่ทำหน้าที่ตรวจสอบข้อผิดพลาด ในการทำงานของอุปกรณ์ต่าง ๆ ของเครื่องคอมพิวเตอร์ ได้แก่ โปรแกรม QAPLUS โปรแกรม NORTON เป็นต้น และเมื่อพบข้อผิดพลาดก็จะแจ้งขึ้นมาบนจอภาพให้ทราบ เช่น ถ้ามีการตรวจสอบแล้วปรากฏว่า Keyboard บางปุ่มเสียไปก็จะแจ้งบอกขึ้นมาเป็นรหัสให้ผู้ใช้ทราบ หรือในกรณีที่ Card จอปกติไม่สามารถแสดงภาพได้ ก็จะบอกในลักษณะของเสียงแทน เช่นเดียวกับ RAM ถ้าเสียก็จะมีเสียงบอกขึ้นมา
1.2 ซอฟต์แวร์ประยุกต์ (Application Software)
หมายถึง โปรแกรมที่ผู้ใช้คอมพิวเตอร์เป็นผู้เขียนขึ้นมาใช้เองเพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานอย่างใดอย่างหนึ่งตามที่ต้องการ ซึ่งแบ่งได้ดังนี้
1.2.1 User Program
คือโปรแกรมที่ผู้ใช้เขียนขึ้นมาใช้เองโดยใช้ภาษาระดับต่างๆทางคอมพิวเตอร์เช่นภาษาBASICCOBOL,PASCAL,C,ASSEMBLY,FORTRAN ฯลฯ ซึ่งจะใช้ภาษาใดขึ้นอยู่กับความเหมาะสมของงานเหล่านั้น เช่น โปรแกรมระบบบัญชี,โปรแกรมควบคุมสต็อกสินค้า,โปรแกรมแฟ้มทะเบียนประวัติ,โปรแกรมคำนวณภาษี,โปรแกรมคอดเงินเดือน เป็นต้น
1.2.2 Package Program
คือโปรแกรมสำเร็จรูป ซึ่งเป็นโปรแกรมที่ถูกสร้างหรือเขียนขึ้นมาโดยบริษัทต่าง ๆ เสร็จเรียบร้อยแล้วพร้อมที่จะนำมาใช้งานต่าง ๆ ได้ทันที ตัวอย่างเช่น
- Word Processer โปรแกรมที่ช่วยในการทำเอกสาร พิมพ์งานต่าง ๆ เช่น เวิร์ดจุฬา,เวิร์ดราชวิถี,Microsoft Word,WordPerfect,Amipro เป็นต้น
- Spreadsheet โปรแกรมที่ใช้ในการคำนวณข้อมูล มีลักษณะเป็นตาราง เช่น Lotus 1-2-3,Microsoft Excel เป็นต้น
- Database โปรแกรมที่ใช้ในการทำงานทางด้านฐานข้อมูลจะใช้เก็บรวบรวมข้อมูล ต่าง ๆ ที่มีขนาดใหญ่ และมีข้อมูลเป็นจำนวนมาก เช่นdBASEIIIPlus, Foxbase, Microsoft Access Foxpro, Visual Foxpro, Pracle, Infomix, DB2 เป็นต้น
- Graphic โปรแกรมที่ใช้ในการทำงานทางด้านสร้างรูปภาพและกราฟิกต่าง ๆ รวมทั้งงานทางด้านสิ่งพิมพ์ การทำโบรชัวร์ แผ่นพับ นามบัตร เช่น CorelDraw, Photoshop, Harvard Graphic, Freelance Graphic, PowerPoint, PageMaker เป็นต้น
- Internet โปรแกรมที่ใช้งานบน Internet เท่านั้น โดนจะต้องเรียกใช้ผ่านทาง Browser ซึ่งอาจจะเป็น Netscape Communicator หรือ Internet Explorer โดยการติดตั้งผ่านทางแผ่น CD-Rom หรือ Download ขึ้นมาติดตั้งก็ได้ สำหรับโปรแกรมที่นิยมใช้ในปัจจุบัน
2. ขั้นตอนการพัฒนาระบบ
วัฏจักรในการพัฒนาระบบ แบ่งออกเป็น 6 ขั้นตอนคือ
2.1 System investigation
เป็นขั้นตอนในการศึกษาความต้องการของผู้ใช้ซึ่งจะนำข้อมูลต่าง ๆ ที่ได้มากำหนดความต้องการของระบบและศึกษาความเป็นไปได้ของการพัฒนาระบบ กรณีที่สามารถพัฒนาระบบงานได้ตามความต้องการของผู้ใช้ จะดำเนินงานตามขั้นตอนขั้นต่อไป
2.2 System analysis
เป็นขั้นตอนในการวิเคราะห์ในรายละเอียดถึงความต้องการต่างๆ ของผู้ใช้ระบบรวมทั้งความต้องการของหน่วยงานและระบบอื่นๆ ที่ใช้อยู่ในปัจจุบันในด้านการประมวลผลทางด้านข้อมูลเข้า (input) ข้อมูลออก (output) หน่วยความจำ (storage) และควบคุมให้ได้ตรงตามความต้องการซึ่งเป็นจุดมุ่งหมายของระบบ
2.3 System design
เป็นขั้นตอนในการพัฒนาโปรแกรม โดยระบุถึงฮาร์ดแวร์ที่ใช้ในระบบ เช่น อุปกรณ์และสื่อต่างๆ ที่ใช้ รวมทั้งซอฟต์แวร์ เช่น โปรแกรมและวิธีการดำเนินงาน (procedure) เป็นต้น บุคลากรในระบบ เช่น ผู้ใช้และผู้เชี่ยวชาญ รวมทั้งออกแบบโครงสร้างของข้อมูลทั้งในด้านข้อมูลเข้าข้อมูลออก การประมวลผลข้อมูล หน่วยเก็บข้อมูล (storage) และฟังก์ชันควบคุมของระบบใหม่
2.4 Software development
เป็นขั้นตอนในการพัฒนาโปรแกรม โดยสร้างโปรแกรมขึ้นมาเพื่อให้สามารถทำงานได้ตามที่ได้ออกแบบระบบไว้
2.5 System implementation
เป็นขั้นตอนของการใช้งาน โดยการนำเอาโปรแกรมที่พัฒนาสมบูรณ์ไปติดตั้งทำการทดสอบระบบรวมทั้งฝึกฝนให้ผู้ใช้ระบบสามารถปฏิบัติงานโดยใช้ระบบใหม่นี้ได้
2.6 System maintenance
เป็นขั้นตอนในการบำรุงรักษาระบบ โดยตรวจสอบหรือควบคุมการทำงานของระบบคอมพิวเตอร์และแก้ไขระบบเมื่อต้องการ

3. ระยะต่าง ๆ ของการเขียนโปรแกรม (The Stages of the Programming Process)
การเขียนโปรแกรมคอมพิวเตอร์ คือ วิธีการในการพัฒนาโปรแกรมคอมพิวเตอร์ซึ่งประกอบด้วยกลุ่มของคำสั่งซึ่งสั่งให้เครื่องคอมพิวเตอร์ประมวลผลหรือกิจกรรมต่างๆซึ่งเกี่ยวของกับการเขียนคำสั่งในภาษาโปรแกรมต่าง ๆ ซึ่งสามารถแบ่งได้เป็นหลายระยะคือ
3.1 Program analysis
เป็นระยะของการวิเคราะห์ถึงจุดประสงค์ของงานประยุกต์ โดยกำหนดถึงหน้าที่ต่าง ๆ ที่จะให้โปรแกรมทำงานได้
3.2 Program design
เป็นระยะของการวางแผนและออกแบบถึงคุณลักษณะของข้อมูลเข้า (input) ข้อมูลออก (output) หน่วยเก็บข้อมูล วิธีดำเนินการประมวลผล
3.3 Program coding
เป็นระยะของการเขียนคำสั่งภาษาโปรแกรมซึ่งเปลี่ยนจาก Program design เป็นโปรแกรมคอมพิวเตอร์ที่สมบูรณ์
3.4 Program verification
เป็นระยะของการตรวจทานทดสอบโปรแกรมที่เขียนขึ้นให้ถูกต้องและสมบูรณ์ตรงตามความต้องการของระบบ ซึ่งเรียกว่า debugging และ testing
3.5 Program documentation
เป็นระยะของการบันทึกรายละเอียดของการออกแบบและรายละเอียดของโปรแกรม โดยจัดทำเป็นคู่มือและเอกสารของระบบ
3.6 Program maintenance
เป็นระยะของการปรับปรุงหรือสร้างโปรแกรมคอมพิวเตอร์ เพื่อพัฒนาให้ดีขึ้นซึ่งอาจจะขยายขีดความสามารถหรือปรับปรุงให้ถูกต้องยิ่งขึ้น

4. การวิเคราะห์โปรแกรม (Program analysis)
การวิเคราะห์โปรแกรมเป็นขั้นตอนแรกในการเขียนโปรแกรมคอมพิวเตอร์โดยการวิเคราะห์ถึงหน้าที่ต่างๆ ของโปรแกรมโดยแบ่งเป็นงานหรือฟังก์ชันฟังก์ชันหนึ่งอาจปฏิบัติการได้ก็ต่อเมื่อปฏิบัติงานอีกฟังก์ชันหนึ่งเสร็จก่อน การวิเคราะห์ปัญหาต่างๆ ของโปรแกรมอาจเป็นปัญหาสั้นๆ พื้นฐานหรือปัญหาทางคณิตศาสตร์ซับซ้อน ซึ่งจะต้องกำหนดปัญหา (Problem Definition) และกำหนดรายละเอียดของปัญหา (Problem Specification) ในการปฏิบัติงานให้ชัดเจน ในกรณีที่งานประยุกต์เป็นงานประมวลผลข้อมูลการวิเคราะห์โปรแกรมควรวิเคราะห์ถึงข้อกำหนดรายละเอียดของซอฟต์แวร์ (Software Specification) ในระยะของการออกแบบ (Design Stage) หรือความต้องการในรายละเอียดของโปรแกรม (Program Specification) อย่างเช่น
1. Output โดยวิเคราะห์ว่าผลลัพธ์ที่ต้องการคืออะไรบ้าง
2. Input โดยวิเคราะห์ว่าข้อมูลที่สามารถเรียกหาได้มีอะไรได้บ้าง
3. Storage โดยวิเคราะห์ว่าข้อมูลจะเก็บ (store) หรือดึง (retrieved) หรือแก้ไขในหน่วยเก็บข้อมูลอะไร
4. Processing โดยวิเคราะห์ถึงวิธีการประมวลผลต่าง ๆ ซึ่งอาจเป็นการคำนวณทางคณิตศาสตร์ การเปรียบเทียบและกรรมวิธีอื่น ๆ
5. Control procedure โดยวิเคราะห์วิธีการควบคุมการทำงานของโปรแกรม

5. การออกแบบโปรแกรม (Program design)
ระยะของการออกแบบโปรแกรมเป็นระยะของการวางแผนและออกแบบโดยระบุคุณลักษณะของข้อมูลเข้า (Input) ข้อมูลออก (Output) กรรมวิธีการประมวลกำหนดรายละเอียดของหน่วยเก็บข้อมูลและวิธีการควบคุมซึ่งค่าของความพยายาม (effort) ในการวิเคราะห์และออกแบบโปรแกรมขึ้นอยู่กับความซับซ้อนของงานประยุกต์และจำนวนของงานในระบบโดยปกติจะเป็นการกำหนดกฎเกณฑ์ทงตรรกะและคำสั่งที่ระบุถึงการปฏิบัติงานซึ่งเรียกว่าโมดุล (modules หรือ subdivisions) โดยแต่ละโมดุลจะมีส่วนของการกำหนดค่าเริ่มต้น (initialization) ข้อมูลเข้า (input) ประมวลผล (processing) และส่วนแสดงผล (output) และส่วนของการสิ้นสุดหรือเลิกใช้ (termination) โมดุลโปรแกรมส่วนมากมีโมดุลควบคุมใช้สำหรับตรวจสอบและควบคุมการทำงานต่าง ๆ เช่น
1. ลำดับของการประมวลผล (order of processing)
2. ขั้นตอนการทำงานซ้ำ ๆ (looping)
3. เงื่อนไขยกเว้น เช่น ข้อผิดพลาดต่าง ๆ (errors)
4. สิ่งเบี่ยงเบนจากการประมวลผลปกติ (other deviations form normal processing require)

6. การเขียนคำสั่งโปรแกรม (Program coding)
การเขียนคำสั่งโปรแกรมเป็นขั้นตอนในการแปลง (convert) ตรรกะที่ได้ออกแบบในระยะการออกแบบโปรแกรมให้เป็นกลุ่มของคำสั่งโปรแกรมภาษาเพื่อสั่งให้คอมพิวเตอร์ปฏิบัติตามโปรแกรมภาษาในปัจจุบันมีมากมายหลายภาษา ซึ่งเหมาะกับงานด้านต่าง ๆ ซึ่งแต่ละภาษามีการเขียนที่แตกต่างกัน ทั้งรูปแบบ กฎเกณฑ์ต่างๆ ดังนั้นผู้เขียนควรศึกษารูปแบบและกฎเกณฑ์ต่างๆ เหล่านี้ก่อนโปรแกรมใดๆ ที่นิยมใช้ในปัจจุบัน จะประกอบด้วยคำสั่งโครงสร้างพื้นฐาน 3 อย่างคือ
1. แบบลำดับ (Sequence)
2. แบบทางเลือก (Selection)
3. แบบวนรอบ (Loop หรือ Repetition)
ซึ่งเป็นส่วนสำคัญในการเขียนโปรแกรมโครงสร้างแบบบนลงล่าง (top-down structure) จะช่วยให้การเขียนโปรแกรมเป็นมาตรฐาน (standardizes) และเข้าใจได้ง่าย รวมทั้งการแก้ไขง่ายอีกด้วย
Sequence Structure
เป็นโครงสร้างลำดับ ซึ่งแสดงถึงลำดับของคำสั่งหรือการปฏิบัติงานกล่าวคือคำสั่งซึ่งอยู่ก่อนจะถูกปฏิบัติงานก่อนดังนั้นคำสั่งโปรแกรมซึ่งเก็บไว้ในคอมพิวเตอร์ก่อนถูกทำงานก่อน
Selection Structure
โครงสร้างทางเลือก หรือเรียกว่า decision หรือ IF-THEN-ELSE ก็ได้ เป็นโครงสร้างซึ่งแสดงทางเลือกของการทำงาน โดยขึ้นกับผลของเงื่อนไข โดยเงื่อนไขนี้ผลลัพธ์มี 2 ทางคือ จริง (True) และเท็จ (False) ถ้าเงื่อนไขเป็นจริงจะกระทำอย่างหนึ่ง ถ้าเงื่อนไขเป็นเท็จจะกระทำอีกอย่างหนึ่ง
Repetition (Loop) Structure
โครงสร้างวนรอบ หรือเรียกว่า DO-WHILE หรือ DO-UNTIL ก็ได้ เป็นโครงสร้างที่กระทำหน้าที่หรือคำสั่งซึ่งขึ้นกับเงื่อนไข โดยการทำงานจะเป็นการทำงานซ้ำ ๆ กัน ซึ่งจะหยุดการทำงานวนรอบก็ต่อเมื่อเงื่อนไขเป็นเท็จ (False)

7. การตรวจสอบความถูกต้องของโปรแกรม (Program Verification)
การตรวจทานโปรแกรมโดยทั่วไปเรียกว่าdebuggingซึ่งเป็นระยะหนึ่งในการเขียนโปรแกรมรวมถุงการตรวจสอบ (checking) การทดสอบ (testing) และการทำให้ถูกต้อง (correction) เหราะการเขียนคำสั่งโปรแกรมใหม่ ๆ อาจเกิดข้อผิดพลาด (bugs) ได้ง่าย
7.1 ข้อผิดพลาดในการเขียนโปรแกรม (Programming Error)
ข้อผิดพลาดในการเขียนโปรแกรมสามารถแบ่งเป็น 3 ชนิดคือsyntaxerrors,logicerrors แล ะsystem design errors
Syntax errors เป็นข้อผิดพลาดที่เกิดจากการเขียนคำสั่งโปรแกรมผิดรูปแบบไวยกรณ์ของภาษา
Logic errors เป็นข้อผิดพลาดที่เกิดจากการใช้ตรรกะผิดในโปรแกรม ซึ่งเงื่อนไขผิดมีผลให้การกระทำตามเงื่อนไขผิดไปด้วย
System design errors เป็นข้อผิดพลาดจากการออกแบบระบบทำให้ผลของการทำงานไม่เป็นที่ยอมรับของผู้ใช้ซึ่งความผิดพลาดนี้ อาจเกิดจากการสื่อสารระหว่างโปรแกรมเมอร์กับผู้วิเคราะห์ระบบหรือผู้ใช้ระบบไม่ดี
Syntax errors เป็นความผิดพลาดที่ค้นพบได้ง่ายกว่า logic errors เพราะสามารถตรวจพบได้ในระหว่างการทำการแปลภาษา ส่วน logic errors จะตรวจพบเมื่อโปรแกรมทำงานจนได้ผลลัพธ์ไม่ถูกต้องเท่านั้น
7.2 การตรวจสอบ (checking)
การตรวจสอบโปรแกรมต้องมีขึ้นระหว่างการออกแบบโปรแกรม,การเขียนโปรแกรม,การตรวจทานโปรแกรมเพื่อให้แน่ใจว่าสามารถแก้ปัญหาได้ตรงตามความต้องการตามวัตถุประสงค์ที่ได้ตั้งไว้เครื่องมือที่ใช้ในการออกแบบถูกต้องตามตรรกะในการประมวลผลรวมทั้งคำสั่งโปรแกรมที่เขียนขึ้นสามารถแปลได้โดยปราศจากข้อผิดพลาดต่างๆและสามารถทำงานได้อย่างถูกต้องสมบูรณ์
7.3 Structured walkthroughs
เป็นเครื่องมือของการออกแบบ,เขียนคำสั่ง,ตรวจสอบข้อผิดพลาดของการเขียนโปรแกรมที่ดีซึ่งเป็นวิธีการที่ผู้เขียนโปรแกรมแสดงผลงานให้โปรแกรมเมอร์อื่นๆตรวจสอบดูซึ่งการทำงานนี้เป็นแนวคาวมคิดของการเขียนโปรแกรมเป็นทีมงานซึ่งมีการกำหนดให้พัฒนาโปรแกรมเดียวกันภายใต้การควบคุมของหัวหน้าโปรแกรมเมอร์ (chiefprogrammer) โดยสมาชิกในทีมงานจะช่วยกันตรวจดูถึงการออกแบบและการเขียนคำสั่งเป็นช่วงๆ เป็นประจำของแต่ละโมดุล ซึ่งทำให้ค่าใช้จ่ายของการทวนสอบ (Verification) น้อยลง โดยสามารถพบข้อผิดพลาดได้ในระยะเริ่มแรกของการเขียนโปรแกรม โดยไม่ต้องคอยจนกระทั่งตรวจพบในระยะของการทดสอบโปรแกรม ซึ่งเป็นการทราบที่จะทราบว่าจุดใดที่เกิดข้อผิดพลาด ซึ่งมีผลทำให้ค่าใช้จ่ายสูงตามไปด้วย
7.4 การทดสอบ (testing)
การทดสอบเป็นการตรวจสอบการทำงานของโปรแกรมโดยใช้ข้อมูลทดสอบ (testdata) เพื่อดูผลลัพธ์จากการทำงานการทดสอบที่ดีนั้นควรใช้ข้อมูลที่แตกต่างกันเพื่อให้สามารถกระทำได้ในทุกๆ เงื่อนไขในการทำงานของโปรแกรมรวมทั้งควรทดลองข้อมูลที่ไม่ถูกต้องด้วยโปรแกรมที่ดีเมื่อใส่ข้อมูลผิดๆ จะไม่เกิด error แต่จะแสดงข้อความเพื่อเตือนเท่านั้นในการเขียนโปรแกรมโครงสร้างที่ใช้โปรแกรมภาษาระดับสูงนั้นผู้ทำการทดสอบโปรแกรมสามารถแบ่งการทดสอบโปรแกรมออกเป็นส่วนๆ ซึ่งเรียกว่า โมดุล เพื่อสะดวกในการทดสอบซึ่งง่ายต่อการค้นหาข้อผิดพลาดและง่ายต่อการแก้ไขให้ถูกต้องด้วยเมื่อทดสอบโมดุลย่อยๆ เหล่านี้จนไม่มีข้อผิดพลาดจึงนำมาเป็นโปรแกรมหลักอีกครั้งหนึ่ง การทดสอบโปรแกรมกรณีที่ต้องให้โปรแกรมที่พัฒนาขึ้นมาแทนที่การประมวลผลเก่าซึ่งกำลังดำเนินอยู่การทดสอบต้องกระทำขนานกันไปกับระบบเก่าซึ่งเรารียกการประมวลผลนี้ว่า parallel processing ดังนั้นการทดสอบระบบต้องทดสอบจนกว่าจะแน่ใจว่าสามารถกระทำแทนที่ระบบเก่าได้จึงจะนำเอาการปฏิบัติงานของระบบเก่าออกไปได้

8. เอกสารโปรแกรม (Program documentation)
เป็นเอกสารซึ่งบันทึกรายละเอียดของการออกแบบการเขียนคำสั่งซึ่งมีประโยชน์ต่อการวิเคราะห์ความผิดพลาดของโปรแกรม การแก้ไขปรับปรุงโปรแกรมหรือการรวมโปรแกรมกรณีเกิดการสูญหาย โดยเฉพาะโปรแกรมเมอร์หลักที่เขียนโปรแกรมเกิดลาออกไป ดังนั้นควรเก็บรวบรวมข้อมูลต่างๆ เอาไว้

9. การบำรุงรักษาโปรแกรม (Program maintenance)
ขั้นตอนสุดท้ายในการเขียนโปรแกรมคอมพิวเตอร์จะเริ่มหลังจากโปรแกรมคอมพิวเตอร์ที่พัฒนาขึ้นนั้นเป็นที่ยอมรับจากผู้ใช้และได้ปฏิบัติงานมาแล้วชั่วระยะเวลาหนึ่ง ต่อมาเกิดความจำเป็นบางอย่างเกิดขึ้น เช่น ต้องการปรับปรุงระบบให้มีประสิทธิภาพดีขึ้น หรือต้องการแก้ไขหน้าที่บางอย่างหรือต้องการขยายขีดความสามารถของโปรแกรม หรืออาจเกิดจากความผิดพลาดในโปรแกรมต้องการแก้ไขให้ถูกต้อง โดยอาจมีผลมาจากนโยบายของบริษัทที่เปลี่ยนไป หรือระเบียบทางราชการบังคับ หรือการแข่งขันทางธุรกิจ ฯลฯ การเปลี่ยนแปลงอาจเกิดขึ้นได้กับทั้งฮาร์ดแวร์และซอฟต์แวร์ของระบบ การบำรุงรักษาเป็นหน้าที่หลักของการประมวลผลข่าวสารของหน่วยงานเกี่ยวของกับการวิเคราะห์ การออกแบบ การเขียนคำสั่ง การตรวจสอบ การเปลี่ยนแปลงเอกสารให้ทันสมัย ซึ่งจะมี Maintenance Programmers เป็นผู้ที่รับผิดชอบหน้าที่บำรุงรักษาโปรแกรม ซึ่งในความเป็นจริงแล้วผู้เขียนโปรแกรมกับผู้ที่บำรุงรักษาโปรแกรมจะเป็นคนละทีมงานกัน ดังนั้นจึงเป็นการยากที่ต้องแก้ไขโปรแกรมที่ไม่ได้พัฒนาขึ้นมา ดังนั้นสิ่งสำคัญของการเขียนโปรแกรมโครงสร้างจะช่วยให้การเขียนโปรแกรมเป็นมาตรฐานและทำให้ง่ายต่อการอ่านและเข้าใจ

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

แสดงความคิดเห็น