วันอังคารที่ 21 พฤษภาคม พ.ศ. 2556


        ซอฟต์แวร์ (Software) หมายถึง ส่วนที่ทำหน้าที่เป็นคำสั่งที่ใช้ควบคุมการทำงานของเครื่องคอมพิวเตอร์ หรืออาจเรียกว่า “ โปรแกรม ” ก็ได้ ซึ่งหมายถึงคำสั่งหรือชุดคำสั่ง สามารถใช้เพื่อสั่งให้คอมพิวเตอร์ทำงาน เราต้องการให้เครื่องคอมพิวเตอร์ทำอะไรก็เขียนเป็นคำสั่งที่จะต้องสั่งเป็นขั้นตอน และแต่ละขั้นตอนต้องทำอย่างละเอียดและครบถ้วนก็จะเรียกว่า นักเขียนโปรแกรม (Programmer) สำหรับการเขียนโปรแกรมดังกล่าวใช้ภาษาที่ใช้ในการเขียนโปรแกรมโดยเฉพาะ หรือหมายถึง ภาษาที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ เช่น ภาษาเบสิก ภาษาโคบอล ภาษาปาสคาล เป็นต้น โปรแกรมที่เขียนขึ้นมาก็จะนำไปใช้ในงานเฉพาะอย่าง เช่น โปรแกรมสต็อกสินค้าคงคลัง โปรแกรมคำนวณภาษี โปรแกรมคิดเงินเดือนพนักงาน เป็นต้น
        ประเภทของซอฟต์แวร์  ซอฟต์แวร์จะแบ่งออกเป็นประเภทใหญ่ ๆ ได้ ประเภท คือ
1.  ซอฟต์แวร์ระบบ (System Software)
2.  ซอฟต์แวร์ประยุกต์ ( Application Software)
        ซอฟต์แวร์ระบบ (System Software)
      คือซอฟต์แวร์คอมพิวเตอร์ที่ออกแบบขึ้นมาเพื่อปฏิบัติการกับฮาร์ดแวร์คอมพิวเตอร์ และเพื่อจัดเตรียมและบำรุงรักษาแพลตฟอร์มจากการทำงานของโปรแกรมประยุกต์ 
ซอฟต์แวร์ระบบพื้นฐานที่สุดมีดังนี้
    ***ไบออสของคอมพิวเตอร์และเฟิร์มแวร์ของอุปกรณ์ ซึ่งมีเครื่องมือพื้นฐานสำหรับปฏิบัติการและควบคุมฮาร์ดแวร์ที่เชื่อมต่อหรือติดตั้งในคอมพิวเตอร์
    ***ระบบปฏิบัติการ (ตัวอย่างที่เด่น ๆ เช่น ไมโครซอฟท์ วินโดวส์ แมคโอเอสเท็น และลินุกซ์) ซึ่งแบ่งสรรให้ส่วนต่าง ๆ ของคอมพิวเตอร์ทำงานร่วมกันโดยรับภาระงานอาทิ การส่งผ่านข้อมูลระหว่างหน่วยความจำกับจานบันทึก หรือการส่งข้อมูลออกทางอุปกรณ์แสดงผล และยังมีแพลตฟอร์มเพื่อทำงานซอฟต์แวร์ระบบระดับสูงและโปรแกรมประยุกต์ด้วย
    ***ซอฟต์แวร์อรรถประโยชน์ ซึ่งช่วยวิเคราะห์ ปรับแต่ง ทำให้เหมาะสม และบำรุงรักษาคอมพิวเตอร์
ในตำราบางเล่ม คำว่า ซอฟต์แวร์ระบบ หมายรวมถึงเครื่องมือที่ใช้ในการพัฒนาซอฟต์แวร์ด้วย (เช่น คอมไพเลอร์ ลิงเกอร์ หรือดีบักเกอร์ เป็นต้น)
    โดยทั่วไปมิได้หมายความว่า ผู้ใช้จะต้องซื้อคอมพิวเตอร์เพื่อใช้งานซอฟต์แวร์ระบบ แทนที่จะเป็นอย่างนั้น อาจมองว่าซอฟต์แวร์ระบบเป็นสิ่งพื้นฐานของคอมพิวเตอร์ที่มีมากับเครื่องหรือติดตั้งไว้ก่อนแล้ว ในทางตรงข้ามกับซอฟต์แวร์ระบบ ซอฟต์แวร์ที่ผู้ใช้สามารถกระทำการต่าง ๆ อาทิสร้างเอกสารข้อความ เล่นเกม ฟังเพลง หรือท่องเว็บ เช่นนี้เรียกว่าโปรแกรมประยุกต์
