วันศุกร์ที่ 28 กันยายน พ.ศ. 2555

ซอฟต์แวร์

       
การใช้งานระบบสารสนเทศด้วยคอมพิวเตอร์ จำเป็นต้องมีซอฟต์แวร์ควบคุมการทำงาน เช่น การซื้อของโดยใช้บัตรเครดิต ผู้ขายจะตรวจสอบบัตรเครดิตโดยใช้เครื่องอ่านบัตร แล้วส่งข้อมูลของบัตรเครดิตไปยังศูนย์ข้อมูลของบริษัทผู้ออกบัตร การตรวจสอบจะกระทำกับฐานข้อมูลกลาง โดยมีกลไกหรือเงื่อนไขของการตรวจสอบ จากนั้นจึงให้คำตอบว่าจะยอมรับหรือปฏิเสธบัตรเครดิตใบนั้น การดำเนินการเหล่านี้เป็นไปโดยอัตโนมัติตามคำสั่งซอฟต์แวร์
       
ทำนองเดียวกันเมื่อซื้อสินค้าในห้างสรรพสินค้า พนักงานเก็บเงินจะใช้เครื่องกราดตรวจอ่านรหัสแท่งบนสินค้าทำให้บนจอภาพปรากฏชื่อสินค้า รหัสสินค้า และราคา ในการดำเนินการนี้ต้องใช้ซอฟต์แวร์ ซอฟต์แวร์จึงเป็นสิ่งสำคัญที่ทำให้ระบบคอมพิวเตอร์ทำงานได้
      
ซอฟต์แวร์ คือ ชุดคำสั่งที่สั่งงานคอมพิวเตอร์เป็นลำดับขั้นตอนของการทำงาน ชุดคำสั่งเหล่านี้ได้จัดเตรียมไว้ในหน่วยความจำของคอมพิวเตอร์ คอมพิวเตอร์อ่านชุดคำสั่งแล้วทำงานตาม ซอฟต์แวร์จึงเป็นสิ่งที่มนุษย์จัดทำขึ้น และคอมพิวเตอร์จะทำงานตามคุณลักษณะของซอฟต์แวร์ที่วางไว้แล้วเท่านั้น
       
ชนิดของซอฟต์แวร์แบ่งเป็นสองประเภทใหญ่ คือ

ได้รับการพัฒนาโดยผู้ใช้งานเอง หรือผู้พัฒนาระบบ หรือผู้ผลิตจำหน่าย ซอฟต์แวร์หรือโปรแกรมคอมพิวเตอร์สามารถแบ่งได้เป็นหลายประเภท

·                     ซอฟต์แวร์ที่ผู้ใช้เขียนขึ้นเองเพื่อให้ตรงกับความต้องการ
·                     ซอฟต์แวร์ที่มีคนทำสำเร็จรูปไว้ขาย เช่น ซอฟต์แวร์สำหรับวาดภาพ (graphics) ซอฟต์แวร์ประมวลผลคำ (word processing) ซอฟต์แวร์ตารางจัดการ (spread sheet)
·                     ซอฟต์แวร์ระบบ (systems software) ซึ่งเป็นโปรแกรมซอฟต์แวร์ที่ควบคุมการทำงานของเครื่องคอมพิวเตอร์ มีบางส่วนติดตั้งมาจากโรงงานที่ผลิต
·                     ซอฟต์แวร์ระบบปฏิบัติการ (operating system) ที่จะทำหน้าที่เหมือนแม่บ้านคอยดูแลให้อุปกรณ์ต่าง ๆ ทำงานให้ประสานกัน
หากแบ่งแยกประเภทของซอฟต์แวร์ตามสภาพการทำงาน พอแบ่งแยกซอฟต์แวร์ได้เป็นสองประเภท คือ ซอฟต์แวร์ระบบ (system software) และซอฟต์แวร์ประยุกต์ (application software)

ซอฟต์แวร์ระบบ (system software)

ซอฟต์แวร์ระบบ (system software) คือ ซอฟต์แวร์ที่บริษัทผู้ผลิตสร้างขึ้นมาเพื่อใช้จัดการกับระบบ หน้าที่การทำงานของซอฟต์แวร์ระบบคือดำเนินงาน พื้นฐานต่าง ๆ ของระบบคอมพิวเตอร์ เมื่อเราเปิดเครื่องคอมพิวเตอร์ ทันทีที่มีการจ่ายกระแสไฟฟ้าให้กับคอมพิวเตอร์ คอมพิวเตอร์จะทำงานตามโปรแกรมทันที โปรแกรมแรกที่สั่งคอมพิวเตอร์ทำงานนี้เป็นซอฟต์แวร์ระบบ ซอฟต์แวร์ระบบอาจเก็บไว้ในรอม หรือในแผ่นจานแม่เหล็ก หากไม่มีซอฟต์แวร์ระบบ คอมพิวเตอร์จะทำงานไม่ได้

