ความรู้เบื้องต้นเกี่ยวกับซอฟต์แวร์คอมพิวเตอร์
เครื่องคอมพิวเตอร์เป็นอุปกรณ์ที่ช่วยให้การทำงานของคนทำงานได้ด้วยความรวดเร็วและมีประสิทธิภาพ ซึ่งถ้าหากเครื่องคอมพิวเตอร์นั้นมีเพียงเฉพาะตัวอุปกรณ์หรือฮาร์ดแวร์อยู่เพียงอย่างเดียวก็ไม่สามารถทำงานได้เป็นได้เพียงวัตถุชิ้นหนึ่งเท่านั้น การที่จะทำให้เครื่องคอมพิวเตอร์สามารถทำงานได้นั้น จำเป็นต้องอาศัยซอฟต์แวร์ในการสั่งให้อุปกรณ์ฮาร์ดแวร์ทำงานได้ตามความต้องการของผู้ใช้งาน สำหรับในที่นี่จะกล่าวถึงการแบ่งประเภทของซอฟต์แวร์ ลักษณะย่อยของซอฟต์แวร์แต่ละประเภท การจำแนกประเภทของซอฟต์แวร์ตามลักษณะการใช้งาน และการพิจารณาซอฟต์แวร์ตามหลักของลิขสิทธิ์
ซอฟต์แวร์ (Software)
ซอฟต์แวร์ (Software) หมายถึง ชุดคำสั่งที่เขียนขึ้นด้วยภาษาของคอมพิวเตอร์ ใช้คำสั่งคอมพิวเตอร์ทำงานตามความต้องการของผู้ใช้คอมพิวเตอร์ และควบคุมการทำงานของอุปกรณ์คอมพิวเตอร์ต่างๆ กล่าวได้ว่า ซอฟต์แวร์ดเป็นสิ่งที่ผู้ใช้มองไม่เห็นและสัมผัสไม่ได้ แต่สามารถรับรู้การทำงานได้ แตกต่างจากฮาร์ดแวร์ (Hardware) ที่สามารถมองเห็นและสัมผัสได้ ซึ่งชุดคำสั่งที่สั่งให้คอมพิวเตอร์ทำงานอย่างใดอย่างหนึ่ง นั้นเรียกว่า โปรแกรม เช่นโปรแกรมไมโครซอฟต์เวิร์ด (Microsoft Word) โปรแกรมอินเตอร์เน็ตเอ็กพลอเรอร์ (Internet Explorer) เป็นต้น ซอฟต์แวร์สามารถแบ่งออกได้เป็น 2 ประเภท ได้แก่ ซอฟต์แวร์ระบบ (System Software) เป็นโปรแกรมที่ทำหน้าที่จัดการกับระบบคอมพิวเตอร์ และซอฟต์แวร์ประยุกต์ (Applixction Software) เป็นโปรแกรมที่ทำให้เครื่องคอมพิวเตอร์ทำงาน เฉพาะอย่างตามความต้องการของผู้ใช้
ชนิดของซอฟต์แวร์
ประเภทของซอฟต์แวร์คอมพิวเตอร์ ซอฟต์แวร์คอมพิวเตอร์เป็นชุดคำสั่งที่บุคคลพัฒนาขึ้นเพื่อสั่งการให้อุปกรณ์คอมพิวเตอร์ทำงาน สำหรับการจำแนกตามลักษณะเป้าหมายในการใช้งานหลักๆ แล้ว สามารถจำแนกออกได้เป็น 2 ลักษณะที่สำคัญ ได้แก่
1. ซอฟต์แวร์ระบบ (System Software) หมายถึง ซอฟต์แวร์ที่ทำหน้าที่ติดต่อประสานงานในการควบคุมการทำงานของเครื่องคอมพิวเตอร์ และสนับสนุนให้เครื่องคอมพิวเตอร์สามารถทำงานได้อย่างมีประสิทธิภาพ
2. ซอฟต์แวร์ประยุกต์ (Application Software) หมายถึง ซอฟต์แวร์ที่ทำหน้าที่ทำงาน ตามที่บุคคลต้องการจริง เช่น การพิมพ์งาน การตัดแต่งภาพ เป็นต้น
ซอฟต์แวร์คอมพิวเตอร์ (Computer Software)
ความหมายของซอฟต์แวร์
ซอฟต์แวร์ (Software) หมายถึง ส่วนที่มนุษย์สัมผัสไม่ได้โดยตรง (นามธรรม) เป็นโปรแกรมหรือชุดคำสั่งที่เขียนขึ้นอย่างมีลำดับขั้นตอน เพื่อควบคุมการทำงานของเครื่องคอมพิวเตอร์ ซอฟต์แวร์จึงเป็นเหมือนตัวเชื่อมระหว่างผู้ใช้คอมพิวเตอร์และเครื่องคอมพิวเตอร์ ถ้าไม่มีซอฟต์แวร์เราก็ไม่สามารถใช้เครื่องคอมพิวเตอร์ทำอะไรได้เลย
ประเภทของซอฟต์แวร์
ซอฟต์แวร์ระบบ (System Software)
เขียนขึ้นเพื่อควบคุมการทำงานของเครื่องคอมพิวเตอร์ให้ประสานกันและควบคุมลำดับขั้นตอนการทำงานของระบบต่างๆ ได้แก่
1. โปรแกรมระบบปฏิบัติการ (Operating System Program) มีหน้าที่
– จองและกำหนดการใช้ทรัพยากรคอมพิวเตอร์
– จัดตารางงาน
– ติดตามผลระบบ
– ทำงานหลายโปรแกรมพร้อมกัน
– การจัดแบ่งเวลา
– ประมวลผลหลายชุดพร้อมกัน
ประเภทของโปรแกรมระบบปฏิบัติการ
1. โปรแกรมที่ทำงานด้านควบคุม (Control Programs) หมายถึง โปรแกรมที่ใช้ควบคุมการทำงานของเครื่องคอมพิวเตอร์และอุปกรณ์ที่เกี่ยวข้อง ได้แก่ supervisor และ โปรแกรมควบคุมงานด้านอื่นๆ
2. ระบบปฏิบัติการของไมโครคอมพิวเตอร์ (Microcomputer Operating System) จะมีลักษณะเฉพาะโดยขึ้นอยู่กับระบบปฏิบัติการและฮาร์ดแวร์ ซึ่งจะไม่สามารถใช้งานข้ามระบบปฏิบัติการได้ โดยระบบปฏิบัติการที่ใช่กับเครื่องคอมพิวเตอร์ ได้แก่ MS-DOS, Windows 3.X, Window 95, Window 98, Window Millennian Edition, Window NT, Window 2000 Professional/Standard, Window XP, Mac OS, OS/2 Warp Client, Unix, Linux, Solaris
3. ระบบปฏิบัติการตามลักษณะการทำงาน ได้แก่ ระบบปฏิบัติการสำหรับคอมพิวเตอร์แบบ Stand-Alone, ระบบปฏิบัติการแบบฝัง, ระบบปฏิบัติการเครือข่าย, ระบบปฏิบัติการบนเครื่องคอมพิวเตอร์ขนาดใหญ่, ระบบปฏิบัติการแบบเปิด
2. โปรแกรมอรรถประโยชน์ (Utilities Program) เป็นโปรแกรมระบบอีกประเภทหนึ่งที่อำนวยความสะดวกให้ผู้ใช้เครื่องคอมพิวเตอร์ในระหว่างการประมวลผลข้อมูลหรือในระหว่างที่กำลังใช้เครื่องคอมพิวเตอร์ซึ่งโดยปกติแล้วโปรแกรมอรรถประโยชน์จะทำงานร่วมกับโปรแกรมระบบปฏิบัติการ เพื่อช่วยแบ่งเบาภาระหน้าที่ของโปรแกรมระบบปฏิบัติการในการควบคุมการทำงานของอุปกรณ์ต่างๆ ของเครื่องคอมพิวเตอร์ เช่น โปรแกรมที่ทำหน้าที่จัดเตรียมเนื้อที่ในดิสก์ ทำให้สามารถบันทึกข้อมูลลงบนดิสก์ได้ หรือโปรแกรมที่อำนวยความสะดวก ในการทำสำเนาข้อมูลของโปรแกรมที่ต้องการเพื่อนำไปใช้ในที่ต่างๆ ได้หรือช่วยให้ผู้ใช้สามารถเขียนโปรแกรม สร้างแฟ้มข้อมูล หรือข้อความต่างๆ ลงในเครื่องคอมพิวเตอร์ได้เป็นต้น ตัวอย่างของโปรแกรมอรรถประโยชน์ที่นิยมใช้กันได้แก่ โปรแกรม Sidekick, PC-Tool หรือ Norton Utility เป็นต้น
3. โปรแกรมแปลภาษา ( Translator) เป็นโปรแกรมซึ่งมักเขียนขึ้นมา โดยบริษัทผู้ผลิตคอมพิวเตอร์ หรือบริษัทผู้ผลิตซอฟต์แวร์คอมพิวเตอร์ เพื่อใช้ในการแปลความหมายของคำสั่งในภาษาคอมพิวเตอร์ให้อยู่ในรูปที่เครื่องคอมพิวเตอร์เข้าใจและทำงานตามที่ผู้ใช้ต้องการโปรแกรมที่เขียนด้วยภาษาคอมพิวเตอร์ได้แก่ ภาษาเบสิก ภาษาโคบอล ภาษาปาสคาล หรือภาษาซี เป็นต้น โปรแกรมภาษาคอมพิวเตอร์เหล่านี้จะต้องใช้โปรแกรมแปลภาษาเพื่อทำการแปลคำสั่งในภาษาเหล่านี้ให้เป็นภาษาเครื่องเสียก่อน ซึ่งภาษาเครื่องเป็นภาษาเดียวที่คอมพิวเตอร์เข้าใจ และสามารถทำงานได้ โปรแกรมแปลภาษาที่ใช้กันในปัจจุบัน แบ่งออกได้เป็น 2 แบบ คือ
1.คอมไพเลอร์ (Compiler) เป็นโปรแกรมแปลภาษาที่เขียนด้วยภาษาระดับสูง หรือซอร์สโปรแกรมให้เป็นโปรแกรมภาษาเครื่อง หรือออบเจ็กต์โปรแกรมในครั้งเดียว ในระหว่างการแปลให้เป็นภาษาเครื่องนั้นคอมไพเลอร์จะตรวจสอบความถูกต้องของการใช้คำสั่งแต่ละคำสั่งในภาษานั้นๆ ว่าถูกต้องตามกฎเกณฑ์ หลักไวยากรณ์ของภาษานั้นๆ หรือไม่ นอกจากนี้คอมไพเลอร์จะแปลคำสั่งนั้นให้เป็นคำสั่งภาษาเครื่องได้ ถ้าพบว่ามีการใช้คำสั่งไม่ถูกต้องตามกฎเกณฑ์ของคำสั่งนั้น (Syntax Error) คอมไพเลอร์ก็จะแจ้งข่าวสารข้อความ (Error Message) ให้ผู้เขียนโปรแกรมทราบถึงข้อผิดพลาดในคำสั่ง ดังนั้นผู้เขียนโปรแกรมจะต้องแก้ไขข้อผิดพลาดต่างๆ ของโปรแกรมให้ถูกต้องตามกฎเกณฑ์ของภาษาคอมพิวเตอร์ที่เลือกใช้เสียก่อน และจะต้องทำการแปลโปรแกรมดังกล่าวทั้งโปรแกรมใหม่จนกว่าจะไม่มีข้อผิดพลาด จึงได้โปรแกรมภาษาเครื่องที่สมบูรณ์และพร้อมที่จะทำการประมวลผลต่อไปได้
2. อินเตอร์พรีเตอร์ (Interpreter) เป็นโปรแกรมแปลภาษาอีกประเภทหนึ่งที่จะแปลคำสั่งที่เขียนด้วยภาษาระดับสูงครั้งละ 1 คำสั่ง ให้เป็นภาษาเครื่องแล้วนำคำสั่ง ที่เป็นภาษาเครื่องนั้นไปทำการประมวลผลทันที หลังจากนั้นก็จะรับคำสั่งถัดไปในโปรแกรมเพื่อแปลเป็นคำสั่งภาษาเครื่อง แล้วทำการประมวลผล ทำเช่นนี้เรื่อยไปจนกว่าจะจบโปรแกรม ในระหว่างการแปลถ้าหากพบข้อผิดพลาดทางด้าน กฎเกณฑ์ของภาษาในคำสั่งที่รับมาแปล อินเตอร์พรีเตอร์ก็จะหยุดการทำงาน พร้อมทั้งแจ้งข้อผิดพลาด (Error Message) นั้นๆ ให้ผู้เขียนโปรแกรมทราบ เพื่อทำการแก้ไขให้ถูกต้อง การแปลโปรแกรมด้วยอินเตอร์พรีเตอร์ ส่วนใหญ่ไม่มีการเก็บออบเจ็กต์โปรแกรมไว้เหมือนกับคอมไพเลอร์ ดังนั้นเมื่อต้องการใช้งานโปรแกรมนั้นซ้ำอีก จำเป็นต้องทำการแปลคำสั่งใน โปรแกรมนั้นใหม่ทุกครั้ง คอมไพเลอร์จะทำการแปลโปรแกรมภาษาระดับสูงทั้งโปรแกรมให้เป็นภาษาเครื่อง หรือออบเจ็กต์โปรแกรมในครั้งเดียว ในการแปลนี้คอมไพเลอร์จะตรวจสอบความผิดพลาดต่างๆ ของโปรแกรมให้ด้วย และจะยอมให้ออบเจ็กต์ (Object Program) ทำงานก็ต่อเมื่อโปรแกรมได้รับการแก้ไขจนไม่มีที่ผิดแล้วอินเตอร์พรีเตอร์จะทำการแปลโปรแกรมภาษาระดับสูงเป็นภาษาเครื่อง โดยแปลทีละคำสั่งแล้วทำงานตามคำสั่งนั้นทันทีและจะหยุดการทำงานเมื่อสิ้นสุดโปรแกรม หรือเมื่ออินเตอร์พรีเตอร์พบข้อผิดพลาดในคำสั่งที่แปลนั้นๆ อินเตอร์พรีเตอร์จะไม่สร้างออบเจ็กต์โปรแกรมขึ้นมา
ซอฟต์แวร์ประยุกต์ (Application Software)
เป็นซอฟต์แวร์หรือโปรแกรมที่สร้างขึ้น เพื่อทำงานเฉพาะอย่างโดยประยุกต์ใช้ในงานด้านต่างๆ เช่น ซอฟต์แวร์คำนวณเงินเดือนพนักงาน ซอฟต์แวร์ระบบบัญชีหรือซอฟต์แวร์ระบบคลังสินค้า เป็นต้น โดยซอฟต์แวร์ประยุกต์แบ่งออกเป็น 2 ประเภทคือ
1. ซอฟต์แวร์ประยุกต์ที่ผู้ใช้พัฒนาขึ้นเอง (Customized Application Software) เป็นซอฟต์แวร์ที่ผู้ใช้มีความต้องการให้เครื่องคอมพิวเตอร์ทำงานบางอย่างให้ ซึ่งเป็นงานที่ไม่เคยมีผู้ใดพัฒนาโปรแกรมสำหรับทำงานลักษณะนี้มาก่อน ผู้ใช้จึงต้องพัฒนาโปรแกรมนี้ขึ้นมาเอง
2. ซอฟต์แวร์ประยุกต์แบบสำเร็จ (Package Application Software) เป็นซอฟต์แวร์ที่เขียนขึ้นเพื่อใช้ประมวลผลงานลักษณะใดลักษณะหนึ่งซึ่งมีผู้พัฒนาไว้เรียบร้อยแล้ว ผู้ที่ต้องการใช้ซอฟต์แวร์ในลักษณะเดียวกันนี้เพียงแต่ไปซื้อหามาใช้งานได้ทันที โดยไม่ต้องพัฒนาซอฟต์แวร์เพื่อใช้เอง เราสามารถแบ่งซอฟต์แวร์สำเร็จรูปออกเป็นประเภทต่างๆ ดังนี้
2.1 โปรแกรมสำเร็จรูปเพื่อการใช้งานด้านการพิมพ์เอกสาร (Word Processing Software)
2.2 โปรแกรมสำเร็จรูปเพื่อการใช้งานด้านการคำนวณ (Spreadsheet Software)
2.3 โปรแกรมสำเร็จรูปเพื่อใช้จัดการฐานข้อมูล (Database Management Software)
2.4 โปรแกรมสำเร็จรูปเพื่อการใช้งานด้านการพิมพ์ตั้งโต๊ะ (Desktop Publishing Software)
2.5 โปรแกรมสำเร็จรูปเพื่อการใช้งานด้านกราฟฟิก (Graphic Software)
2.6 โปรแกรมสำเร็จรูปเพื่อการใช้งานประมวลผลทางสถิติ (Statistical Software)
2.7 โปรแกรมสำเร็จรูปสำหรับงานธุรกิจ (Business Software)
ประเภทของโปรแกรมภาษา
1. ภาษาเครื่อง (Machine Language) เป็นภาษาของเครื่องคอมพิวเตอร์โดยมีโครงสร้างและพื้นฐานเป็นเลขฐาน 2 และตัวสตริง (Strigs) ซึ่งเครื่องสามารถเข้าใจและพร้อมที่จะทำตามคำสั่งได้ทันที ไม่จำเป็นต้องมีโปรแกรมแปลภาษา ประกอบด้วย 2 ส่วนสำคัญ คือ
– ส่วนที่บอกประเภทของคำสั่ง (Operation Code หรือ Op-Code) เป็นส่วนที่จะบอกให้เครื่องประมวลผล เช่น ให้ทำการ บวก ลบ คูณ หาร หรือเปรียบเทียบ เป็นต้น
– ส่วนที่บอกตำแหน่งของข้อมูล (Operand) เป็นส่วนที่บอกให้ทราบถึงตำแหน่งหน่วยของข้อมูลที่จะนำมาคำนวณว่าอยู่ในตำแหน่งใดของหน่วยความจำ
2. ภาษาที่ใช้สัญลักษณ์ (Symbolic Language) ได้ปรับปรุงให้ง่ายขึ้นโดยสร้างรหัส (Mnemonic Code) และสัญลักษณ์ (Symbol) แทนตัวเลขซึ่งเรียกชื่อภาษาว่า ภาษาที่ใช้สัญลักษณ์ ลักษณะโครงสร้างของภาษาสัญลักษณ์จะใกล้เคียงกับภาษาเครื่องมาก คือ ประกอบด้วย 2 ส่วน คือ Op-Code และ Operands โดยใช้อักษรที่มีความหมายและเข้าใจง่ายแทนตัวเลข
3. ภาษาระดับสูง (High-Level Language) เนื่องจากภาษาที่ใช้สัญลักษณ์ยังคงยากต่อการเข้าใจของมนุษย์ ประกอบกับความเจริญทางด้านซอฟต์แวร์มีมากขึ้น จึงได้มีการพัฒนาให้เป็นคำสั่งที่มีความหมายเหมือนกับภาษาที่มนุษย์ใช้กัน เพื่อให้สะดวกกับผู้เขียนโปรแกรม เช่น ใช้คำว่า PRINT หรือ WRITE แทนการสั่งพิมพ์ หรือแสดงคำว่าใช้คำว่า READ แทนการรับค่าข้อมูลเข้าสู่เครื่องคอมพิวเตอร์ เป็นต้น ภาษาระดับสูงตัวอย่างเช่น Visual Basic, C, C++, Java เป็นต้น