1.1
1.1
วิชา การเขียนโปรแกรม Python กลุ่มสาระการเรียนรู้วิทยาศาสตร์และเทคโนโลยี
เรื่อง องค์ประกอบและหลักการเขียนโปรแกรม
องค์ประกอบของระบบคอมพิวเตอร์
คอมพิวเตอร์ทำงานอย่างเป็นระบบ (System) หมายถึงภายในระบบงานคอมพิวเตอร์ ประกอบด้วยองค์ประกอบย่อยที่มีหน้าที่เฉพาะ ทำงานประสานสัมพันธ์กัน เพื่อให้งานบรรลุตามเป้าหมาย ในระบบงานคอมพิวเตอร์ การที่มีเครื่องคอมพิวเตอร์เพียงอย่างเดียว จะยังไม่สามารถทำงานได้ด้วยตัวเอง ซึ่งหากจะให้คอมพิวเตอร์ทำงานได้อย่างเป็นระบบและมีประสิทธิภาพแล้ว ระบบคอมพิวเตอร์ควรจะประกอบไปด้วยองค์ประกอบคือ บุคลากร (Peopleware) ฮาร์ดแวร์ (Hardware) ซอฟต์แวร์ (Software) ข้อมูล(Data) สารสนเทศ(Information) และกระบวนการทำงาน ( Procedure )
1. ฮาร์ดแวร์ (Hardware)
ฮาร์ดแวร์เป็นองค์ประกอบของตัวเครื่องที่สามารถจับต้องได้ ได้แก่ วงจรไฟฟ้า ตัวเครื่อง จอภาพ เครื่องพิมพ์ คีร์บอร์ด เป็นต้น ซึ่งสามารถแบ่งส่วนพื้นฐานของฮาร์ดแวร์เป็น 4 หน่วยสำคัญ
1.1 หน่วยรับข้อมูลหรืออินพุต (Input Unit)
ทำหน้าที่รับข้อมูลและโปรแกรมเข้าเครื่อง ได้แก่ คีย์บอรืดหรือแป้นพิมพ์ เมาส์ เครื่องสแกน เครื่องรูดบัตร Digitizer เป็นต้น
1.2 ระบบประมวลผลกลางหรือซีพียู (CPU : Central Processing Unit)
ทำหน้าที่ในการทำงานตามคำสั่งที่ปรากฏอยู่ในโปรแกรม ปัจจุบันซีพียูของเครื่องพีซี รู้จักในนามไมโครโปรเซสเซอร์ (Micro Processor) หรือ Chip เช่นบริษัท Intel คือ Pentium หรือ Celeron ส่วนของบริษัท AMD คือ K6,K7(Athlon) เป็นต้น ไมโครโปรเซสเซอร์ มีหน้าที่ในการประมวลผลข้อมูล ในลักษณะของการคำนวณและเปรียบเทียบ โดยจะทำงานตามจังหวะเวลาที่แน่นอน เรียกว่าสัญญาณ Clock เมื่อมีการเคาะจังหวะหนึ่งครั้ง ก็จะเกิดกิจกรรม 1 ครั้ง เราเรียกหน่วย ที่ใช้ในการวัดความเร็วของซีพียูว่า “เฮิร์ท”(Hertz) หมายถึงการทำงานได้กี่ครั้งในจำนวน 1 วินาที เช่น ซีพียู Pentium4 มีความเร็ว 2.5 GHz หมายถึงทำงานเร็ว 2,500 ล้านครั้ง ในหนึ่งวินาที กรณีที่สัญญาณ Clock เร็วก็จะทำให้คอมพิวเตอร์เครื่องนั้น มีความเร็วสูง และ ซีพียูที่ทำงานเร็วมาก ราคาก็จะแพงขึ้นมากตามไปด้วย
1.3 หน่วยเก็บข้อมูล ( Storage ) ซึ่งสามารถแยกตามหน้าที่ได้เป็น 2 ลักษณะ คือ
1.3.1 หน่วยเก็บข้อมูลหลักหรือความจำหลัก (Primary Storage หรือ Main Memory) ทำหน้าที่เก็บโปรแกรมหรือข้อมูลที่รับมาจากหน่วยรับข้อมูลเพื่อเตรียมส่งให้หน่วยประมวลผลกลางทำการประมวลผล และรับผลลัพธ์ที่ได้จากการประมวลผลเพื่อส่งออกหน่วยแสดงข้อมูลต่อไปซึ่งอาจแยกได้เป็น 2 ประเภท คือ RAM (Random Access Memory) ที่สามารถอ่านและเขียนข้อมูลได้ในขณะที่เปิดเครื่องอยู่ แต่เมื่อปิดเครื่องข้อมูลใน RAM จะหายไป และ ROM (Read Only Memory) จะอ่านได้อย่างเดียว เช่น BIOS (Basic Input Output system) โปรแกรมฝังไว้ใช้ตอนสตาร์ตเครื่อง เพื่อเครื่องคอมพิวเตอร์เริ่มต้นทำงาน เป็นต้น
1.3.2 หน่วยเก็บข้อมูลสำรอง (Secondary Storage) เป็นหน่วยที่ทำหน้าที่เก็บข้อมูล หรือโปรแกรมที่จะป้อนเข้าสู่หน่วยความจำหลักภายในเครื่องก่อนทำการประมวลผลโดยซีพียู รวมทั้งเป็นที่เก็บผลลัพธ์จากการประมวลผลด้วย ปัจจุบันรู้จักในนามฮาร์ดดิสก์ (Hard disk) หรือแผ่นฟร็อปปีดิสก์ (Floppy Disk) ซึ่งเมื่อปิดเครื่องข้อมูลจะยังคงเก็บอยู่
1.4 หน่วยแสดงข้อมูลหรือเอาต์พุต (Output Unit) ทำหน้าที่ในการแสดงผลลัพธ์ที่ได้จากการประมวลผล ได้แก่ จอภาพ และเครื่องพิมพ์ เป็นต้น ทั้ง 4 ส่วนจะเชื่อมต่อกันด้วยบัส (Bus)
2. ซอฟต์แวร์์ (Software)
ซอฟต์แวร์ คือโปรแกรมหรือชุดคำสั่ง ที่สั่งให้ฮาร์ดแวร์ทำงาน รวมไปถึงการควบคุมการทำงาน ของอุปกรณ์แวดล้อมต่าง ๆ เช่น ฮาร์ดดิสก์ ดิสก์ไดร์ฟ ซีดีรอม การ์ดอินเตอร์เฟสต่าง ๆ เป็นต้น ซอฟต์แวร์ เป็นสิ่งที่มองไม่เห็นจับต้องไม่ได้ แต่รับรู้การทำงานของมันได้ ซึ่งต่างกับ ฮาร์ดแวร์ (Hardware) ที่สามารถจับต้องได้ ซึ่งแบ่งเป็น 2 ประเภทคือ
2.1 ซอฟต์แวร์ระบบ ( System Software ) คือโปรแกรม ที่ใช้ในการควบคุมระบบการ ทำงานของเครื่องคอมพิวเตอร์ทั้งหมด เช่น การบูตเครื่อง การสำเนาข้อมูล การจัดการระบบของดิสก์ ชุดคำสั่งที่เขียนเป็นคำสั่งสำเร็จรูป โดยผู้ผลิตเครื่องคอมพิวเตอร์ และมีมาพร้อมแล้วจากโรงงานผลิต การทำงานหรือการประมวลผล ของซอฟต์แวร์เหล่านี้ ขึ้นกับเครื่องคอมพิวเตอร์แต่ละเครื่อง ระบบของซอฟต์แวร์เหล่านี้ ออกแบบมาเพื่อการปฏิบัติควบคุม และมีความสามารถในการยืดหยุ่น การประมวลผลของเครื่องคอมพิวเตอร์ แบ่งออกเป็น 4 ประเภทคือ
2.1.1 โปรแกรมระบบปฏิบัติการ (Operating System) เป็นโปรแกรมที่ใช้ควบคุม และติดต่อกับอุปกรณ์ต่าง ๆ ของเครื่องคอมพิวเตอร์ โดยเฉพาะการจัดการระบบของดิสก์ การบริหารหน่วยความจำของระบบ กล่าวโดยสรุปคือ หากจะทำงานใดงานหนึ่ง โดยใช้คอมพิวเตอร์เป็นเครื่องมือ ในการทำงาน แล้วจะต้องติดต่อกับซอฟต์แวร์ระบบก่อน ถ้าขาดซอฟต์แวร์ชนิดนี้ จะทำให้เครื่องคอมพิวเตอร์ ไม่สามารถทำงานได้ ตัวอย่างของซอฟต์แวร์ประเภทนี้ได้แก่ โปรแกรมระบบปฏิบัติการ Unix Linux DOS และWindows (เวอร์ชั่นต่าง ๆ เช่น 95 98 me 2000 NT XP Vista ) เป็นต้น
2.1.2 ตัวแปลภาษา (Translator) จาก Source Code ให้เป็น Object Code (แปลจากภาษาที่มนุษย์เข้าใจ ให้เป็นภาษาที่เครื่องเข้าใจ เปรียบเสมือนล่ามแปลภาษา) เป็นซอฟต์แวร์ที่ใช้ในการแปลภาษาระดับสูง ซึ่ง เป็นภาษาใกล้เคียงภาษามนุษย์ ให้เป็นภาษาเครื่องก่อนที่จะนำไปประมวลผล ตัวแปลภาษาแบ่งออกเป็นสองประเภทคือ คอมไพเลอร์ (Compiler) และอินเตอร์พีทเตอร์ (Interpreter) คอมไพเลอร์จะแปลคำสั่งในโปรแกรมทั้งหมดก่อน แล้วทำการลิ้ง (Link) เพื่อให้ได้คำสั่งที่เครื่องคอมพิวเตอร์เข้าใจ ส่วนอินเตอร์พีทเตอร์จะแปลทีละประโยคคำสั่ง แล้วทำงานตามประโยคคำสั่งนั้น การจะเลือกใช้ตัวแปลภาษาแบบใดนั้น จะขึ้นอยู่กับภาษาที่ใช้ในการเขียนโปรแกรม ซึ่งมี 2 แบบได้แก่ ภาษาแบบโครงสร้าง เช่น ภาษาเบสิก (Basic) ภาษาปาสคาล (Pascal) ภาษาซี (C) ภาษาจาวา(Java)ภาษาโคบอล (Cobol) ภาษา SQL ภาษา HTML เป็นต้น ภาษาแบบเชิงวัตถุ ( Visual หรือ Object Oriented Programming ) เช่น Visual Basic,Visual C หรือ Delphi เป็นต้น
2.1.3 ยูติลิตี้ โปรแกรม (Utility Program) คือซอฟต์แวร์เสริมช่วยให้เครื่องทำงานมีประสิทธิภาพ มากขึ้น เช่น ช่วยในการตรวจสอบดิสก์ ช่วยในการจัดเก็บข้อมูลในดิสก์ ช่วยสำเนาข้อมูล ช่วยซ่อมอาการชำรุดของดิสก์ ช่วยค้นหาและกำจัดไวรัส ฯลฯ เป็นต้นโปรแกรมในกลุ่มนี้ได้แก่ โปรแกรม Norton Winzip Scan virus Sidekick Scandisk Screen Saver ฯลฯ เป็นต้น
2.1.4 ติดตั้งและปรับปรุงระบบ (Diagnostic Program) เป็นซอฟต์แวร์ที่ใช้ในการติดตั้งระบบ เพื่อให้คอมพิวเตอร์สามารถติดต่อและใช้งานอุปกรณ์ต่าง ๆ ที่นำมาติดตั้งระบบ ได้แก่ โปรแกรม Setupและ Driver ต่าง ๆ เช่น โปรแกรม Setup Microsoft Office โปรแกรม Driver Sound , Driver Printer , Driver Scanner ฯลฯ เป็นต้น
2.2 ซอฟต์แวร์ประยุกต์ (Application Software)
คือ ซอฟต์แวร์หรือโปรแกรมที่ทำให้คอมพิวเตอร์ทำงานต่างๆ ตามที่ผู้ใช้ต้องการ ไม่ว่าจะด้านเอกสาร บัญชี การจัดเก็บข้อมูล เป็นต้น ซอฟต์แวร์ประยุกต์สามารถจำแนกได้เป็น 2 ประเภท คือ
2.2.1 ซอฟต์แวร์สำหรับงานเฉพาะด้าน (Special Purpose Software) คือ โปรแกรมซึ่งเขียนขึ้นเพื่อการทำงานเฉพาะอย่างที่เราต้องการ บางที่เรียกว่า User’s Program เช่น โปรแกรมการทำบัญชีจ่ายเงินเดือน โปรแกรมระบบเช่าซื้อ โปรแกรมการทำสินค้าคงคลัง เป็นต้น ซึ่งแต่ละโปรแกรมก็มักจะมีเงื่อนไข หรือแบบฟอร์มแตกต่างกันออกไปตามความต้องการ หรือกฏเกณฑ์ของแต่ละหน่วยงานที่ใช้ ซึ่งสามารถดัดแปลงแก้ไขเพิ่มเติม (Modifications) ในบางส่วนของโปรแกรมได้ เพื่อให้ตรงกับความต้องการของผู้ใช้ และซอฟต์แวร์ประยุกต์ที่เขียนขึ้นนี้โดยส่วนใหญ่มักใช้ภาษาระดับสูงเป็นตัวพัฒนา
2.2.2 ซอฟต์แวร์สำหรับงานทั่วไป (General Purpose Software) เป็นโปรแกรมประยุกต์ที่มีผู้จัดทำไว้ เพื่อใช้ในการทำงานประเภทต่างๆ ทั่วไป โดยผู้ใช้คนอื่นๆ สามารถนำโปรแกรมนี้ไปประยุกต์ใช้กับข้อมูลของตนได้ แต่จะไม่สามารถทำการดัดแปลง หรือแก้ไขโปรแกรมได้ ผู้ใช้ไม่จำเป็นต้องเขียนโปรแกรมเอง ซึ่งเป็นการประหยัดเวลา แรงงาน และค่าใช้จ่ายในการเขียนโปรแกรม นอกจากนี้ ยังไม่ต้องเวลามากในการฝึกและปฏิบัติ ซึ่งโปรแกรมสำเร็จรูปนี้ มักจะมีการใช้งานในหน่วยงาน ซึ่งขาดบุคลากรที่มีความชำนาญเป็นพิเศษในการเขียนโปรแกรม ดังนั้น การใช้โปรแกรมสำเร็จรูปจึงเป็นสิ่งที่อำนวยความสะดวกและเป็นประโยชน์อย่างยิ่ง ตัวอย่างโปรแกรมสำเร็จรูปที่นิยมใช้ได้แก่ MS-Office, Lotus, Adobe Photoshop, SPSS, Internet Explorer และ เกมส์ต่างๆ เป็นต้น
3. บุคลากร (Peopleware)
บุคลากรจะเป็นสิ่งสำคัญที่จะเป็นตัวกำหนดถึงประสิทธิภาพถึงความสำเร็จและความคุ้มค่าในการใช้งานคอมพิวเตอร์ ซึ่งสามารถแบ่งบุคลากรตามหน้าที่เกี่ยวข้องตามลักษณะงานได้ 6 ด้าน ดังนี้
3.1 นักวิเคราะห์และออกแบบระบบ (Systems Analyst and Designer : SA) ทำหน้าที่ศึกษาและรวบรวมความต้องการของผู้ใช้ระบบ และทำหน้าที่เป็นสื่อกลางระหว่างผู้ใช้ระบบและนักเขียนโปรแกรม (Programmer) หรือปรับปรุงคุณภาพงานเดิม นักวิเคราะห์ระบบต้องมีความรู้เกี่ยวกับระบบคอมพิวเตอร์ พื้นฐานการเขียนโปรแกรม และควรจะเป็นผู้มีความคิดริเริ่มสร้างสรรค์มีมนุษย์สัมพันธ์ที่ดี
3.2 โปรแกรมเมอร์ (Programmer) คือบุคคลที่ทำหน้าที่เขียนซอฟต์แวร์ต่าง ๆ หรือเขียนโปรแกรมเพื่อสั่งงานให้เครื่องคอมพิวเตอร์ทำงานตามความต้องการของผู้ใช้ โดยเขียนตามแผนผังที่นักวิเคราะห์ระบบได้เขียนไว้
3.3 ผู้ใช้ (User) เป็นผู้ใช้ระบบคอมพิวเตอร์ ซึ่งจะเป็นผู้ปฏิบัติหรือกำหนดความต้องการในการใช้ระบบคอมพิวเตอร์ว่าทำงานอะไรได้บ้าง ผู้ใช้งานคอมพิวเตอร์ทั่วไป จะต้องเรียนรู้วิธีการใช้เครื่อง และวิธีการใช้งานโปรแกรม เพื่อให้โปรแกรมที่มีอยู่สามารถทำงานได้ตามที่ต้องการ
3.4 ผู้ปฏิบัติการ (Operator ) สำหรับระบบขนาดใหญ่ เช่น เมนเฟรม จะต้องมีเจ้าหน้าที่คอมพิวเตอร์ที่คอยปิดและเปิดเครื่อง และเฝ้าดูจอภาพเมื่อมีปัญหาซึ่งอาจเกิดขัดข้อง จะต้องแจ้ง System Programmer ซึ่งเป็นผู้ดูแลตรวจสอบแก้ไขโปรแกรมระบบควบคุมเครื่อง (System Software) อีกทีหนึ่ง
3.5 ผู้บริหารฐานข้อมูล (Database Administrator : DBA) กลุ่มบุคคลที่ทำหน้าที่ดูแลข้อมูลผ่านระบบจัดการฐานข้อมูล ซึ่งจะควบคุมให้การทำงานเป็นไปอย่างราบรื่น นอกจากนี้ยังทำหน้าที่กำหนดสิทธิการใช้งานข้อมูล กำหนดในเรื่องความปลอดภัยของการใช้งาน พร้อมทั้งดูแลดาต้าเบสเซิร์ฟเวอร์ (Database Server) ให้ทำงานอย่างปกติด้วย
3.6 ผู้จัดการระบบ (System Manager) คือ ผู้วางนโยบายการใช้คอมพิวเตอร์ให้เป็นไปตามเป้าหมายของหน่วยงาน เป็นผู้ที่มีความหมายต่อความสำเร็จหรือล้มเหลวของการนำระบบคอมพิวเตอร์เข้ามาใช้งานเป็นอย่างมาก
4. ข้อมูลและสารสนเทศ
4.1 ข้อมูล (Data) หมายถึง ข้อเท็จจริงหรือเหตุการณ์ที่เกิดขึ้น แล้วใช้ตัวเลขตัวอักษร หรือสัญลักษณ์ต่าง ๆ ทำความหมายแทนสิ่งเหล่านั้น เช่น
· คะแนนสอบวิชาภาษาไทยของนักเรียน
· อายุของพนักงานในบริษัทชินวัตรจำกัด
· ราคาขายของหนังสือในร้านหนังสือดอกหญ้า
· คำตอบที่ผู้ถูกสำรวจตอบในแบบสอบถาม
4.2 สารสนเทศ (Information) หมายถึง ข้อสรุปต่างๆ ที่ได้จากการนำข้อมูลมาทำการวิเคราะห์ หรือผ่านวิธีการที่ ได้กำหนดขึ้น ทั้งนี้เพื่อนำข้อสรุปไปใช้งานหรืออ้างอิง เช่น
· เกรดเฉลี่ยของวิชาภาษาไทยของนักเรียน
· อายุเฉลี่ยของพนักงานในบริษัทชินวัตรจำกัด
· ราคาขายสูงสุดของหนังสือในร้านหนังสือดอกหญ้า
· ข้อสรุปจากการสำรวจคำตอบในแบบสอบถาม
5. กระบวนการทำงาน (Procedure)
องค์ประกอบด้านนี้หมายถึงกระบวนการทำงานเพื่อให้ได้ผลลัพธ์ตามต้องการ ในการทำงานกับคอมพิวเตอร์ผู้ใช้จำเป็นต้องทราบขั้นตอนการทำงานเพื่อให้ได้งานที่ถูกต้องและมีประสิทธิภาพ ซึ่งอาจจะมีขั้นตอนสลับซับซ้อนหลายขั้นตอน ดังนั้นจึงมีความจำเป็นต้องมีคู่มือปฏิบัติงาน เช่น คู่มือผู้ใช้ (User Manual) หรือคู่มือผู้ดูแลระบบ (Operation Manual) เป็นต้น
โปรแกรมคืออะไร
โปรแกรม (program) คือ ชุดคำสั่งสำหรับคอมพิวเตอร์ โดยคำสั่งแต่ละคำสั่งจะสั่งงานเฉพาะอย่างที่ไม่ซับซ้อน เมื่อนำมารวมกันเป็นโปรแกรมจะสั่งให้คอมพิวเตอร์ทำงานที่ซับซ้อนขึ้นได้
ตัวอย่างเช่น โปรแกรมอย่างง่ายอาจมีเพียงคำสั่งพิมพ์ข้อความ ซึ่งจะทำหน้าที่นำข้อความที่กำหนดให้ไปแสดงผลที่จอภาพ
โปรแกรมที่ซับซ้อนขึ้น เช่น โปรแกรมประมวลผลคำ (word processing) ที่ถูกสร้างขึ้นจากคำสั่งจำนวนมาก เพื่อทำให้ผู้ใช้สามารถสร้างและจัดรูปแบบเอกสารให้ได้ตามต้องการ
หลักการเขียนโปรแกรมเบื้องต้น
การเขียนโปรแกรมคอมพิวเตอร์ (อังกฤษ: Computer programming) หรือเรียกให้สั้นลงว่า การเขียนโปรแกรม (อังกฤษ: Programming) หรือ การเขียนโค้ด (Coding) เป็นขั้นตอนการเขียน ทดสอบ และดูแลซอร์สโค้ดของโปรแกรมคอมพิวเตอร์ ซึ่งซอร์สโค้ดนั้นจะเขียนด้วยภาษาโปรแกรม ขั้นตอนการเขียนโปรแกรมต้องการความรู้ในหลายด้านด้วยกัน เกี่ยวกับโปรแกรมที่ต้องการจะเขียน และขั้นตอนวิธีที่จะใช้ ซึ่งในวิศวกรรมซอฟต์แวร์นั้น การเขียนโปรแกรมถือเป็นเพียงขั้นหนึ่งในวงจรชีวิตของการพัฒนาซอฟต์แวร์
การเขียนโปรแกรมจะได้มาซึ่งซอร์สโค้ดของโปรแกรมนั้นๆ โดยปกติแล้วจะอยู่ในรูปแบบของข้อความธรรมดา ซึ่งไม่สามารถนำไปใช้งานได้ จะต้องผ่านการคอมไพล์ตัวซอร์สโค้ดนั้นให้เป็นภาษาเครื่อง (Machine Language) เสียก่อน จึงจะได้เป็นโปรแกรมที่พร้อมใช้งาน
คอมพิวเตอร์ เป็นอุปกรณ์ทางอิเล็กทรอนิกส์อย่างหนึ่ง ซึ่งไม่สามารถทำงานด้วยตนเองได้ แต่จะสามารถทำงานได้ตามชุดคำสั่งในโปรแกรมที่ป้อนเข้าสู่เครื่อง ซึ่งจะทำงานตามคำสั่งทีละคำสั่ง (Step by Step) โดยคำสั่งที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ จะต้องอยู่ในรูปแบบของภาษาเครื่อง (Machine Language) แต่ถ้ามีการเขียนด้วยภาษาอื่นที่ไม่ใช่ภาษาเครื่อง หรือที่เรียกว่า ภาษาชั้นสูง (High-level Language) ก็จะต้องมีตัวแปลภาษา เช่น คอมไพเลอร์ (Compiler) หรือ อินเตอร์พรีเตอร์ (Interpreter) ทำการแปลภาษาชั้นสูงนั้นให้เป็นภาษาเครื่องอีกทีหนึ่ง
ในการเขียนโปรแกรมหรือภาษาคอมพิวเตอร์นี้ โดยทั่วไปแล้วแต่ละภาษาจะมีหลักเกณฑ์ในการเขียนและการออกแบบโปรแกรมเหมือนกัน ซึ่งสามารถที่จะแบ่งขั้นตอนการเขียนโปรแกรมออกได้เป็น 7 ขั้นตอน ดังนี้
1. ขั้นตอนการวิเคราะห์ปัญหา (Analysis the Problem)
2. ขั้นตอนการออกแบบโปรแกรม (Design a Program)
3. ขั้นตอนการเขียนโปรแกรม (Coding)
4. ขั้นตอนการตรวจสอบข้อผิดพลาดของโปรแกรม (Testing and Debugging)
5. ขั้นตอนการทดสอบความถูกต้องของโปรแกรม (Testing and Validating)
6. ขั้นตอนการทำเอกสารประกอบโปรแกรม (Documentation)
7. ขั้นตอนการบำรุงรักษาโปรแกรม (Program Maintenance)
ขั้นตอนที่ 1 ขั้นตอนการวิเคราะห์ปัญหา (Analysis the problem)
ขั้นตอนนี้เป็นขั้นตอนแรกสุดที่นักเขียนโปรแกรมจะต้องทำก่อนที่จะลงมือเขียนโปรแกรมจริง ๆ เพื่อทำความเข้าใจกับปัญหาที่เกิดขึ้น และค้นหาจุดมุ่งหมายหรือสิ่งที่ต้องการ ในขั้นตอนนี้จะมีองค์ประกอบอยู่ 3 องค์ประกอบที่จะช่วยในการวิเคราะห์ปัญหา ได้แก่
1. การระบุข้อมูลเข้า (Input) ต้องรู้ว่ามีข้อมูลอะไรบ้างที่จะต้องป้อนเข้าสู่คอมพิวเตอร์พร้อมกับโปรแกรม เพื่อให้โปรแกรมทำการประมวลผลและออกผลลัพธ์
2. การระบุข้อมูลออก (Output) จะพิจารณาว่างานที่ทำมีเป้าหมายหรือวัตถุประสงค์อะไร ต้องการผลลัพธ์ที่มีรูปร่างหน้าตาเป็นอย่างไร โดยจะต้องคำนึงถึงผู้ใช้เป็นหลักในการออกแบบผลลัพธ์
3. กำหนดวิธีการประมวลผล (Process) ต้องรู้วิธีการประมวลผลเพื่อให้ได้ผลลัพธ์ตามที่ต้องการ
2. ขั้นตอนการออกแบบโปรแกรม (Design a Program)
หลังจากวิเคราะห์ปัญหาแล้ว ขั้นตอนถัดไปคือ การออกแบบโปรแกรม โดยใช้เครื่องมือมาช่วยในการออกแบบ ในขั้นตอนนี้ยังไม่ได้เป็นการเขียนโปรแกรมจริง ๆ แต่จะช่วยให้การเขียนโปรแกรมทำได้ง่ายขึ้น โดยสามารถเขียนตามขั้นตอนที่ได้ออกแบบไว้ในขั้นตอนนี้ และช่วยให้การเขียนโปรแกรมมีข้อผิดพลาดน้อยลง ช่วยตรวจสอบการทำงานของโปรแกรม ทำให้ทราบขั้นตอนการทำงานของโปรแกรมได้อย่างรวดเร็ว โดยไม่ต้องไปไล่ดูจากตัวโปรแกรมจริง ๆ ซึ่งถ้าเปรียบเทียบการเขียนโปรแกรมเหมือนกับการสร้างบ้านแล้ว ในขั้นตอนการออกแบบโปรแกรมนี้ ก็เปรียบเหมือนการสร้างแปลนบ้านลงในกระดาษไว้ ซึ่งในการสร้างบ้านจริง ก็จะอาศัยแปลนบ้านนี้เป็นต้นแบบในการสร้างนั่นเอง
ในขั้นตอนการออกแบบโปรแกรมนี้ เป็นการออกแบบการทำงานของโปรแกรม หรือขั้นตอนในการแก้ปัญหา ซึ่งผู้ออกแบบสามารถเลือกใช้เครื่องมือมาช่วยในการออกแบบได้ โดยเครื่องมือที่ใช้ในการออกแบบโปรแกรมมีอยู่หลายอย่าง ซึ่งวิธีการซึ่งเป็นที่นิยมสำหรับใช้ในการออกแบบโปรแกรม เช่น
อัลกอริทึม (Algorithm)
ผังงาน (Flowchart)
รหัสจำลอง (Pseudo-code)
แผนภูมิโครงสร้าง (Structure Chart)
อัลกอริทึม เป็นเครื่องมือที่ช่วยในการออกแบบโปรแกรม โดยใช้ข้อความที่เป็นภาษาพูดในการอธิบายการทำงานของโปรแกรมที่เป็นลำดับขั้นตอน จะข้ามไปข้ามมาไม่ได้ นอกจากจะต้องเขียนสั่งไว้ต่างหาก ตัวอย่างอัลกอริทึมง่าย ๆ ที่พบเห็นในชีวิตประจำวัน ได้แก่ อัลกอริทึมการสระผม
เริ่มจากการทำผมให้เปียกโดยการราดน้ำ เมื่อผมเปียกแล้วจึงใส่แชมพูสระผมลงบนศีรษะ แล้วขยี้ให้มีฟองเกิดขึ้น หลังจากนั้นก็ล้างออกด้วยน้ำ แล้วเริ่มทำใหม่อีกครั้ง
ในการเขียนอัลกอริทึมนี้ แม้จะมีความชัดเจนอยู่ในตัวแล้ว แต่ก็มีจุดอ่อนอยู่ที่ ข้อความอธิบายค่อนข้างเยิ่นเย้อ และถ้าผู้เขียนใช้สำนวนที่อ่านยาก ก็อาจทำให้ผู้อ่านไม่เข้าใจขั้นตอนการทำงานของโปรแกรมได้ ดังนั้น จึงมีการคิดค้นเครื่องมืออื่นที่ช่วยในการออกแบบโปรแกรมแทนอัลกอริทึม ได้แก่ ผังงาน รหัสจำลอง แผนภูมิโครงสร้าง
ผังงาน เป็นเครื่องมือที่ช่วยในการออกแบบโปรแกรม โดยใช้สัญลักษณ์รูปภาพ แสดง ขั้นตอนการเขียนโปรแกรม หรือขั้นตอนในการแก้ปัญหาทีละขั้น และมีเส้นที่แสดงทิศทางการไหลของข้อมูล ตั้งแต่จุดเริ่มต้นจนกระทั่งได้ผลลัพธ์ตามที่ต้องการ ซึ่งจะทำให้ผู้อ่านสามารถอ่านและทำความเข้าใจได้โดยง่าย
รหัสจำลอง จะมีการใช้ข้อความที่เป็นภาษาอังกฤษหรือภาษาไทยก็ได้ ในการแสดงขั้นตอนการแก้ปัญหา แต่จะมีการใช้คำเฉพาะ (Reserve words) ที่มีอยู่ในภาษาโปรแกรม มาช่วยในการเขียน โครงสร้างของรหัสจำลองจึงมีส่วนที่คล้ายกับการเขียนโปรแกรมมาก ดังนั้น รหัสจำลองจึงเป็นเครื่องมืออีกแบบที่เป็นที่นิยมใช้กันมากในการออกแบบโปรแกรม
แผนภูมิโครงสร้าง การใช้แผนภูมิโครงสร้าง จะเป็นการแบ่งงานใหญ่ออกเป็นโมดูลย่อย ๆ ซึ่งเรียกว่า การออกแบบจากบนลงล่าง (Top-Down Design) แต่ละโมดูลย่อยก็ยังสามารถแตกออกได้อีกจนถึงระดับล่างสุดที่สามารถเขียนโปรแกรมได้อย่างง่าย
3. ขั้นตอนการเขียนโปรแกรม (Coding)
ในขั้นตอนนี้ จะเป็นการนำเครื่องมือที่ถูกสร้างขึ้นจากขั้นตอนการออกแบบมาแปลให้เป็นโปรแกรมคอมพิวเตอร์ ซึ่งในการสร้างโปรแกรมคอมพิวเตอร์นั้น เราสามารถเลือกใช้ภาษาได้หลายภาษา ตั้งแต่ภาษาระดับต่ำ เช่น
ภาษาแอสเซมบลี จนถึงภาษาระดับสูง เช่น ภาษาเบสิก ภาษาโคบอล ภาษาปาสคาล ภาษาซี ภาษาPhp หรือภาษาPython ซึ่งแต่ละภาษาจะมีรูปแบบ โครงสร้าง หรือไวยากรณ์ของภาษาที่แตกต่างกันออกไปดังนั้น การเขียนโปรแกรมที่ดีนั้น ควรจะต้องทำตามขั้นตอนคือ เริ่มตั้งแต่วิเคราะห์ปัญหาให้ได้ก่อน แล้วทำการออกแบบโปรแกรมจึงจะเริ่มเขียนโปรแกรม ซึ่งในการเขียนโปรแกรมนั้น สำหรับผู้ที่ยังไม่มีประสบการณ์การเขียนโปรแกรมเพียงพอ ก็ควรจะทดลองเขียนลงในกระดาษก่อน แล้วตรวจสอบจนแน่ใจว่าสามารถทำงานได้แล้ว จึงทำการป้อนเข้าสู่เครื่องคอมพิวเตอร์ เพื่อเป็นการประหยัดเวลาและทำให้สามารถทำงานได้เร็วขึ้น
4. ขั้นตอนการตรวจสอบข้อผิดพลาดของโปรแกรม (Testing and Debugging)
หลังจากที่ทำการเขียนโปรแกรมเสร็จสิ้นแล้ว โปรแกรมนั้นจะต้องได้รับการตรวจสอบก่อนว่า มีข้อผิดพลาด (error) ในโปรแกรมหรือไม่ ซึ่งอาจเกิดจากการเขียนโปรแกรมที่ผิดหลักไวยากรณ์ของภาษาเป็นต้น โดยทั่วไปจะมีวิธีที่จะตรวจสอบข้อผิดพลาดของโปรแกรม 2 ขั้นตอน ดังนี้
1. ตรวจสอบด้วยตนเอง (Self Checking) เป็นการทดลองเขียนโปรแกรมลงบนกระดาษ แล้วใส่ตรวจสอบการทำงานของโปรแกรมทีละขั้นด้วยตนเอง ว่าโปรแกรมมีการทำงานที่ถูกต้อง ได้ผลลัพธ์ตรงตามความเป็นจริงหรือไม่
2. ตรวจสอบด้วยการแปลภาษา (Translating) หลังจากที่เขียนโปรแกรมเสร็ข และมีการตรวจสอบด้วยตนเองเรียบร้อยแล้ว ก็จะป้อนโปรแกรมเข้าสู่เครื่องคอมพิวเตอร์เพื่อทำการแปลโปรแกรม โดยจะต้องเรียกใช้ตัวแปลภาษาโปรแกรม ที่เรียกว่า คอมไพเลอร์ (Compiler) หรือ อินเตอร์พรีเตอร์ (Interpreter) อย่างใดอย่างหนึ่ง ทำการแปลภาษาโปรแกรมให้เป็นภาษาเครื่อง การแปลนี้จะเป็นการตรวจสอบความผิดพลาดของโปรแกรมด้วย ซึ่งถ้ามีข้อผิดพลาดใด ๆ เครื่องคอมพิวเตอร์จะแจ้งให้ทราบทางหน้าจอ
หลังจากที่ทำการเขียนโปรแกรมเสร็จแล้ว เวลา 50 - 70% ของเวลาในการพัฒนาโปรแกรม จะถูกใช้ไปในการหาข้อผิดพลาดของโปรแกรมและการแก้ไขข้อผิดพลาดนั้น
5. ขั้นตอนการทดสอบความถูกต้องของโปรแกรม (Testing and Validating)
ในบางครั้ง โปรแกรมอาจผ่านการแปล โดยไม่มีข้อผิดพลาดใด ๆ แจ้งออกมา แต่เมื่อนำโปรแกรมนั้นไปใช้งาน ปรากฏว่าได้ผลลัพธ์ที่ไม่เป็นจริง เนื่องจากอาจเกิดข้อผิดพลาดขึ้นได้ ดังนั้นจึงควรจะต้องมีขั้นตอนการทดสอบความถูกต้องของโปรแกรมอีกทีด้วยในการทดสอบความถูกต้องของข้อมูล จะมีอยู่หลายวิธี ดังต่อไปนี้
1. การใส่ข้อมูลที่ถูกต้อง (Valid Case) เป็นการทดสอบโปรแกรมเมื่อมีการรันโปรแกรม ให้ทำการใส่ข้อมูลที่ถูกต้องลงไปในโปรแกรม และดูว่าผลลัพธ์ที่ได้จากโปรแกรม ถูกต้องตามความเป็นจริงหรือตรงตามที่ต้องการหรือไม่
2. การใช้ขอบเขตและความถูกต้องของข้อมูลเป็นการทดสอบ โดยตรวจสอบขอบเขตของข้อมูลที่ป้อนเข้าสู่โปรแกรม เช่น ถ้าโปรแกรมให้มีการป้อนวันที่ ก็จะต้องตรวจสอบว่า วันที่ที่ป้อนจะต้องไม่เกินวันที่ 31 ถ้าผู้ใช้ป้อนวันที่ที่เป็นเลข 32 โปรแกรมจะต้องไม่ยอมให้ป้อนวันที่นี้ได้
3. การใช้ความสมเหตุสมผล ตัวอย่างเช่น ถ้าโปรแกรมมีการออกแบบให้ผู้ใช้ป้อนข้อมูลลงไปในฟอร์มที่มีข้อมูลที่เป็นเพศ (หญิง หรือ ชาย) และรายละเอียดส่วนตัวของคน ๆ นั้น เช่นเพศ วันลาคลอดชาย ต้องไม่มี (ห้ามใส่)หญิง อาจมีหรือไม่มีก็ได้
4. ข้อมูลที่เป็นตัวเลขและตัวอักษร เป็นการตรวจสอบว่า ถ้าโปรแกรมให้ผู้ใช้ป้อนข้อมูลในฟิลด์ที่ต้องรับข้อมูลที่เป็นตัวเลข อย่างเช่น ฟิลด์ที่เป็นจำนวนเงิน ก็ควรจะยอมให้ผู้ใช้ป้อนข้อมูลได้เฉพาะตัวเลขเท่านั้น ไม่อนุญาตให้ใส่ตัวอักษรในฟิลด์นั้นได้ หรือถ้าเป็นฟิลด์ที่รับข้อมูลที่เป็นตัวอักษร เช่น ฟิลด์ชื่อ-นามสกุล ก็จะป้อนข้อมูลได้เฉพาะตัวอักษรเท่านั้น จะป้อนตัวเลขไม่ได้
5. ข้อมูลเป็นไปตามข้อกำหนด ข้อมูลที่ป้อนในฟิลด์ ต้องเป็นไปตามที่กำหนดไว้แน่นอนแล้วเท่านั้น เช่น กำหนดให้ฟิลด์นี้ป้อนข้อมูลได้เฉพาะตัวเลขที่อยู่ในกลุ่ม 1,2,5,7 ได้เท่านั้น จะป้อนเป็นตัวเลขอื่นที่ไม่อยู่ในกลุ่มนี้ ไม่ได้
6. ขั้นตอนการทำเอกสารประกอบโปรแกรม (Documentation)
การทำเอกสารประกอบโปรแกรม คือ การอธิบายรายละเอียดของโปรแกรมว่า จุดประสงค์ของโปรแกรมคืออะไร สามารถทำงานอะไรได้บ้าง และมีขั้นตอนการทำงานของโปรแกรมเป็นอย่างไร เครื่องมือที่ช่วยในการออกแบบโปรแกรมเช่น ผังงาน หรือรหัสจำลอง ก็สามารถนำมาประกอบกันเป็นเอกสารประกอบโปรแกรมได้โปรแกรมเมอร์ที่ดี ควรมีการทำเอกสารประกอบโปรแกรม ทุกขั้นตอนของการพัฒนาโปรแกรม ไม่ว่าจะเป็นขั้นตอนการออกแบบ การเขียนโปรแกรม หรือขั้นตอนการทดสอบโปรแกรม ซึ่งการทำเอกสารนี้จะมีประโยชน์อย่างมากต่อหน่วยงาน เนื่องจากบางครั้งอาจต้องการเปลี่ยนแปลงแก้ไขโปรแกรมที่ได้มีการทำเสร็จไปนานแล้ว เพื่อให้ตรงกับความต้องการที่เปลี่ยนไป จะทำให้เข้าใจโปรแกรมได้ง่ายขึ้นและจะเป็นการสะดวกต่อผู้ที่ต้องเข้ามารับช่วงงานต่อทีหลังเอกสารประกอบโปรแกรม โดยทั่วไปจะมีอยู่ด้วยกัน 2 แบบคือ
1. เอกสารประกอบโปรแกรมสำหรับผู้ใช้ (User Documentation)
จะเหมาะสำหรับผู้ใช้ที่ไม่ต้องเกี่ยวข้องกับการพัฒนาโปรแกรม แต่เป็นผู้ที่ใช้งานโปรแกรมอย่างเดียว จะเน้นการอธิบายเกี่ยวกับการใช้งานโปรแกรมเป็นหลัก ตัวอย่างเช่น
โปรแกรมนี้ทำอะไร ใช้งานในด้านไหน
ข้อมูลเข้า มีลักษณะอย่างไร
ข้อมูลออกหรือผลลัพธ์มีลักษณะอย่างไร
การเรียกใช้โปรแกรม ทำอย่างไร
คำสั่งหรือข้อมูลที่จำเป็นให้โปรแกรมเริ่มทำงาน มีอะไรบ้าง
อธิบายเกี่ยวกับประสิทธิภาพ และความสามารถของโปรแกรม
2. เอกสารประกอบโปรแกรมสำหรับผู้เขียนโปรแกรม (Technical Documentation)
จะได้ออกได้เป็น 2 ส่วน
1) ส่วนที่เป็นคำอธิบายหรือหมายเหตุในโปรแกรม หรือเรียกอีกอย่างหนึ่งว่า คอมเมนท์ (Comment) ซึ่งส่วนใหญ่มักจะเขียนแทรกอยู่ในโปรแกรม อธิบายการทำงานของโปรแกรมเป็นส่วน ๆ
2) ส่วนอธิบายด้านเทคนิค ซึ่งส่วนนี้มักจะทำเป็นเอกสารแยกต่างหากจากโปรแกรม จะอธิบายในรายละเอียดที่มากขึ้น เช่น ชื่อโปรแกรมย่อยต่าง ๆ มีอะไรบ้าง แต่ละโปรแกรมย่อยทำหน้าที่อะไร และคำอธิบายย่อ ๆ เกี่ยวกับวัตถุประสงค์ของโปรแกรม
7. ขั้นตอนการบำรุงรักษาโปรแกรม (Program Maintenance)
เมื่อโปรแกรมผ่านการตรวจสอบตามขั้นตอนเรียบร้อยแล้ว และถูกนำมาให้ผู้ใช้ได้ใช้งาน ในช่วงแรกผู้ใช้อาจจะยังไม่คุ้นเคยก็อาจทำให้เกิดปัญหาขึ้นมาบ้าง ดังนั้นจึงต้องมีผู้คอยควบคุมดูแล และตรวจสอบการทำงาน การบำรุงรักษาโปรแกรมจึงเป็นขั้นตอนที่ผู้เขียนโปรแกรมต้องคอยเฝ้าดูแลและหาข้อผิดพลาดของโปรแกรมในระหว่างที่ผู้ใช้ใช้งานโปรแกรมและปรับปรุงแก้ไขโปรแกรมเมื่อเกิดข้อผิดพลาดขึ้น หรือในการใช้งานโปรแกรมไปนาน ๆ ผู้ใช้อาจต้องการเปลี่ยนแปลงการทำงานของระบบเดิมเพื่อให้เหมาะกับเหตุการณ์ เช่น ต้องการเปลี่ยนแปลงหน้าตาของรายงาน มีการเพิ่มเติมข้อมูลหรือลบข้อมูลเดิม นักเขียนโปรแกรมก็จะต้องคอยปรับปรุง แก้ไขโปรแกรมตามความต้องการของผู้ใช้ที่เปลี่ยนแปลงไปนั้น
คุณสมบัติของนักเขียนโปรแกรมที่ดี
นักเขียนโปรแกรมหรือเรียกอีกอย่างหนึ่งว่า โปรแกรมเมอร์ นั้น ควรจะมีคุณสมบัติดังต่อไปนี้ จึงจะเรียกได้ว่าเป็นโปรแกรมเมอร์ที่ดี
รักและชอบในการเขียนโปรแกรม
มีความคิดริเริ่มสร้างสรรค์ และไฝ่ที่จะเรียนรู้
มีความอดทนต่อการเขียนโปรแกรม ซึ่งบางครั้งอาจต้องใช้เวลานานในการเขียนโปรแกรม
ต้องรู้จักการทำงานเป็นทีมหรือเป็นกลุ่มคณะ ซึ่งการพัฒนาโปรแกรมที่ใหญ่ ๆ อาจต้องมีการทำงานกันเป็นทีม ต้องมีการแบ่งงานกันทำเป็นส่วน ๆ แล้วจึงจะนำมารวมกันทีหลัง ผลงานที่ออกมาจะต้องเป็นผลงานส่วนรวมของทั้งทีม ไม่ใช่ของคนใดคนหนึ่ง ดังนั้นจึงต้องรู้จักการถ่ายทอดความรู้ ความคิดเห็นให้แก่คนในทีมงานเดียวกัน
ต้องหมั่นทำเอกสารประกอบโปรแกรมไว้ตลอด เพื่อให้ง่ายต่อการพัฒนาต่อไปในภายหลัง
กิจกรรมที่ 1.1
ถามตอบ ควรรู้
1. การเขียนโปรแกรมคอมพิวเตอร์เรียกอีกอย่างว่าอะไร
ตอบ
2. ขั้นตอนการพัฒนาโปรแกรมมีกี่ขั้นตอน อะไรบ้าง
ตอบ
3. ประเภทของโปรแกรมคอมพิวเตอร์มีกี่ประเภท อะไรบ้าง
ตอบ
4. ซอฟต์ระบบหมายถึง
ตอบ
5. os คืออะไร
ตอบ
6. unix หมายถึงอะไร
ตอบ
7. linux เป็นระบบปฏิบัติการเหมือนกับปฏิบัติการใดบ้าง
ตอบ
8. ซอฟต์แวร์ประยุกต์หมายถึง
ตอบ
9. ซอฟต์แวร์ประยุกต์มีกี่ประเภทอะไรบ้าง
ตอบ
10. package คืออะไร
ตอบ