หน้าที่หลักของซอฟต์แวร์ระบบประกอบด้วย

·                     1.การจัดการหน่วยรับเข้าและหน่วยส่งออก เช่น รับการกดแป้นต่าง ๆ บนแผงแป้นอักขระ ส่งรหัสตัวอักษรออกทางจอภาพหรือเครื่องพิมพ์ ติดต่อกับ อุปกรณ์รับเข้า และส่งออกอื่น ๆ เช่น เมาส์ อุปกรณ์สังเคราะห์เสียง
·                     2.การจัดการหน่วยความจำเพื่อนำข้อมูลจากแผ่นบันทึกมาบรรจุยังหน่วยความจำหลัก หรือในทำนองกลับกัน คือนำข้อมูลจาก หน่วยความจำหลักมา เก็บไว้ในแผ่นบันทึก
·                     3.เป็นตัวเชื่อมต่อระหว่างผู้ใช้งานกับคอมพิวเตอร์ สามารถใช้งานได้ง่ายขึ้น เช่น การขอดูรายการสารบบในแผ่นบันทึก การทำสำเนาแฟ้มข้อมูล
ซอฟต์แวร์ระบบยังใช้เป็นเครื่องมือในการพัฒนาซอฟต์แวร์อื่น ๆ และยังรวมไปถึงซอฟต์แวร์ที่ใช้ในการแปลภาษาต่าง ๆ
ซอฟต์แวร์ระบบพื้นฐานที่เห็นกันทั่วไป แบ่งออกเป็นระบบปฏิบัติการ และตัวแปลภาษา ซอฟต์แวร์ทั่งสองประเภทนี้ทำให้เกิดพัฒนาการประยุกต์ใช้งานได้ง่ายขึ้น

ระบบปฏิบัติการ (operating system)

ระบบปฏิบัติการ หรือที่เรียกย่อ ๆ ว่า โอเอส (Operating System : OS) เป็นซอฟต์แวร์ ที่ทำหน้าที่เป็นตัวกลาง ระหว่างฮาร์ดแวร์ และซอฟต์แวร์ประยุกต์ทั่วไป บางครั้งเราอาจะเห็นระบบปฏิบัติการเป็นเฟิร์มแวร์ก็ได้
ระบบปฏิบัติการมีหน้าที่หลัก ๆ คือ การจัดสรรทรัพยากรในเครื่องคอมพิวเตอร์ เพื่อให้บริการซอฟต์แวร์ประยุกต์ ในเรื่องการรับส่ง และจัดเก็บข้อมูลกับฮาร์ดแวร์ เช่น การส่งข้อมูลภาพไปแสดงผลที่จอภาพ การส่งข้อมูลไปเก็บหรืออ่านจากฮาร์ดดิสก์ การรับส่งข้อมูลในระบบเครือข่าย การส่งสัญญานเสียงไปออกลำโพง หรือจัดสรรพื้นที่ในหน่วยความจำ ตามที่ซอฟต์แวร์ประยุกต์ร้องขอ รวมทั้งทำหน้าที่จัดสรรเวลาการใช้หน่วยประมวลผลกลาง ในกรณีที่อนุญาตให้รันซอฟต์แวร์ประยุกต์หลายๆตัวพร้อมๆกัน
ระบบปฏิบัติการ ช่วยให้ตัวซอฟต์แวร์ประยุกต์ ไม่ต้องจัดการเรื่องเหล่านั้นด้วยตนเอง เพียงแค่เรียกใช้บริการจากระบบปฏิบัติการก็พอ ทำให้พัฒนาซอฟต์แวร์ประยุกต์ได้ง่ายขึ้น

ซอฟท์แวร์และภาษาคอมพิวเตอร์

