บทที่ 4 ซอฟต์แวร์
ความหมายของซอฟต์แวร์ กลุ่มของชุดคำสั่งที่เขียนขึ้นเพื่อให้คอมพิวเตอร์ทำงานได้ตามที่ต้องการ การที่คอมพิวเตอร์ทำงานได้อย่างอัตโนมัติโดยที่มนุษย์ไม่ต้องเข้าไปเกี่ยวข้องในการประมวลผลนั้น ส่วนหนึ่งเป็นผลจากการทำงานของซอฟต์แวร์นั่นเอง โดยปกติแล้วผู้เขียนชุดคำสั่งนี้ขึ้นมาเรามักเรียกว่า นักเขียนโปรแกรม
ประเภทของซอฟต์แวร์ 1. ซอฟต์แวร์ระบบ (System Software) เป็นซอฟต์แวร์ที่เกี่ยวข้องกับการทำงานที่ใกล้ชิดกับอุปกรณ์คอมพิวเตอร์มากที่สุด โดยจะทำหน้าที่ติดต่อ ควบคุมและสั่งการให้อุปกรณ์คอมพิวเตอร์สามารถทำงานอย่างมีประสิทธิภาพและสอดคล้องกันให้ได้มากที่สุด รวมถึงการบำรุงรักษาระบบตัวเครื่องคอมพิวเตอร์ให้มีการใช้งานได้ยาวนานขึ้น ซอฟต์แวร์ระบบแบ่งออกได้เป็น 2 ประเภทด้วยกันคือ - ระบบปฏิบัติการ(Operating systems) - โปรแกรมอรรถประโยชน์(utility programs)
ประเภทของซอฟต์แวร์ 2. ซอฟต์แวร์ประยุกต์ (Application Software) เป็นซอฟต์แวร์ที่พัฒนาขึ้นมาเพื่อใช้เฉพาะด้านเท่านั้นไม่เกี่ยวข้องกับการควบคุมระบบของคอมพิวเตอร์ แต่จะทำงานโดยเรียกใช้อุปกรณ์ต่างๆ ผ่านซอฟต์แวร์ระบบอีกทอดหนึ่งดังที่กล่าวแล้ว ซอฟต์แวร์กลุ่มนี้สามารถแบ่งออกได้หลายชนิดขึ้นอยู่กับลักษณะเกณฑ์ที่ใช้แบ่ง ซึ่งพอจะสรุปได้ดังนี้
ประเภทของซอฟต์แวร์ 2.1 แบ่งตามลักษณะการผลิต ได้ 2 ประเภท คือ - ซอฟต์แวร์ที่พัฒนาขึ้นใช้เองโดยเฉพาะ(Proprietary Software) - ซอฟต์แวร์ที่หาซื้อได้โดยทั่วไป(Off-the-self Software และ Packaged Software)
ประเภทของซอฟต์แวร์ 2.2 แบ่งตามกลุ่มการใช้งาน ได้ 3 กลุ่มใหญ่ คือ - กลุ่มการใช้งานทางด้านธุรกิจ(business) - กลุ่มการใช้งานทางด้านกราฟิกและมัลติมีเดีย(graphic and multimedia) - กลุ่มสำหรับการใช้งานบนเว็บและการติดต่อสื่อสาร(web and communications)
ระบบปฏิบัติการ (OS-Operating System) ควบคุมและประสานงานระหว่างอุปกรณ์ภายในคอมพิวเตอร์ทั้งหมด ตั้งแต่ซีพียู หน่วยความจำ ไปจนถึงส่วนนำเข้าและส่งผลลัพธ์ บางครั้งก็นิยมเรียกรวมๆ ว่า แพลตฟอร์ม (platform)
คุณสมบัติการทำงาน การทำงานแบบ Multi-Tasking ความสามารถในการทำงานได้หลายๆ งานหรือหลายๆ โปรแกรมในเวลาเดียวกัน การทำงานแบบ Multi–User ความสามารถในการทำงานกับผู้ใช้ได้หลายๆ คน ขณะที่มีการประมวลผลของงานพร้อมๆ กัน ทำให้กระจายใช้ได้ทั่วถึงมากยิ่งขึ้น
ประเภทของระบบปฏิบัติการ ระบบปฏิบัติการแบบเดี่ยว (stand-alone OS) ระบบปฏิบัติการแบบเครือข่าย (network OS) ระบบปฏิบัติการแบบฝัง (embedded OS)
ระบบปฏิบัติการแบบเดี่ยว (stand-alone OS) * DOS (Disk Operating System) * Windows * Mac OS X
ระบบปฏิบัติการแบบเครือข่าย (network OS) * Windows Server * Unix * Linux * OS/2 Warp Server * Solaris
ระบบปฏิบัติการแบบฝัง (Embedded OS) * Windows Mobile * Palm OS * Symbian OS * OS X * Android
โปรแกรมอรรถประโยชน์ (Utility programs) เป็นโปรแกรมที่สำคัญกับการทำงานของระบบคอมพิวเตอร์เช่นเดียวกัน ส่วนใหญ่จะมีขนาดเล็กกว่าระบบปฏิบัติการ คุณสมบัติในการใช้งานนั้นค่อนข้างหลากหลายหรือใช้งานได้แบบอรรถประโยชน์ มักนิยมเรียกสั้นว่า ยูทิลิตี้ แบ่งออกเป็น 2 ชนิด คือ ยูทิลิตี้สำหรับระบบปฏิบัติการ (OS Utility Program) และยูทิลิตี้อื่นๆ (Stand-Alone Utility Program)
ซอฟต์แวร์ประยุกต์แบ่งตามลักษณะการผลิต (Application Software) ซึ่งแบ่งออกได้เป็น 2 ประเภท ดังนี้ ซอฟต์แวร์ที่พัฒนาขึ้นใช้เองโดยเฉพาะ (Proprietary Software) ซอฟต์แวร์ที่หาซื้อได้โดยทั่วไป (Off-the-shelf Software หรือ Package Software)
การใช้งานซอฟต์แวร์ แบบสำเร็จรูป (Packaged หรือ Ready-made Software) แบบว่าจ้างทำ (Customized หรือ Tailor-made Software) แบบทดลองใช้ (Shareware) แบบใช้งานฟรี (Freeware) แบบโอเพ่นซอร์ส (Public-Domain/Open Source)
ซอฟต์แวร์ที่พัฒนาเอง ซอฟต์แวร์ที่หาซื้อได้โดยทั่วไป การใช้งานซอฟต์แวร์ ซอฟต์แวร์ที่พัฒนาเอง ซอฟต์แวร์ที่หาซื้อได้โดยทั่วไป ข้อดี ข้อเสีย สามารถเพิ่มเงื่อนไขและความต้องการต่าง ๆ ได้ไม่จำกัด ต้องใช้ระยะเวลาในการออกแบบและพัฒนามากเพื่อที่จะได้คุณสมบัติตรงตามที่ต้องการจริงๆ ค่าใช้จ่ายค่อนข้างถูกเนื่องจากบริษัทผู้ผลิตซอฟต์แวร์เหล่านี้นำออกมาจำหน่ายให้กับผู้ใช้งานเป็นจำนวนมาก คุณสมบัติบางอย่างอาจจะไม่ได้ใช้เลย ซึ่งเป็นคุณสมบัติที่เกินความต้องการใช้งานใดๆ สามารถที่จะควบคุมและพัฒนาให้เป็นไปตามที่ต้องการได้ตลอดระยะเวลาการพัฒนานั้น ทีมงานที่พัฒนา อาจจะถูกกดดันอย่างมาก เพราะจะถูกคาดหวังว่าต้องได้คุณสมบัติตรงตามความต้องการุกประการ และยังต้องเสียเวลาดูแลและบำรุงรักษาระบบนั้น ๆ ตามมาอีกด้วย มีความเสี่ยงในการใช้งานต่ำ และสามารถศึกษาคุณสมบัติและประสิทธิภาพของโปรแกรมได้โดยตรงจากคู่มือที่มีให้ โปรแกรมจะขาดคุณสมบัติบางอย่าง หากต้องการเปลี่ยนแปลงอาจต้องจ่ายเงินในราคาที่แพงขึ้น แต่ในบางโปรแกรมก็ไม่สามารถเปลี่ยนแปลงได้
ซอฟต์แวร์ที่พัฒนาเอง ซอฟต์แวร์ที่หาซื้อได้โดยทั่วไป การใช้งานซอฟต์แวร์ ซอฟต์แวร์ที่พัฒนาเอง ซอฟต์แวร์ที่หาซื้อได้โดยทั่วไป ข้อดี ข้อเสีย มีความยืดหยุ่นในการทำงานได้ดีกว่า หากเกิดการเปลี่ยนแปลงในการใช้งาน เช่น ข้อมูลผู้ขาย ลูกค้า หรือการปรับเปลี่ยนกลยุทธ์ธุรกิจใหม่ ๆ ซึ่งจะแก้ไขและเปลี่ยนแปลงได้ง่ายกว่า มีความเสี่ยงของระบบต่อความผิดพลาดสูง เนื่องจากในระหว่างการพัฒนาระบบหากไม่ได้นำไปทดสอบอย่างจริงจัง อาจจะทำให้คุณสมบัติบางอย่างของโปรแกรมและประสิทธิภาพโดยรวมไม่ได้พอ จึงทำให้เกิดปัญหาขึ้นมาได้ โปรแกรมที่ได้มีคุณภาพดีกว่า เนื่องจากผู้ใช้จำนวนมากได้ทำการทดสอบและแจ้งแก้ไขปัญหาของการใช้งานกับผู้ผลิตโปรแกรมมาเป็นอย่างดีแล้ว ไม่มีความยืดหยุ่นและอาจไม่เหมาะสมกับงานในปัจจุบันที่จำเป็นต้องปรับเปลี่ยนหรือแก้ไขระบบอยู่บ่อย ๆ
ซอฟต์แวร์ประยุกต์แบ่งตามกลุ่มการใช้งาน กลุ่มการใช้งานทางด้านธุรกิจ (business) กลุ่มการใช้งานทางด้านกราฟิกและมัลติมีเดีย (graphic and multimedia) กลุ่มสำหรับการใช้งานบนเว็บและการติดต่อสื่อสาร (web and communications)
กลุ่มการใช้งานทางด้านธุรกิจ (Business) ลักษณะโปรแกรม ตัวอย่างโปรแกรม ประมวลผลคำ(Word Processing) *Microsoft Word *Sun StarOffice Writer ตารางคำนวณ(Spreadsheet) *Microsoft Excle *Sun StarOfficeCalc ฐานข้อมูล(Database) *Microsoft Access *Oracle *MySQL นำเสนองาน(Presentation) *Microsoft Powerpoint *Sun StarOffice Impress
กลุ่มการใช้งานทางด้านธุรกิจ (Business) ลักษณะโปรแกรม ตัวอย่างโปรแกรม สำหรับพีดีเอ(PDA Software) *Microsoft Pocket Outlook *Microsoft Pocket Excle *QuickNotes แบบกลุ่ม(Software Suite) *Microsoft Office *Sun StarOffice *Pladao Office จัดการโครงการ(Project Management) *Microsoft Project งานบัญชี(Accounting) *Intuit QuickBooks *Peachtree
กลุ่มการใช้งานทางด้านกราฟิกและมัลติมีเดีย (Graphics and Multimedia) ลักษณะโปรแกรม ตัวอย่างโปรแกรม งานออกแบบ (Computer Aided Design - CAD) Autodesk AutoCAD Microsoft Visio Professional งานสิ่งพิมพ์ (Desktop Publishing) Adobe InDesign Corel VENTURA QuarkXPress ตกแต่งภาพ (Paint/Image Editing) Adobe Illustrator Adobe Photoshop CoreIDRAW FreeHand ตัดต่อวิดีโอและเสียง (Video and Audio Editing) Adobe Premiere Cakewalk SONAR Pinnacle Studio DV
กลุ่มการใช้งานทางด้านกราฟิกและมัลติมีเดีย (Graphics and Multimedia) ลักษณะโปรแกรม ตัวอย่างโปรแกรม สร้างสื่อมัลติมีเดีย (Multimedia Authoring) Toolbook Instructor Adobe Authorware Adobe Director สร้างเว็บ (Web Page Authoring) Adobe Dreamweaver Adobe Fireworks Adobe Flash Microsoft FrontPage
กลุ่มสำหรับการใช้งานบนเว็บและการติดต่อสื่อสาร (Web and Communications) ลักษณะโปรแกรม ตัวอย่างโปรแกรม จัดการอีเมล์ (Electronic mail) Microsoft Outlook Outlook Express Mozzila Thunderbird ท่องเว็บ (Web browser) Microsoft Internet Explorer Mozzila Firefox Opera ประชุมทางไกล (Video Conference) Microsoft Netmeeting ถ่ายโอนไฟล์ (File Transfer) Cure_FTP WS_FTP
กลุ่มสำหรับการใช้งานบนเว็บและการติดต่อสื่อสาร (Web and Communications) ลักษณะโปรแกรม ตัวอย่างโปรแกรม ส่งข้อความด่วน (Instant messaging) MSN Messenger / Windows Messenger ICQ สนทนาบนอินเตอร์เน็ต (IRC) PIRCH MIRC
ภาษาคอมพิวเตอร์ (Computer Programming Languages) ภาษาคอมพิวเตอร์ยุคที่ 1 (first generation language) เป็นยุคที่คอมพิวเตอร์มีการใช้งานโดย ภาษาเครื่อง (machine language) ซึ่งอยู่ในกลุ่มของภาษาระดับต่ำ (low-level language) ประกอบด้วยตัวเลขเฉพาะ 0 และ 1 เท่านั้น
ภาษาคอมพิวเตอร์ (Computer Programming Languages) ภาษาคอมพิวเตอร์ยุคที่ 2 (second generation language) ภาษาที่ใช้ในยุคนี้เรียกว่า ภาษาแอสแซมบลี (assembly language) ซึ่งได้นำเอาคำย่อ รวมถึงสัญลักษณ์ต่างๆ มาใช้แทนตัวเลข 0 กับ 1 ทำให้การจดจำคำสั่งต่างๆ ง่ายขึ้น
ภาษาคอมพิวเตอร์ (Computer Programming Languages) ภาษาคอมพิวเตอร์ยุคที่ 3 (third generation language) ในยุคนี้จึงได้เกิดการพัฒนาภาษาคอมพิวเตอร์ให้มีรูปแบบใกล้เคียงกับภาษาของมนุษย์มากยิ่งขึ้น หรือที่เรียกว่า ภาษาระดับสูง (high-level language)
ภาษาคอมพิวเตอร์ (Computer Programming Languages) ภาษาคอมพิวเตอร์ยุคที่ 4 (fourth generation language) ภาษาคอมพิวเตอร์ในยุคนี้เรียนกว่า ภาษาระดับสูงมาก (very-high level language) รูปแบบของภาษาคอมพิวเตอร์ดังกล่าว อาจใช้เพียงแค่การหยิบและวางปุ่มคำสั่งบางอันลงไป โดยที่ผู้เขียนโปรแกรมจะรู้เพียงแค่ว่าจะให้คอมพิวเตอร์ทำอะไรบ้างเท่านั้น ไม่จำเป็นต้องทราบว่ามันจะทำได้อย่างไร เพราะจะเป็นหน้าที่ของภาษาระดับสูงมากนี้มาจัดการแทนเอง ซึ่งเป็นการเขียนโดยอาศัยหลักการแบบที่ไม่เป็นลำดับขั้นตอนที่แน่นอน หรือ nonprocedural language
ภาษาคอมพิวเตอร์ (Computer Programming Languages) ภาษาคอมพิวเตอร์ยุคที่ 5 (fifth generation language) ในยุคนี้จะเป็นการใช้ภาษาที่ใกล้เคียงกับภาษาของมนุษย์มากขึ้นไปอีกหรือที่เรียกว่า ภาษาธรรมชาติ (natural language) ซึ่งจะทำงานโดยอาศัยระบบฐานความรู้ (knowledge base system) เพื่อช่วยในการแปลความหมายของคำสั่งต่างๆ และทำให้คอมพิวเตอร์เข้าใจและจดจำโครงสร้างนั้นๆ ไว้ได้ ซึ่งนิยมนำเอาไปใช้กับคอมพิวเตอร์ที่เกี่ยวข้องกับสาขาปัญญาประดิษฐ์ (AI – Artificial Intelligence)
ตัวแปลภาษาคอมพิวเตอร์ (translator) ทำหน้าที่เป็นตัวกลางในการแปลความหมายหรือภาษาของชุดคำสั่งที่มนุษย์เขียนขึ้นให้อยู่ในรูปแบบของภาษาที่คอมพิวเตอร์จะเข้าใจได้
ตัวแปลภาษาคอมพิวเตอร์ (translator) แอสแซมเบลอร์ (Assemblers) เป็นตัวแปลภาษาซึ่งทำหน้าที่แปลความหมายที่เป็นสัญลักษณ์ในการเขียนชุดคำสั่งด้วย ภาษาแอสแซมบลีให้เป็น ภาษาเครื่อง ซึ่งใช้งานร่วมกับการเขียนโปรแกรมในภาษาระดับต่ำ (low-level language)
ตัวแปลภาษาคอมพิวเตอร์ (translator) อินเตอร์พรีเตอร์ (Interpreters) ใช้สำหรับการเขียนโปรแกรมในภาษาระดับสูง (high-level language) ทำหน้าที่แปลความหมายของชุดคำสั่งเช่นเดียวกัน แต่การทำงานจะแปลทีละบรรทัดคำสั่ง
ตัวแปลภาษาคอมพิวเตอร์ (translator) คอมไพเลอร์ (Compilers) เป็นการทำงานกับภาษาระดับสูง (high-level language) เช่นเดียวกันกับอินเตอร์พรีเตอร์ แต่เป็นการแปลความหมายของชุดคำสั่งที่เขียนทั้งหมดในคราวเดียวกัน เมื่อแปลความหมายของชุดคำสั่งต่างๆ หมดแล้วจะได้สัญลักษณ์ของรหัสคำสั่งหรือ object code ที่สามารถเก็บไว้ใช้ได้อีกเมื่อต้องการ
บทที่ 4 ซอฟต์แวร์ คำถามท้ายบท 1.จงอธิบายความหมายและประโยชน์ของซอฟต์แวร์ว่ามีอะไรบ้าง 2.จงอธิบายความหมายของซอฟต์แวร์ระบบมาพอสังเขป 3.จงอธิบายประเภทของซอฟต์แวร์ระบบว่ามีกี่ประเภท อะไรบ้าง 4.จงอธิบายความหมายของซอฟต์แวร์ประยุกต์มาพอสังเขป 5.จงอธิบายประเภทของซอฟต์แวร์ประยุกต์ว่ามีกี่ประเภท อะไรบ้าง 6.จงอธิบายความสำคัญและหน้าที่ของซอฟต์แวร์ระบบ และซอฟต์แวร์ประยุกต์ 7.จงบอกประเภทและชนิดของซอฟต์แวร์ระบบที่จำเป็นต้องใช้ในคอมพิวเตอร์ 8.จงอธิบายการเลือกใช้ซอฟต์แวร์คอมพิวเตอร์ 9.จงจำแนกและเปรียบเทียบความแตกต่างระหว่างซอฟต์แวร์แต่ละประเภท 10. ให้นักศึกษาบอกวิธีการประยุกต์ใช้ซอฟต์แวร์มาให้มากที่สุด