ความหมายของโปรแกรม
โปรแกรมคอมพิวเตอร์ หมายถึง
คำสั่งหรือชุดคำสั่ง
ที่เขียนขึ้นมาเพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานตามที่เราต้องการ เราจะให้คอมพิวเตอร์ทำอะไรก็เขียนเป็นคำสั่ง ซึ่งต้องสั่งเป็นขั้นตอนและแต่ละขั้นตอนต้องทำอย่างละเอียดและครบถ้วน
ซึ่งจะเกิดเป็นงานชิ้นหนึ่งขึ้นมามีชื่อเรียกว่า "โปรแกรม"
ขั้นตอนที่ 1 : รับข้อมูลเข้า (Input)
เริ่มต้นด้วยการนำข้อมูลเข้าเครื่องคอมพิวเตอร์
ซึ่งสามารถผ่านทางอุปกรณ์ชนิดต่างๆ แล้วแต่ชนิดของข้อมูลที่จะป้อนเข้าไป เช่น
ถ้าเป็นการพิมพ์ข้อมูลจะใช้แผงแป้นพิมพ์ (Keyboard) เพื่อพิมพ์ข้อความหรือโปรแกรมเข้าเครื่อง
ถ้าเป็นการเขียนภาพจะใช้เครื่องอ่านพิกัดภาพกราฟิค (Graphics Tablet) โดยมีปากกาชนิดพิเศษสำหรับเขียนภาพ หรือถ้าเป็นการเล่นเกมก็จะมีก้านควบคุม (Joystick) สำหรับเคลื่อนตำแหน่งของการเล่นบนจอภาพ เป็นต้น
ขั้นตอนที่ 2 : ประมวลผลข้อมูล (Process)
เมื่อนำข้อมูลเมาแล้ว
เครื่องจะดำเนินการกับข้อมูลตามคำสั่งที่ได้รับมาเพื่อให้ได้ผลลัพธ์ตามที่ต้องการ การประมวลผลอาจจะมีได้หลายอย่าง
เช่น นำข้อมูลมาหาผลรวม นำข้อมูลมาจัดกลุ่ม นำข้อมูลมาหาค่ามากที่สุด
หรือน้อยที่สุดเป็นต้น
ขั้นตอนที่ 3 : แสดงผลลัพธ์ (Output)
เป็นการนำผลลัพธ์จากการประมวลผลมาแสดงให้ทราบทางอุปกรณ์ที่กำหนดไว้
โดยทั่วไปจะแสดงผ่านทางจอภาพ หรือเรียกกันโดยทั่วไปว่า "จอมอนิเตอร์" (Monitor)หรือจะพิมพ์ข้อมูลออกทางกระดาษโดยใช้เครื่องพิมพ์ก็ได้
ภาษาโปรแกรมมิ่ง (Programming Language)
ภาษาโปรแกรมมิ่ง หมาย ถึง ภาษาใดๆ
ที่ถูกออกแบบโครงสร้างขึ้นมา เพื่อใช้ในการเขียนคำสั่งหรือชุดคำสั่ง ส่วนใหญ่เป็นภาษาอังกฤษที่มนุษย์เข้าใจ
ประกอบด้วยโครงสร้างของภาษา (Structure) รูปแบบไวยากรณ์ (Syntax) และคำศัพท์ต่าง ๆ (Vocabulary หรือ Keyword) เพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานตามที่เราต้องการในงานเขียนโปรแกรมจะต้องมีการเตรียมงานเกี่ยวกับการเขียนโปแกรมอย่างเป็นขั้นตอน
เรียกขั้นตอนเหล่านี้ว่า “ขั้นตอนการพัฒนาโปรแกรม”
ซอฟต์แวร์จะแบ่งออกเป็นประเภทใหญ่ ๆ ได้ 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 ขึ้นมาติดตั้งก็ได้
สำหรับโปรแกรมที่นิยมใช้ในปัจจุบัน
วัฏจักรในการพัฒนาระบบ แบ่งออกเป็น 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 เป็นผู้ที่รับผิดชอบหน้าที่บำรุง รักษาโปรแกรม
ซึ่งในความเป็นจริงแล้วผู้เขียนโปรแกรมกับผู้ที่บำรุงรักษาโปรแกรมจะเป็นคน
ละทีมงานกัน ดังนั้นจึงเป็นการยากที่ต้องแก้ไขโปรแกรมที่ไม่ได้พัฒนาขึ้นมา
ดังนั้นสิ่งสำคัญของการเขียนโปรแกรมโครงสร้างจะช่วยให้การเขียนโปรแกรมเป็น
มาตรฐานและทำให้ง่ายต่อการอ่านและเข้าใจ