เมื่อมนุษย์ต้องการใช้คอมพิวเตอร์ช่วยในการทำงาน มนุษย์จะต้องบอกขั้นตอนวิธีการให้คอมพิวเตอร์ทราบ การที่บอกสิ่งที่มนุษย์เข้าใจให้คอมพิวเตอร์รับรู้ และทำงานได้อย่างถูกต้อง จำเป็นต้องมีสื่อกลาง เราเรียกสื่อกลางนี้ว่า ภาษาคอมพิวเตอร์
เนื่องจากคอมพิวเตอร์ทำงานด้วยสัญญาณทางไฟฟ้า ใช้แทนด้วยตัวเลข 0 และ 1 ได้ ผู้ออกแบบคอมพิวเตอร์ใช้ตัวเลข 0 และ 1 นี้เป็นรหัสแทนคำสั่งในการสั่งงาน คอมพิวเตอร์ รหัสแทนข้อมูลและคำสั่งโดยใช้ระบบเลขฐานสองนี้ คอมพิวเตอร์สามารถเข้าใจได้ เราเรียกเลขฐานสองที่ประกอบกันเป็นชุดคำสั่ง และใช้สั่งงานคอมพิวเตอร์ว่าภาษาเครื่อง
ภาษาเครื่อง (Machine Language) นั้น เป็นภาษาที่เครื่องคอมพิวเตอร์สามารถเข้าใจ และสามารถติดต่อได้โดยตรงกับเครื่องคอมพิวเตอร์
คอมพิวเตอร์ชุดหนึ่ง ๆ ที่เขียนขึ้นเป็นระบบรหัส หรือที่เรียกว่า ภาษาเครื่อง มนุษย์ผู้ใช้จะมีข้อยุ่งยากมาก เพราะเข้าใจและจดจำได้ยาก จึงมีผู้สร้างภาษา คอมพิวเตอร์ในรูปแบบที่เป็นตัวอักษร เป็นประโยคข้อความ ซึ่งเริ่มใกล้เคียงภาษามนุษย์มากขึ้น เช่น ภาษาแอสเซมบลี (Assembly) ภาษาซี (C) ภาษาโคบอล (COBOL) ภาษาเบสิก (BASIC) หรือ เป็นภาษาที่ค่อนข้างจะสมัยใหม่ เช่น ภาษา C# ภาษาจาวา เป็นต้น
ภาษาในลักษณะดังกล่าวนี้เรียกว่า ภาษาคอมพิวเตอร์ระดับสูง ภาษาระดับสูงมีอยู่มากมาย บางภาษามีความเหมาะสมกับการใช้สั่งงานการคำนวณทางคณิตศาสตร์ และวิทยาศาสตร์ บางภาษามีความเหมาะสมไว้ใช้สั่งงานทางด้านการจัดการข้อมูล ในการทำงานของคอมพิวเตอร์ คอมพิวเตอร์จะแปลภาษาระดับสูง ให้เป็นภาษา เครื่อง ดังนั้น จึงมีผู้พัฒนาโปรแกรมคอมพิวเตอร์สำหรับแปลภาษาคอมพิวเตอร์ระดับสูงให้เป็นภาษาเครื่อง โปรแกรมที่ใช้แปลภาษาคอมพิวเตอร์ระดับสูง ให้เป็นภาษาเครื่องเรียกว่า คอมไพเลอร์ (compiler) หรือ อินเทอร์พรีเตอร์ (interpreter)
คอมไพเลอร์ (compiler) หรือ โปรแกรมแปลโปรแกรม, ตัวแปลโปรแกรม เป็น โปรแกรมคอมพิวเตอร์ ที่ทำหน้าแปลโปรแกรมที่เขียนเป็นภาษาระดับสูงทั้ง โปรแกรมให้เป็นภาษาเครื่องก่อน แล้วจึงให้คอมพิวเตอร์ทำงานตามภาษาเครื่องนั้น ขึ้นตอนการทำงานหลัก ๆ ของคอมไพเลอร์ ซึ่งในปัจจุบัน คอมไพเลอร์สมัยใหม่ อาจมีขั้นตอนมากกว่า และมีเทคนิคเพิ่มเติมขึ้นมาก ซึ่งแต่ละผลิตภัณฑ์ จะไม่บอกรายละเอียดการทำงาน เนื่องจากเป็นความลับของแต่ละผลิตภัณฑ์ของตน
ในปัจจุบันนี้มีภาษาจาวา (Java) , ดอดเน็ต (.NET FramWork) การคอมไพล์ได้เปลี่ยนไปเป็นการแปลเป็นภาษาเป้าหมาย และหากเป็นจาวา ก็ใช้ จาวาวิชวลเมอฃีน (Java Visual Machine : JVM) หรือหากเป็น ดอดเน็ต จะใช้ (Just In Time :JIT Compiler)