โปรแกรมอรรถประโยชน์ (Utilities Program)
     เรียกสั้นๆ ว่า ยูทิลิตี้ เป็นโปรแกรมประเภทหนึ่งที่ทำงานบนระบบปฏิบัติการ ส่วนมากใช้เพื่อบำรุงรักษาและเพิ่มประสิทธิภาพการทำงานของคอมพิวเตอร์ คุณสมบัติการใช้งานนั้นค่อนข้างหลากหลาย ยูทิลิตี้แบ่งออกเป็นสองชนิดคือ ยูทิลิตี้สำหรับระบบปฏิบัติการ (OS utility program) และ ยูทิลิตี้อื่นๆ (stand-alone utility program)
ซอฟต์แวร์สำหรับงานเฉพาะด้าน (Special Purpose Software)
      ซอฟต์แวร์สำหรับงานเฉพาะด้าน  เป็นซอฟต์แวร์ที่ผลิตขึ้นมาเพื่อทำงานอย่างใดอย่างหนึ่ง และไม่สามารถ ทำงานอื่นได้  เช่น โปรแกรมระบบบัญชี โปรแกรมเพื่องานออกแบบ โปรแกรมช่วยงานอุตสาหกรรม เป็นต้น
1. โปรแกรมระบบบัญชี (Accounting) เช่น ระบบบัญชีเงินเดือน ลูกหนี้ ระบบเช่าซื้อบัญชี แยกประเภท
2. โปรแกรมช่วยงานอุตสาหกรรม CAM (Computer-Aided Manufactory and Composition And Make-up) ซอฟต์แวร์ชนิดนี้ใช้สำหรับงานด้านอุตสาหกรรมเป็นส่วนใหญ่ เช่น ใช้คอมพิวเตอร์ดูแลและควบคุมเครื่องจักรกลแทนคน หรืองานประเภทที่ต้องทำซ้ำๆ กัน ครั้งละมากๆ (Mass-production)
3. โปรแกรมช่วยในการเรียนการสอน CAI (Computer-Assisted Instruction)โดยการใช้คอมพิวเตอร์ หรือจำลองตัวเองเป็นสื่อในการเรียนการสอนประกอบกับรูปภาพ(เคลื่อนไหว) ในลักษณะต่างๆ ซึ่งทำให้ง่ายต่อความเข้าใจ
4. เกม (Game) สำหรับผ่อนคลายหลังจากการใช้เครื่องแต่ส่วนใหญ่นิยมเล่นเพื่อความเพลิดเพลินกว่า   ตัวอย่างของเกมเหล่านี้ได้แก่ โปรแกรมเกมต่างๆ ตามห้างสรรพสินค้า(Arcade game)  เกมบนกระดาน  (Board game) เช่น หมากรุก โมโนโปลีฯลฯ เกมส์ไพ่(Card) เกมเสมือนหรือจำลอง
5. โปรแกรมเพื่องานออกแบบหรือ CAD (Computer-Aidea Design) เช่น AutoCadAutoLISP และ  DisgnCAD เป็นต้น โปรแกรมคอมพิวเตอร์ชนิดนี้ใช้สำหรับการออกแบบผลิตภัณฑ์ชนิดต่างๆ และงานออกแบบทางด้านสถาปัตยกรรม
6. โปรแกรมตรวจสอบ/ป้องกันไวรัส (Anti-Virus) มีไว้เพื่อป้องกันการโจมตีของไวรัสคอมพิวเตอร์ และมักจะมีคำสั่งให้ทำลายล้างไวรัสออกจากเครื่องคอมพิวเตอร์ เช่น McAfeevirus scan, AVI-scan, Norton Anti-virus เป็นต้น
7. โปรแกรมมัลติมีเดีย   (Multimedia)  เป็นซอฟต์แวร์ใช้สำหรับสร้างโปรแกรม CAIหรือทำ Presentation หรือใช้สำหรับดูหนัง  ฟังเพลง  เช่น Multimedia Toolbook, XingMPEG, Authorware, PowerDVDชนิดอื่นๆ เช่น ระบบธุรกิจต่างๆ งานทำดนตรีงานตัดต่อภาพยนตร์ การวางแผนงาน งานศิลปะ  งานวาดรูป การประมาณการ วิเคราะห์  งานพัฒนา การบริหารโครงงาน


