วันพุธที่ 4 กันยายน พ.ศ. 2556

ความหมายของโปรแกรมคอมพิวเตอร์


                                                               ความหมายของโปรแกรม

             โปรแกรมคอมพิวเตอร์ หมายถึง คำสั่งหรือชุดคำสั่ง ที่เขียนขึ้นมาเพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานตามที่เราต้องการ  เราจะให้คอมพิวเตอร์ทำอะไรก็เขียนเป็นคำสั่ง  ซึ่งต้องสั่งเป็นขั้นตอนและแต่ละขั้นตอนต้องทำอย่างละเอียดและครบถ้วน ซึ่งจะเกิดเป็นงานชิ้นหนึ่งขึ้นมามีชื่อเรียกว่า "โปรแกรม" 
ขั้นตอนที่ 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 เป็นผู้ที่รับผิดชอบหน้าที่บำรุง รักษาโปรแกรม ซึ่งในความเป็นจริงแล้วผู้เขียนโปรแกรมกับผู้ที่บำรุงรักษาโปรแกรมจะเป็นคน ละทีมงานกัน ดังนั้นจึงเป็นการยากที่ต้องแก้ไขโปรแกรมที่ไม่ได้พัฒนาขึ้นมา ดังนั้นสิ่งสำคัญของการเขียนโปรแกรมโครงสร้างจะช่วยให้การเขียนโปรแกรมเป็น มาตรฐานและทำให้ง่ายต่อการอ่านและเข้าใจ

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

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