หน่วยที่ 4
ซอฟต์แวร์ (Software)
1. ความหมายของซอฟต์แวร์
การที่เครื่องคอมพิวเตอร์หรือฮาร์ดแวร์สามารถทำงานได้อย่างมีประสิทธิภาพนั้นเกิดจากคำสั่งหรือชุดคำสั่งหรือที่เรียกว่าโปรแกรมที่เขียนโดยนักเขียนโปรแกรม (programmer) คำสั่งมีลักษณะเป็นซอฟท์แวร์สามารถสั่งให้คอมพิวเตอร์อ่านข้อมูล แปลความหมาย และทำการประมวลผล แล้วส่งผลลัพธ์ที่ได้ออกมาเป็นสารสนเทศตามที่เราต้องการ ดังนั้นซอฟท์แวร์จึงเป็นส่วนสำคัญและจำเป็นสำหรับการทำงานของคอมพิวเตอร์ มีนักวิชาการให้ความหมายหรือกล่าวถึงซอฟท์แวร์ไว้หลายแง่มุม ดังนี้
ซอฟท์แวร์ เป็นส่วนที่มนุษย์สัมผัสไม่ได้โดยตรงเพราะซอฟท์แวร์มีคุณลักษณะเป็นนามธรรมโดยทั่วไปเรียกว่าโปรแกรมหรือชุดคำสั่งที่ถูกเขียนขึ้นเพื่อสั่งการให้เครื่องคอมพิวเตอร์ทำงาน ซอฟต์แวร์จึงทำหน้าที่เป็นตัวเชื่อมระหว่างผู้ใช้คอมพิวเตอร์และเครื่องคอมพิวเตอร์ ถ้าไม่มีซอฟต์แวร์เรา ก็ไม่สามารถใช้เครื่องคอมพิวเตอร์ทำอะไรได้เลย ซอฟต์แวร์สำหรับเครื่องคอมพิวเตอร์สามารถแบ่งออกได้เป็นหลายประเภท
ซอฟต์แวร์ คือ การลำดับขั้นตอนการทำงานของคำสั่งที่จะทำหน้าที่สั่งคอมพิวเตอร์ว่าให้ทำอะไร เป็นชุดของโปรแกรมหลายๆโปรแกรมนำมารวมกันให้สามารถทำงานได้อย่างครบถ้วนสมบูรณ์ตามที่ต้องการ เรามองไม่เห็นหรือสัมผัสไม่ได้แต่เราสามารถสร้าง จัดเก็บ และนำมาใช้งานหรือเผยแพร่ได้ด้วยสื่อหลายชนิดเช่น แผ่นบันทึก แผ่นซีดี แฟล็ชไดร์ฟ ฮาร์ดดิสก์ เป็นต้น
ซอฟต์แวร์ หมายถึงชุดคำสั่งหรือโปรแกรมที่ใช้สั่งงานให้คอมพิวเตอร์ทำงาน ซอฟต์แวร์จึงเป็นคำสั่งที่มีลำดับขั้นตอนการทำงานซึ่งเขียนขึ้นด้วยคำสั่งของคอมพิวเตอร์ คำสั่งเหล่านี้เรียงกันเป็นโปรแกรมคอมพิวเตอร์จากที่ทราบมาแล้วว่าคอมพิวเตอร์ทำงานตามคำสั่ง การทำงานพื้นฐานเป็นเพียงการกระทำกับข้อมูลที่เป็นตัวเลขฐานสอง ซึ่งใช้แทนข้อมูลที่เป็นตัวเลข ตัวอักษร รูปภาพ หรือแม้แต่เป็นเสียงพูดก็ได้
ซอฟต์แวร์ คือ ชุดคำสั่งที่สั่งงานคอมพิวเตอร์อย่างเป็นลำดับขั้น ชุดคำสั่งเหล่านี้ได้จัดเตรียมไว้ในหน่วยความจำ คอมพิวเตอร์จะอ่านชุดคำสั่งแล้วทำงานตามโปรแกรมที่นักเขียนโปรแกรมได้เขียนไว้ ซอฟต์แวร์จึงเป็นสิ่งที่มนุษย์จัดทำขึ้นเพื่อให้คอมพิวเตอร์ทำงานตามลักษณะของซอฟต์แวร์ที่วางไว้แล้วเท่านั้น
2. ประเภทของซอฟต์แวร์
ในบรรดาซอฟต์แวร์หรือโปรแกรมคอมพิวเตอร์ที่มีผู้พัฒนาขึ้นเพื่อใช้งานกับคอมพิวเตอร์มีมากมาย ซอฟต์แวร์เหล่านี้อาจได้รับการพัฒนาโดยผู้ใช้งานเอง หรือผู้พัฒนาระบบ หรือผู้ผลิตจำหน่าย หากแบ่งแยกชนิดของซอฟต์แวร์ตามสภาพการทำงาน โดยทั่วไปแล้วซอฟต์แวร์แบ่งได้ 3 ประเภทใหญ่ๆ คือ ซอฟต์แวร์ระบบ (System Software) ซอฟต์แวร์ประยุกต์ (Application Software) โดยมีรายละเอียดของซอฟต์แวร์แต่ละประเภทดังนี้
2.1 ซอฟต์แวร์ระบบ (System Software)
ซอฟท์แวร์ระบบเป็นโปรแกรมที่บริษัทผู้ผลิตสร้างขึ้นมาเพื่อใช้จัดการกับระบบ หน้าที่การทำงานของซอฟต์แวร์ระบบ คือ ดำเนินงานพื้นฐานต่าง ๆ ของระบบคอมพิวเตอร์ เช่น รับข้อมูลจากแผงแป้นอักขระแล้วแปลความหมายให้คอมพิวเตอร์เข้าใจ นำข้อมูลไปแสดงผลบนจอภาพหรือนำออกไปยังเครื่องพิมพ์ จัดการข้อมูลในระบบแฟ้มข้อมูลบนหน่วยความจำรอง
เมื่อเราเปิดเครื่องคอมพิวเตอร์ ทันทีที่มีการจ่ายกระแสไฟฟ้าให้กับคอมพิวเตอร์ คอมพิวเตอร์จะทำงานตามโปรแกรมทันที โปรแกรมแรกที่สั่งคอมพิวเตอร์ทำงานนี้เป็นซอฟต์แวร์ระบบ ซอฟต์แวร์ระบบอาจเก็บไว้ในรอม หรือในแผ่นจานแม่เหล็ก หากไม่มีซอฟต์แวร์ระบบ คอมพิวเตอร์จะทำงานไม่ได้ นอกจากนี้ซอฟต์แวร์ระบบยังใช้เป็นเครื่องมือในการพัฒนาซอฟต์แวร์อื่น ๆ และยังรวมไปถึงซอฟต์แวร์ที่ใช้ในการแปลภาษาต่าง ๆ
ซอฟท์แวร์ระบบจึงทำหน้าที่เป็นตัวกลางเชื่อมต่อระหว่างฮาร์ดแวร์และโปรแกรมประยุกต์ ใช้ในการควบคุมดูแลการทำงานทั้งหมดของระบบคอมพิวเตอร์ ขณะที่เรากำลังใช้โปรแกรมประยุกต์อยู่ซอฟต์แวร์ระบบจะควบคุมการทำงานของอุปกรณ์คอมพิวเตอร์ทั้งหมดอย่างต่อเนื่อง ซึ่งซอฟท์แวร์ระบบมีลักษณะแตกต่างกันดังนี้
2.1.1 ระบบปฏิบัติการ (Operating Software หรือ OS) เป็นซอฟต์แวร์ที่ควบคุมกิจกรรม
ทั้งหมดของคอมพิวเตอร์ เพื่อให้มั่นใจว่าอุปกรณ์ที่เป็นฮาร์ดแวร์ทุกส่วนของระบบคอมพิวเตอร์ทำงานร่วมกันได้อย่างราบรื่นและมีประสิทธิภาพ ซอฟท์แวร์ระบบปฏิบัติการใช้ในการบริหารจัดการข้อมูลและทำแฟ้มข้อมูลภายในเครื่องคอมพิวเตอร์ เช่น การสำเนาข้อมูล (copy) การเรียงลำดับ (sort) การลบ (delete) และอื่น ๆ นอกจากนั้นยังใช้ในการดำเนินงานของโปรแกรมประยุกต์ด้วย โปรแกรมที่พัฒนาจากระบบปฏิบัติการที่ต่างกันจะนำมาใช้ร่วมกันไม่ได้
2.1.2 ตัวแปลภาษา
ในการพัฒนาซอฟต์แวร์จำเป็นต้องมีซอฟต์แวร์ที่ใช้ในการแปลภาษาระดับสูง เพื่อ
แปลภาษาระดับสูงให้เป็นภาษาเครื่อง ภาษาระดับสูงมีหลายภาษา ภาษาระดับสูงเหล่านี้สร้างขึ้นเพื่อให้ผู้เขียนโปรแกรมเขียนชุดคำสั่งได้ง่าย เข้าใจได้ ตลอดจนถึงสามารถปรับปรุงแก้ไขซอฟต์แวร์ในภายหลังได้
ภาษาระดับสูงที่พัฒนาขึ้นมาทุกภาษาจะต้องมีตัวแปลภาษาสำหรับแปลภาษา ภาษา
ระดับสูงซึ่งเป็นที่รู้จักและนิยมกันมากในปัจจุบัน เช่น ภาษาปาสคาล ภาษาเบสิก ภาษาซี และภาษาโลโก
1) ภาษาปาสคาล เป็นภาษาสั่งงานคอมพิวเตอร์ที่มีรูปแบบเป็นโครงสร้าง เขียน
สั่งงานคอมพิวเตอร์เป็นกระบวนความ ผู้เขียนสามารถแบ่งแยกงานออกเป็นชิ้นเล็ก ๆ แล้วมารวมกันเป็นโปรแกรมขนาดใหญ่ได้
2) ภาษาเบสิก เป็นภาษาที่มีรูปแบบคำสั่งไม่ยุ่งยาก สามารถเรียนรู้และเข้าใจได้ง่าย
มีรูปแบบคำสั่งพื้นฐานที่สามารถนำมาเขียนเรียงต่อกันเป็นโปรแกรมได้
3) ภาษาซี เป็นภาษาที่เหมาะสำหรับใช้ในการพัฒนาซอฟต์แวร์อื่น ๆ ภาษาซีเป็น
ภาษาที่มีโครงสร้างคล่องตัวสำหรับการเขียนโปรแกรมหรือให้คอมพิวเตอร์ติดต่อกับอุปกรณ์ต่าง ๆ
4) ภาษาโลโก เป็นภาษาที่เหมาะสำหรับการเรียนรู้และเข้าใจหลักการโปรแกรม
ภาษาโลโกได้รับการพัฒนาสำหรับเด็ก
นอกจากภาษาที่กล่าวถึงแล้ว ยังมีภาษาคอมพิวเตอร์ที่ใช้กันอยู่ในปัจจุบันอีก
มากมายหลายภาษา เช่น ภาษาฟอร์แทรน ภาษาโคบอล ภาษาอาร์พีจี
2.2 ซอฟต์แวร์ประยุกต์ (Application Software)
ซอฟต์แวร์ประยุกต์เป็นโปรแกรมที่ออกแบบมาเพื่อการใช้งานเฉพาะเรื่องตามที่เราต้องการ
เช่น งานพิมพ์เอกสาร งานพิมพ์รายงาน วาดภาพ เล่นเกม หรือโปรแกรมระบบบัญชี รายรับรายจ่าย และเงินเดือน โปรแกรมอินเทอร์เน็ตเอ็กซ์พลอเรอร์ ใช้เพื่อการสืบค้นข้อมูลและเชื่อมโยง กับระบบอินเทอร์เน็ตก็ได้ เน้นการใช้งานสะดวก
2.2.1 ซอฟต์แวร์สำเร็จ ในบรรดาซอฟต์แวร์ประยุกต์ที่มีใช้กันทั่วไป ซอฟต์แวร์สำเร็จ (package) เป็นซอฟต์แวร์ที่มีความนิยมใช้กันสูงมาก ซอฟต์แวร์สำเร็จเป็นซอฟต์แวร์ที่บริษัทพัฒนาขึ้น แล้วนำออกมาจำหน่าย เพื่อให้ผู้ใช้งานซื้อไปใช้ได้โดยตรง ไม่ต้องเสียเวลาในการพัฒนาซอฟต์แวร์อีก ซอฟต์แวร์สำเร็จที่มีจำหน่ายในท้องตลาดทั่วไป และเป็นที่นิยมของผู้ใช้มี 5 กลุ่มใหญ่ ได้แก่ ซอฟต์แวร์ประมวลคำ (word processing software) ซอฟต์แวร์ตารางทำงาน (spread sheet software) ซอฟต์แวร์จัดการฐานข้อมูล (data base management software) ซอฟต์แวร์นำเสนอ (presentation software) และซอฟต์แวร์สื่อสารข้อมูล (data communication software)
2.2.2 ซอฟต์แวร์ใช้งานเฉพาะ เป็นโปรแกรมที่ทำหน้าที่ช่วยในการทำงานของระบบคอมพิวเตอร์ในหน้าที่เฉพาะด้านบางอย่าง เช่น การตรวจหาและกำจัดไวรัสคอมพิวเตอร์ การจัด เรียงข้อมูลในฮาร์ดดิสก์ เป็นต้น
การประยุกต์ใช้งานด้วยซอฟต์แวร์สำเร็จมักจะเน้นการใช้งานทั่วไป แต่อาจจะนำมาประยุกต์โดยตรงกับงานทางธุรกิจบางอย่างไม่ได้ เช่นในกิจการธนาคาร มีการฝากถอนเงิน งานทางด้านบัญชี หรือในห้างสรรพสินค้าก็มีงานการขายสินค้า การออกใบเสร็จรับเงิน การควบคุมสินค้าคงคลัง ดังนั้นจึงต้องมีการพัฒนาซอฟต์แวร์ใช้งานเฉพาะสำหรับงานแต่ละประเภท ให้ตรงกับความต้องการของผู้ใช้ แต่ละราย ซอฟต์แวร์ใช้งานเฉพาะมักเป็นซอฟต์แวร์ที่ผู้พัฒนาต้องเข้าไปศึกษารูปแบบการทำงานหรือความต้องการของธุรกิจนั้น ๆ แล้วจัดทำขึ้น โดยทั่วไปจะเป็นซอฟต์แวร์ที่มีหลายส่วนรวมกันเพื่อร่วมกันทำงาน ซอฟต์แวร์ใช้งานเฉพาะที่ใช้กันในทางธุรกิจ เช่น ระบบงานทางด้านบัญชี ระบบงานจัดจำหน่าย ระบบงานในโรงงานอุตสาหกรรม บริหารการเงิน และการเช่าซื้อ ความต้องการของการใช้คอมพิวเตอร์ในงานทางธุรกิจยังมีอีกมาก ดังนั้นจึงต้องมีความต้องการผู้พัฒนาซอฟต์แวร์เพื่อพัฒนาซอฟต์แวร์ใช้งานเฉพาะต่าง ๆ อีกมากมาย
3. ความจำเป็นของการใช้ซอฟต์แวร์
ซอฟต์แวร์ เป็นชุดคำสั่งหรือโปรแกรมที่ใช้สั่งงานให้คอมพิวเตอร์ทำงานตามต้องการ เป็นการสั่งงานตามลำดับขั้นตอนที่ผู้เขียนโปรแกรมเรียบเรียงไว้ในรูปของเลขฐานสองซึ่งใช้แทนข้อมูลที่เป็นตัวเลข ตัวอักษร รูปภาพ และเสียง
ภาษาหรือโปรแกรมที่ใช้สั่งงานคอมพิวเตอร์จึงเป็นซอฟต์แวร์สำคัญที่ทำให้คอมพิวเตอร์แต่ละเครื่องทำงานแตกต่างกันได้มากมาย เพราะคำสั่งหรือซอฟท์แวร์แต่ละโปรแกรมจะถูกออกแบบสำหรับใช้กับแต่ละงานแตกต่างกัน เช่น โปรแกรมสำหรับจัดทำเอกสาร โปรแกรมสำหรับจัดทำบัญชี โปรแกรมสำหรับจัดทำสื่อการนำเสนอ โปรแกรมที่เกี่ยวข้องกับการตกแต่งภาพนิ่ง โปรแกรมเกี่ยวกับการตัดต่อภาพเคลื่อนไหว ฯลฯ เป็นต้น ซึ่งบางโปรแกรมสามารถประยุกต์ใช้งานดีอีกหลายด้านตามความสามารถของผู้เขียนและผู้ใช้โปรแกรมนั้น ๆ
4. ซอฟท์แวร์และภาษาคอมพิวเตอร์
เราใช้คอมพิวเตอร์ทำงานในการจัดการสารสนเทศเรื่องต่าง ๆ ได้อย่างถูกต้องแม่นยำโดยการกำหนดวิธีการหรือขั้นตอนให้คอมพิวเตอร์ทำงานได้ตามความต้องการ จำเป็นต้องมีสื่อกลางที่ใช้ในการติดต่อซึ่งกันและกันระหว่างมนุษย์กับคอมพิวเตอร์ เราเรียกสื่อกลางนี้ว่าภาษาคอมพิวเตอร์
เนื่องจากคอมพิวเตอร์ทำงานด้วยสัญญาณทางไฟฟ้าที่แทนค่าด้วยตัวเลข 0 และ 1 ได้ โดยผู้ออกแบบคอมพิวเตอร์ใช้ตัวเลข 0 และ 1 นี้เป็นรหัสแทนคำสั่งในการสั่งงานคอมพิวเตอร์ รหัสแทนข้อมูลและคำสั่งโดยใช้ระบบเลขฐานสองนี้ คอมพิวเตอร์สามารถแปลผลอย่างเป็นเหตุเป็นผลเชิงตรรกะได้อย่างถูกต้อง เราเรียกเลขฐานสองที่ประกอบกันเป็นชุดคำสั่งสำหรับคอมพิวเตอร์ว่า ภาษาเครื่อง