ซอฟต์แวร์สำหรับงานทั่วไป (General purpose Software)
         จะเป็นซอฟต์แวร์ที่ออกแบบมาสำหรับงานทั่ว ๆ ไป สามารถนำมาประยุกต์ใช้กับงานส่วนตัวได้อย่างหลากหลาย ทำให้เป็นซอฟต์แวร์ประเภทที่ได้รับความนิยมสูงสุดในปัจจุบัน ซึ่งส่วนมากจะเป็นซอฟต์แวร์ที่ทำงานอยู่ในเครื่องระดับไมโครคอมพิวเตอร์
        ซอฟต์แวร์สำหรับงานทั่วไป สามารถแบ่งตามประเภทของงานได้ดังนี้
            ***ซอฟต์แวร์ตารางวิเคราะห์แบบอิเล็กทรอนิกส์ (Electronic Spreadsheet)
            ธุรกิจในสมัยก่อนนั้นการทำงบประมาณ หรือการวางแผนต่าง ๆ ต้องใช้กระดาษบัญชีและเครื่องคิดเลขเท่านั้น สำหรับสมัยนี้ด้วยซอฟต์แวร์ตารางวิเคราะห์แบบอิเล็กทรอนิกส์ ผู้ใช้สามารถพิมพ์หัวข้อหรือชื่อของข้อมูล และตัวเลขข้อมูลต่าง ๆ เข้าในคอมพิวเตอร์ โดยที่ในคอมพิวเตอร์จะมีตารางที่เปรียบเสมือนกระดาษบัญชีขนาดใหญ่ ซึ่งสามารถคำนวณได้ตามสูตรที่ผู้ใช้ทำการกำหนด โดยที่สูตรเหล่านั้นจะไม่ปรากฏในช่องของข้อมูลเลย ยิ่งไปกว่านั้นหากผู้ใช้เปลี่ยนตัวเลขหรือข้อมูลใด ๆ ก็ตาม จะเห็นการเปลี่ยนแปลงข้อมูลอื่นที่เกี่ยวข้องกันในทันที ปัจจุบันมีผู้ใช้ประโยชน์ของตารางวิเคราะห์แบบอิเล็กทรอนิกส์มากมาย ไม่เฉพาะแต่ในทางบัญชีเท่านั้น แต่ยังนิยมใช้ในการวิเคราะห์ข้อมูลทางสถิติ บริหารการเงิน และอื่น ๆ อีกมาก
            ***ซอฟต์แวร์ประมวลผลคำ (Word processing)
            ปัจจุบันเครื่องคอมพิวเตอร์มากกว่า 85 เปอร์เซ็นต์ ต้องติดตั้งโปรแกรมสำหรับงานพิมพ์เอกสารรวมอยู่ด้วย ซึ่งโปรแกรมนี้ทำให้คอมพิวเตอร์เป็นเครื่องมือสำหรับสร้าง แก้ไข ตรวจสอบ พิมพ์ และจัดเก็บข้อความต่าง ๆ หนังสือที่จำหน่ายในท้องตลาดในปัจจุบันนี้ ส่วนมากก็เริ่มต้นจากการพิมพ์ข้อความลงในคอมพิวเตอร์ด้วยซอฟต์แวร์ที่ประมวลคำ
            ***ซอฟต์แวร์การพิมพ์แบบตั้งโต๊ะ (Desktop Publishing)
            ในสมัยก่อนการจัดทำหนังสือพิมพ์ หรือวารสารต่าง ๆ นั้นต้องผ่านกระบวนการต่าง ๆ มากมายหลายขั้นตอนซึ่งรวมเรียกว่าการเรียงพิมพ์ โดยที่จะต้องมีผู้ตัดต่อรูปภาพที่ต้องการ วาดกรอบของภาพหรือกรอบหัวเรื่อง และเขียนข้อความ และนำข้อความ ภาพ และกรอบมาประกอบกันตามแบบที่ออกแบบไว้ การทำงานที่ยุ่งยากเหล่านี้นี่เองที่ทำให้เอกสารเหล่านั้นมีราคาแพง แต่ในปัจจุบันนี้ขอเพียงมีคอมพิวเตอร์ และโปรแกรมการจัดพิมพ์แบบตั้งโต๊ะ เท่านั้น ก็สามารถที่จะออกแบบงานหรือเอกสารให้เป็นที่น่าสนใจได้ โดยซอฟต์แวร์การพิมพ์แบบตั้งโต๊ะจะมีความสามารถด้านการจัดการเอกสาร ความสามารถด้านการเรียงพิมพ์ รวมทั้งการจัดสีที่สูงกว่าซอฟต์แวร์ประมวลผลคำ
            

           ***ซอฟต์แวร์นำเสนอ (Presentation Software)
            เป็นซอฟต์แวร์ที่ใช้ในการนำเสนอข้อมูลด้วยคอมพิวเตอร์ โดยอาจประกอบด้วยตัวอักษร รูปภาพ แผนผัง รายงาน ตลอดจนภาพเคลื่อนไหว เป็นต้น นิยมใช้ในการเรียนการสอน หรือการประชุม เพื่อนำเสนอข้อมูลให้การบรรยายนั้นน่าสนใจยิ่งขึ้น
            ***ซอฟต์แวร์กราฟิก (Graphic Software)
            เป็นซอฟต์แวร์สำหรับสร้างภาพกราฟิกแบบต่าง ๆ การใช้งานในระดับเบื้องต้นอาจนำไปใช้ประกอบการสร้างเอกสาร หรือการนำเสนอข้อมูล ส่วนการใช้ในระดับสูงอาจใช้สำหรับการตกแต่งภาพหรือรูปถ่าย หรือใช้สำหรับงานด้านศิลปกรรม สถาปัตยกรรม วิศวกรรม เป็นต้น
            ***ซอฟต์แวร์ฐานข้อมูล (Database)
            โปรแกรมฐานข้อมูลเป็นโปรแกรมสำหรับสร้างแฟ้มข้อมูลต่าง ๆ เก็บไว้ในสื่ออิเล็กทรอนิกส์ โดยโปรแกรมจะมีเครื่องมือต่าง ๆ ในการอำนวยความสะดวกเกี่ยวกับการจัดการแฟ้มข้อมูล เช่น มีเครื่องมือสำหรับการเพิ่มหรือแก้ไขข้อมูลที่จัดเก็บอยู่ หรือสามารถเรียกแฟ้มข้อมูลนั้นขึ้นมาแสดงบนจอภาพโดยกำหนดเงื่อนไขให้เลือกข้อมูลมาแสดงเพียงบางส่วน เป็นต้น
            ***ซอฟต์แวร์สื่อสารโทรคมนาคม (Telecommunication Software)
            ถ้าผู้ใช้ต้องการติดต่อกับคอมพิวเตอร์ที่อยู่ห่างไกลออกไป สามารถทำได้โดยใช้ซอฟต์แวร์สำหรับติดต่อสื่อสารข้อมูล ซอฟต์แวร์ประเภทนี้จะจำลองเครื่องคอมพิวเตอร์ให้เป็นเทอร์มินัล (terminal) ที่สามารถติดต่อไปยังระบบคอมพิวเตอร์ขนาดใหญ่ที่มีผู้ใช้หลายคนได้โดยใช้สายโทรศัพท์ในการโทรติดต่อ และเมื่อติดต่อได้แล้วก็จะสามารถใช้งานระบบต่าง ๆ ที่อยู่ในเครื่องนั้นได้ เสมือนกับนั่งใช้เครื่องอยู่ข้าง ๆ เครื่องที่เราติดต่อเข้าไป การใช้งานที่ได้รับความนิยมในปัจจุบัน เช่น ร่วมคุยกับกลุ่มที่สนใจเรื่องเดียวกัน แลกเปลี่ยนจดหมายกับผู้อื่นในระบบหรือแม้กระทั่งจองตั๋วเครื่องบินและจองโรงแรมผ่านทางจอคอมพิวเตอร์ เป็นต้น
            ***ซอฟต์แวร์ค้นหาข้อมูล (Resource Discovery Software)
            หมายถึงซอฟต์แวร์ที่เป็นเครื่องมือสำหรับค้นหาข้อมูลที่ต้องการ จากแหล่งข้อมูลในที่ต่าง ๆ เนื่องจากปัจจุบันนี้ความนิยมในการใช้การติดต่อสื่อสารผ่านเครือข่ายคอมพิวเตอร์ เช่น อินเตอร์เนต หรือเครือข่ายเชิงพาณิชย์อื่น ๆ ช่วยให้สามารถเรียกค้นข้อมูลที่ต้องการทราบได้จากทั่วโลก ตัวอย่างซอฟต์แวร์ประเภทนี้ เช่น Archie , Gopher และ World Wide Web เป็นต้น

ตัวแปลภาษาคอมพิวเตอร์ (Translator)
        ในการพัฒนาซอฟต์แวร์คอมพิวเตอร์นั้น โปรแกรมเมอร์จะเขียนโปรแกรมในภาษาคอมพิวเตอร์แบบต่าง ๆ ตามแต่ความชำนาญของแต่ละคน โปรแกรมที่ได้จะเรียกว่า โปรแกรมต้นฉบับ หรือ ซอร์สโคด (source code) ซึ่งมนุษย์จะอ่านโปรแกรมต้นฉบับนี้ได้แต่คอมพิวเตอร์จะไม่เข้าใจคำสั่งเหล่านั้น เนื่องจากคอมพิวเตอร์เข้าใจแต่ภาษาเครื่อง (Machine Language) ซึ่งประกอบขึ้นจากรหัสฐานสองเท่านั้น จึงต้องมีการใช้โปรแกรม ตัวแปรภาษาคอมพิวเตอร์ (Translator) ในการแปลภาษาคอมพิวเตอร์ภาษาต่าง ๆ ไปเป็นภาษาเครื่องโปรแกรมที่แปลจากโปรแกรมต้นฉบับแล้วเรียกว่า ออบเจคโคด (object code)ซึ่งจะประกอบด้วยรหัสคำสั่งที่คอมพิวเตอร์สามารถเข้าใจและนำไปปฏิบัติได้ต่อไป
ตัวแปลภาษาที่มีการใช้อยู่ในปัจจุบัน จะต่างกันที่ขั้นตอนที่ใช้ในการแปลภาษาให้อยู่ในรูปแบบที่คอมพิวเตอร์สามารถเข้าใจได้ สามารถแบ่งได้เป็น
          แอสเซมเบลอ (Assembler) เป็นตัวแปลภาษาแอสแซมบลีซึ่งเป็นภาษาระดับต่ำให้เป็นภาษาเครื่อง
          อินเตอร์พรีเตอร์ (Interpreter) เป็นตัวแปลภาษาระดับสูงซึ่งเป็นภาษาที่ใกล้เคียงกับภาษามนุษย์ ไปเป็นภาษาเครื่อง โดยใช้หลักการแปลพร้อมกับงานตามคำสั่งทีละบรรทัดตลอดทั้งโปรแกรม ทำให้การแก้ไขโปรแกรมทำได้ง่ายและรวดเร็วแต่ออบเจคโคดที่ได้จากการแปลโดยการใช้อินเตอร์พรีเตอร์นั้นไม่สามารถเก็บไว้ใช้ใหม่ได้จะต้องแปลโปรแกรมใหม่ทุกครั้งที่ต้องการใช้งาน           คอมไพเลอร์ (Compiler) จะเป็นตัวแปลภาษาระดับสูงเช่นเดียวกับอินเตอร์พรีเตอร์แต่จะใช้วิธีแปลโปรแกรมทั้งโปรแกรมให้เป็นออบเจคโคด ก่อนที่จะสามารถนำไปทำงานเช่นเดียวกับแอสแซมเบลอ ออบเจคโคดที่ได้จากการแปลนั้นสามารถจัดเก็บไว้เป็นแฟ้มข้อมูล เพื่อให้นำไปใช้ในการทำงานเมื่อใดก็ได้ตามต้องการ ซึ่งเป็นข้อดีของคอมไพเลอร์ที่จะนำผลที่ได้จากการแปลนั้นไปใช้งานกี่ครั้งก็ได้ไม่จำกัด ไม่ต้องเสียเวลาในการแปลใหม่ทุกครั้ง ทำให้เป็นรูปแบบการแปลที่ได้รับความนิยมอย่างมาก
        ในปัจจุบัน มีหลักการแปลภาษาคอมพิวเตอร์แบบใหม่เกิดขึ้น คือแปลจากซอร์สโคดไปเป็นรหัสชั่วคราวหรืออินเทอมีเดียตโคด (Intermediate code) ซึ่งสามารถนำไปทำงานได้ด้วยการใช้โปรแกรมในการอ่านและทำงานตามรหัสชั่วคราวนั้น โดยโปรแกรมนี้จะมีหลักการทำงานคล้ายกับอินเทอพรีเตอร์ แต่จะทำงานได้เร็วกว่าเนื่องจากรหัสชั่วคราวจะใกล้เคียงกับภาษาเครื่องมาก มีข้อดีคือสามารถนำรหัสชั่วคราวนั้นไปใช้ได้กับทุก ๆ เครื่องที่มีโปรแกรมตีความได้ทันที


ที่มา:https://sites.google.com/site/thekno31102/sxftwaeru-laea-kar-leuxk-chi