การพัฒนาซอฟต์แวร์ เขียนโปรแกรม จัดทำข้อมูล และวิจัย

บทบาทของเทคโนโลยีต่อการดำรงชีวิต

%e0%b9%80%e0%b8%97%e0%b8%84%e0%b9%82%e0%b8%99%e0%b9%82%e0%b8%a5%e0%b8%a2%e0%b8%b5

เทคโนโลยีมีบทบาทต่อการดำรงชีวิตของมนุษย์เพราะมนุษย์ได้ใช้เทคโนโลยีเข้ามาเกี่ยวข้องในการพัฒนาในด้านต่างๆเพื่อการดำรงอยู่ของมนุษย์ เช่น

  1. เทคโนโลยีกับการพัฒนาอุตสาหกรรม

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

  1. เทคโนโลยีกับการพัฒนาด้านการเกษตร

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

3.เทคโนโลยีกับการพัฒนาด้านการสื่อสาร

(เทคโนโลยีสารสนเทศ)

โลกในทุกวันนี้ ที่การสร้างความสัมพันธ์ทางด้านสังคม กลับไม่ได้เป็นแค่การมาพบปะพูดคุย มองเห็นรูปร่างหน้าตา บุคลิกภาพหรือทำกิจกรรมร่วมกันแต่เพียงอย่างเดียวเท่านั้น แต่กลับอาศัยเทคโนโลยีเข้ามาช่วยในการพัฒนาทางด้านสังคมให้เกิดขึ้น จนเราเรียกกันติดหูว่า สังคมเครือข่าย (Social Network) หรือสังคมออนไลน์นั่นเอง

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

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

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

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

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

กัน และติดต่อกับคนได้ทั่วโลก  จึงเป็นที่แน่ชัดว่าแนวโน้มการเปลี่ยนแปลงทางวัฒนธรรม  เศรษฐกิจ  สังคม และการเมืองจึงมีลักษณะเป็นสังคมโลกมากขึ้น การเปลี่ยนแปลงของแนวโน้มโลกจึงขึ้นกับเทคโนโลยีสารสนเทศ

กระบวนการพัฒนา Softwar

กระบวนการพัฒนา Software หมายถึงโครงสร้างหรือขั้นตอนในการพัฒนา Software ซึ่งมีคำเหมือนและคำคล้ายคือ Software life cycle และ Software process ซึ่งกระบวนการพัฒนา Software ที่กล่าวถึงในที่นี้จะมีหลายรูปแบบ (model) ด้วยกัน ซึ่งในแต่ละรูปแบบนั้นจะอธิบายถึงวิธีการหรือกลุ่มของกิจกรรมที่เป็นขั้นตอนในระหว่างของการพัฒนา Software

image002

กระบวนการพัฒนา Software นั้นจะประกอบด้วยหลายกิจกรรมซึ่งอาจแสดงได้ดังต่อไปนี้

  1. Conception คือการกำหนดถึงเป้าหมายและสิ่งที่ต้องการของธุรกิจในการพัฒนา Software
  2. Requirements Analysis คือการระบุถึงความต้องการของผู้ใช้งานต่อการทำการพัฒนา Software ซึ่งการกำหนดความต้องการของผู้ใช้งานบางอย่างนั้นอาจมีความจำเป็นต้องใช้ทักษะและความสามารถในการพัฒนา Software อย่างมาก
  3. Specification คือการกำหนดความต้องการของผู้ใช้งานในขั้นตอน Requirements Analysis ลงในรูปแบบที่สามารถอธิบายได้ ซึ่งอาจเป็นภาษาทางคณิตศาสตร์หรือ Programming language ก็ได้
  4. Software Architecture เป็นขั้นตอนการสร้างแบบจำลองของ Software ขึ้นมาเพื่อให้ผู้ใช้งานสามารถมองเห็น Software ที่จะทำการพัฒนาได้อย่างเป็นรูปธรรมมากขึ้น โดนส่วนมาก ขั้นตอนนี้จะเป็นการยืนยันว่าการพัฒนา Software เป็นไปตามความต้องการของผู้ใช้งานหรือไม่ บางครั้งอาจรวมไปถึงการกำหนดความต้องการของผู้ใช้งานในอนาคต (Future requirements) รวมถึงการเชื่อมโยง (Interface) กับ Software อื่นๆ
  5. Implementation (หรือ coding) คือการเริ่มสร้าง Software จริง
  6. Testing คือการทดสอบการทำงานของ Software ว่าตรงตามความต้องการของผู้ใช้งานหรือไม่
  7. Documentation มักเป็นขั้นตอนที่ถูกปล่อยปะละเลยมากที่สุด ขั้นตอน Documentation คือการทำเอกสารที่เกี่ยวข้องกับการทำ Software ไว้เพื่อประโยชน์ในการทำการบำรุงรักษาหรือพัฒนาระบบในอนาคต
  8. Software Training and Support การทำการฝึกอบรมผู้ใช้งานให้รู้จักกับระบบหรือ Software ดีพอ ทั้งนี้นอกจากเพื่อการศึกษาระบบซึ่งเป็นสิ่งจำเป็นสำหรับผู้ใช้งานแล้วยังเป็นจุดเริ่มต้นของการคิดพัฒนาระบบหรือ Software ให้มีประสิทธิภาพมากขึ้นในอนาคตอีกด้วย
  9. Maintenance การบำรุงรักษาระบบหรือ Software ซึ่งอาจรวมถึงการแก้ไขปัญหาต่างๆจากการใช้งานหรือการดัดแปลงแก้ไขเพื่อเพิ่ม

เปิดตัว Office เวอร์ชั่น 2016 ที่ปลอดภัยที่สุด

office2016-mac-heroปัจจุบันเทคโนโลยีมีบทบาทสำคัญในการขับเคลื่อนนวัตกรรมในองค์กร และสามารถเป็นกำลังสำคัญในการช่วยให้ทุกคนและทุกองค์กรบนโลกบรรลุผลสำเร็จที่ดียิ่งขึ้น การเปิดตัว Office เวอร์ชั่น 2016 ซึ่งเป็นโปรแกรมออฟฟิสที่ปลอดภัยที่สุดในครั้งนี้เป็นการแสดงให้เห็นถึงความตั้งใจของไมโครซอฟท์ในการพัฒนาเพื่อเปลี่ยนรูปแบบการใช้ชีวิตและการทำงานยุคดิจิตัล เชื่อว่าด้วยการทำงานของ Office 365 บนระบบคลาวด์จะช่วยเพิ่มขีดความสามารถให้คนไทยและธุรกิจในประเทศไทยทำงานร่วมกันได้อย่างคล่องตัวและมีประสิทธิภาพ โดย Office 2016 บน Windows นั้นมีการปรับโฉมฟังก์ชั่นการทำงานใหม่ๆของ Word, Excel, PowerPoint, Outlook, OneNote, Project, Visio, Publisher และ Access โดยที่ไม่กระทบกับการทำงานของผู้ใช้เวอร์ชั่นเดิม อีกทั้งผู้ใช้งานที่สมัครสมาชิก Office 365 แน่นอนว่าจะสามารถดาวน์โหลดเวอร์ชั่น 2016 ได้ทันที และเมื่อติดตั้งอย่างเต็มรูปแบบแล้วจะสามารถใช้งานได้บนอุปกรณ์ที่หลากหลาย รวมไปถึงบริการฟีเจอร์ต่างๆ

โดย office 2016 เวอร์ชั่นใหม่นี้พร้อมใช้งานใน 40 ภาษา รวมถึงภาษาไทย และสามารถใช้งานบน Windows 7 ขึ้นไป ผู้ใช้งานที่เป็นสมาชิกของ Office 365 สามารถเลือกดาวน์โหลด Office 2016 ได้แล้ววันนี้ สำหรับสมาชิกที่เป็นลูกค้ารายบุคคลและลูกค้าเอสเอ็มอีจะได้รับการอัปเดทอัตโนมัติในเดือนตุลาคมเป็นต้นไป และสำหรับลูกค้าองค์กรจะเริ่มการอัปเดทอัตโนมัติในต้นปีหน้า นอกจากนี้ผู้ใช้งานทั่วไปสามารถหาซื้อ Office เวอร์ชั่น 2016 แบบซื้อครั้งเดียวสำหรับใช้กับเครื่องคอมพิวเตอร์พีซีและแม็คได้แล้วตั้งแต่วันนี้เป็นต้นไป

การทำงานร่วมกันในทีม
>  Outlook 2016 ระบบแยกอีเมลที่ฉลาดกว่าเดิม ค้นหาได้รวดเร็ว รองรับการแนบไฟล์จาก OneDrive
>  OneDrive for Business รองรับการ sync ระหว่าง Winodws และ Mac พร้อมเพิ่มพื้นที่การใช้งานให้มากกว่าเดิม
>  Tell Me ช่วยค้นหาฟีเจอร์ของ Office ที่ผู้ใช้ต้องการ และ Smart Lookup สำหรับนำข้อมูลจากเว็บไซต์ต่าง ๆ มาแทรกในเอกสารได้โดยตรง
>  Excel 2016 รองรับการทำงานร่วมกับ Power BI เพิ่ม Chart รูปแบบใหม่ๆ
>  รายการไฟล์ที่ใช้งานล่าสุดที่แสดงบนทุกอุปกรณ์ เลือกเปิดไฟล์ทำงานต่อบนอุปกรณ์อื่นๆได้อย่างสะดวกรวดเร็ว

การใช้งานร่วมกับ Windows 10
>  รองรับการเข้าสู่ระบบด้วย Windows Hello
>  Outlook 2016 จะรองรับ Cortana
>  Office Mobile apps และ Continuum บน Windows Phone ที่ทำให้สามารถใช้สมาร์ทโฟนทำงานแทน PC ได้
>  Sway บน Windows 10 สำหรับสร้างเนื้อหาบทความดีไซน์สวยงาม ดูน่าอ่านไม่ว่าจะแสดงผลอยู่บนหน้าจอใดๆ
>  แอพฯ Office Mobile สำหรับ Windows 10 ที่สามารถใช้งานได้บนทุกอุปกรณ์ที่ใช้ Windows 10

การเขียนเขียนคุณลักษณะซอฟต์แวร์

คุณลักษณะซอฟต์แวร์ (Software Specification) เป็นข้อกำหนดลักษณะหน้าที่ และวิธีการทำงานของซอฟต์แวร์ว่า ซอฟต์แวร์นี้ต้องทำอะไรบ้าง จึงจะสนองความต้องการของผู้ใช้ เช่น จะต้องใช้ข้อมูลอะไร จะจัดเก็บข้อมูลอะไร จะผลิตหรือประมวลผลข้อมูลอะไร ลักษณะของข้อมูลเป็นอย่างไร มีขอบเขตข้อจำกัดอะไร ฯลฯ

การกำหนดคุณลักษณะซอฟต์แวร์สามารถ ทำได้หลายวิธี เช่น

สอบถามผู้ใช้โดยตรงว่า ต้องการให้ซอฟต์แวร์ทำหน้าที่อะไรบ้าง การสอบถามต้องมีเทคนิคในการสื่อสารที่ดี โดยอาจจะมีการยกตัวอย่างสภาพการณ์ (scenario-based requirement analysis) ในแนวว่า “ถ้า (สถานการณ์) เกิดขึ้น จะทำอย่างไร” เช่น ถ้าโจทย์คือ การจัดการพัสดุของร้านค้า นักวิเคราะห์ระบบอาจถามว่า “ถ้าสินค้าที่สั่งซื้อไม่มาส่งตามกำหนด ทางร้านจะทราบได้เมื่อใด และจะดำเนินการอย่างไร”

ศึกษาวิธีการดำเนินงานตามปกติก่อนนำคอมพิวเตอร์มาใช้ และหาจุดอ่อนที่จะต้องนำซอฟต์แวร์เข้ามาใช้ เพื่อเพิ่มประสิทธิภาพ

สำรวจความต้องการของตลาดว่า คนส่วนใหญ่ต้องการให้คอมพิวเตอร์ช่วยงานด้านใด ในลักษณะใด และต้องการความบันเทิงจากคอมพิวเตอร์อย่างไร ฯลฯ

ศึกษาจากลักษณะของซอฟต์แวร์เก่าที่ทำงานด้านนี้อยู่แล้ว ฯลฯ

สรุปผลการวิเคราะห์ข้อกำหนดลักษณะของซอฟต์แวร์สามารถแบ่งได้เป็น ๓ รูปแบบ คือ รูปแบบข้อมูล รูปแบบหน้าที่งาน และรูปแบบการทำงาน วิธีการนำเสนออาจแสดงเป็นแผนผังแบบต่างๆ เช่น แสดงด้วยแผนผังการไหลของข้อมูล (Data Flow Diagram) แสดงด้วยแผนผังความสัมพันธ์ของข้อมูล (Entity – Relationship Diagram) ฯลฯ ส่วนศัพท์ว่าข้อมูลใดคืออะไร จะต้องอธิบายอยู่ในพจนานุกรมข้อมูล (Data Dictionary)

การลดความเสี่ยงในการพัฒนา Software

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

เนื่องจาก software นั้นไม่มีรูปแบบที่แน่นอนยากต่อการทำความเข้าใจยิ่งเมื่อมีหลายๆ ระบบทำงานด้วยกันยิ่งน่ากลัวความเสี่ยงก็เพิ่มมากขึ้นไปอีก ดังนั้น ในขั้นตอนการพัฒนา software ที่ดีควรสนใจในการลดความเสี่ยงต่างๆ ลงไป โดยการค้นหาปัญหาตั้งแต่เนิ่นเพราะจะได้มีเวลาในการแก้ไขและปรับปรุงให้ดีขึ้นโดย 1.Integrate continuously ที่ควรทำก่อนอันดับแรกเพื่อจะได้รู้ว่ามีปัญหาอะไรบ้างเป็นการลดความเสี่ยงในการพัฒนา software 2.Avoid branching ถ้ามี code เพียงชุดเดียว ความเสี่ยงก็จะน้อยลงไปมาก 3.Invest in automated tests โดยการตรวจสอบความถูกต้องในการทำงานต่างๆของการพัฒนาที่มันซ้ำๆ 4.Identify areas of risk ความเสี่ยงต่างๆ ในการพัฒนา software มักจะมาจากสิ่งที่เราไม่รู้และไม่สามารถควบคุมได้ ดังนั้น จึงเริ่มต้นด้วยการหาวิธีการแก้ไขและแยกส่วนนั้นๆ ออกมา 5.Work through unknowns โดยเริ่มต้นการพัฒนา software ด้วยการแยกสิ่งที่รู้และไม่รู้ ออกจากกัน 6.uild the smallest pieces that show value ปัญหาสำคัญ เพราะสิ่งเล็กๆ เหล่านั้น มันต้องมีคุณค่าต่อลูกค้า และ ทีมพัฒนาด้วยเสมอ 7.Validate often ผู้ใช้งานจะไม่รู้ว่าตัวเองต้องการอะไรจนกว่าจะเห็นและลองใช้ ดังนั้น ผู้สร้าง softwareจะต้องทำให้ลูกค้าเห็นและใช้งานตั้งแต่เนิ่นๆ บ่อยๆจะช่วยทำให้เรารู้ว่า สิ่งที่กำลังสร้างมานั่นมันใช่หรือไม่ จะได้ปรับเปลี่ยนได้ง่ายขึ้น

จะเห็นได้ว่า การลดความเสี่ยงในการพัฒนา software นั้น จะช่วยทำให้มั่นใจว่าสิ่งที่สร้างอยู่นั้นถูกต้องและตรงกับความต้องการของผู้ใช้ และหากได้รับ feedback กลับมาจากลูกค้าหรือผู้ใช้งานได้อย่างรวดเร็วและบ่อยๆ ก็จะสามารถนำข้อมูลที่มีการ feedback เหล่านั้นกลับมาช่วยทำให้การพัฒนา software มีความสำเร็จมากยิ่งขึ้น ดังนั้น ผู้พัฒนา software จำเป็นอย่างยิ่งที่จะต้องมีการเรียนรู้วิธีการลดความเสี่ยงต่างๆเหล่านี้

ภาษาคอมพิวเตอร์ สำหรับการพัฒนาโปรแกรมให้มีคุณภาพ

ภาษาคอมพิวเตอร์ หมายถึง โปรแกรมหรือชุดคำสั่งที่มนุษย์เขียนขึ้นเพื่อสั่งงานให้คอมพิวเตอร์ทำงานตามความต้องการ ภาษาที่ใช้เขียนโปรแกรมคอมพิวเตอร์มีมากมาย แต่ละภาษาจะมีลักษณะโครงสร้างและกฎเกณฑ์ที่แตกต่างกัน โดยทั่วไปจะแบ่งภาษาคอมพิวเตอร์ได้ 3 ระดับคือ
1. ภาษาเครื่อง (Machine Language) ภาษาเครื่องเป็นภาษารหัสตัวเลข ที่เครื่องคอมพิวเตอร์สามารถรับรู้และปฏิบัติตามได้ทันที ผู้ใช้เครื่องคอมพิวเตอร์ยุคแรก ๆ ต้องเขียนโปรแกรมด้วยภาษาเครื่อง ซึ่งเป็นภาษาที่คนทำความเข้าใจยาก นอกจากนั้นเครื่องคอมพิวเตอร์แต่ละเครื่องยังใช้รหัสเลขที่ต่างกันด้วย ดังนั้นการใช้คอมพิวเตอร์ โดยใช้ภาษาเครื่องจึงเป็นเรื่องที่ยุ่งยาก และมักจะเกิดความผิดพลาดเสมอ แต่ก็เป็นภาษาที่เครื่องคอมพิวเตอร์สามารถเข้าใจและทำงานได้อย่างง่ายดาย
2. ภาษาระดับต่ำ (Low Level Language) ภาษาระดับต่ำเป็นภาษาที่ใกล้เคียงกับภาษาเครื่องมาก จึงเรียกได้ว่าเป็นภาษาอิงเครื่อง (Machine Oriented Language) เป็นภาษาที่ใช้รหัสตัวเลขประกอบกับอักขระภาษาอังกฤษด้วย เช่น ภาษาแอสเซมบลี (Assembly Language) ภาษาระดับต่ำนี้ เขียนได้ง่ายขึ้น แต่ภาษาแอสเซมบลี นี้ เครื่องคอมพิวเตอร์ไม่สามารถเข้าใจภาษาได้โดยตรง เวลาใช้งานจำเป็นต้องอาศัยโปรแกรมแปลภาษาเอสเซมเบลอ (Assembler Programme) และโปรแกรมเอสแซมเบลอที่ใช้กับคอมพิวเตอร์เครื่องหนึ่งจะใช้กับคอมพิวเตอร์เครื่องอื่น ๆ ไม่ได้
3. ภาษาระดับสูง (High Level Language) ภาษาระดับสูงเป็นภาษาที่อำนวยความสะดวก ให้กับคนเขียนโปรแกรมอย่างมาก ลักษณะคำสั่งใช้ภาษาอังกฤษที่ผู้อ่านเข้าใจได้ ซึ่งเป็นภาษาที่เขียนและเข้าใจง่ายกว่า ภาษาเอสแซมบลี แต่เครื่องคอมพิวเตอร์จะไม่เข้าใจได้ทันทีต้องอาศัยตัวแปลภาษา เช่น ภาษาฟอร์แทรน (FORTRAN) ภาษาโคบอล (COBOL) ภาษาเบสิค (BASIC) และภาษาอาร์พีจี (RPG) เป็นต้น

ภาษาคอมพิวเตอร์สำหรับการพัฒนาโปรแกรมมีอยู่มากมาย แต่ละภาษามีโครงสร้างของโปรแกรม ไวยากรณ์ และความสามารถ ใช้สภาพแวดล้อมของคอมพิวเตอร์ที่แตกต่างกัน ภาษาคอมพิวเตอร์ที่นิยมใช้ในการเขียนโปรแกรมได้แก่
1. ภาษาฟอร์แทรน (FORTRAN) พัฒนาขึ้นใน พ.ศ. 2497 สร้างขึ้นสำหรับแก้ปัญหาทางด้านคณิตศาสตร์และวิศวกรรมศาสตร์ และสามารถใช้กับงานด้านกราฟิก ทางด้านฐานข้อมูล และทางด้านเวิร์ดโพรเซสซิ่งได้เช่นกัน
2. ภาษาเบสิก (BASIC) พัฒนาขึ้นใน พ.ศ. 2508 โดยออกแบบให้เป็นภาษาที่ง่าย ๆ แต่มีความสามารถของภาษาฟอร์แทรน รวมกับภาษาโคบอลเข้าด้วยกัน สามารถนำไปใช้งานได้อย่างกว้างขวาง สามารถใช้โต้ตอบได้ ผู้ใช้สามารถได้รับการตอบสนองเพื่อสั่งพิมพ์เข้าเครื่องคอมพิวเตอร์ นิยมใช้กับเครื่องไมโครคอมพิวเตอร์ ภาษาเบสิกเป็นทั้งตัวอินเตอร์พรีเตอร์ และคอมไพเลอร์ในตัว เหมาะสำหรับงานทางด้านวิทยาศาสตร์และธุรกิจการค้า
3. ภาษาโคบอล (COBOL) พัฒนาขึ้นใน พ.ศ. 2502 เพื่อใช้งานด้านธุรกิจและพาณิชยการ ลักษณะภาษาโคบอลเป็นธรรมชาติ เขียนได้รวบรัดอ่านง่าย ความสำคัญของภาษาโคบอลคือ ขีดความสามารถในการจัดและการปรับแต่งไฟล์ข้อมูลที่ยาวได้สะดวก ข้อมูลสั้นก็สะดวกเช่นกัน รวมทั้งการสร้างไฟล์รายงานข้อมูลด้วย
4. ภาษาปาสคาล (Pascal) พัฒนาขึ้นใน พ.ศ. 2514 เป็นภาษาโครงสร้างที่สร้างเสริมความคิดที่เป็นระบบได้ดี ภาษาปาสคาลเป็นภาษาที่คล้ายกับภาษาอัลกอ แต่เป็นภาษาที่เล็กกว่า นิยมใช้กับไมโครคอมพิวเตอร์ เป็นภาษาที่ใช้งานง่ายโดยใช้ภาษาอังกฤษง่าย ๆ
5. ภาษาซี (C) พัฒนาขึ้นใน พ.ศ. 2517 พัฒนาเป็นภาษาที่มีโครงสร้างเรียบร้อยมาก เป็นภาษาที่มีประสิทธิภาพใกล้เคียงกับภาษาเครื่อง แต่ใช้งานได้ง่ายกว่า ถูกนำไปใช้งานโปรแกรมระบบ (System Programming) ภาษาซีที่ใช้กับคอมพิวเตอร์จะเป็นภาษาที่ง่ายกะทัดรัด เนื่องจากภาษาซีเป็นภาษาอิสระจากสถาปัตยกรรมคอมพิวเตอร์รุ่นใด ๆ ทั้งนั้น ใช้โปรแกรมร่วมกับคอมพิวเตอร์รุ่นใดก็ได้
6. ภาษาอัลกอล (ALGOL) พัฒนาขึ้นใน พ.ศ. 2503 เป็นภาษาที่มีความสามารถสูง รูปลักษณะคล้ายภาษาฟอร์แทรน แต่เป็นภาษาที่มีความยืดหยุ่นในการใช้งาน ข้อความรวบรัด สร้างขึ้นเพื่อเป็นภาษาเอนกประสงค์ สำหรับการแสดงกระบวนการแก้ปัญหาทางอัลกอริทึม เป็นภาษาที่มีโครงสร้างเป็นทางการ อ่านง่าย
7. ภาษาลิสฟ์ (LISP) พัฒนาขึ้นใน พ.ศ. 2503 เช่นกัน เป็นภาษาที่มีความสามารถสูงทางด้านงานแบบลิสฟ์
โพรเซสซิ่ง นักวิจัยคอมพิวเตอร์ศึกษาเกี่ยวกับปัญหาเทียมหรือสมองเทียม (Artificial Intelligent) เลือกใช้ภาษาลิสฟ์ ซึ่งสามารถเปลี่ยนแปลงความยาว หรือโครงสร้างในขณะที่คอมพิวเตอร์กำลังทำงานอยู่ได้ นิยมใช้แสดงรูปประโยคภาษาอังกฤษ หรือสูตรทางคณิตศาสตร์ วิทยาศาสตร์และเลียนแบบกระบวนการแก้ปัญหาของมนุษย์ด้วย
8. ภาษาอาร์ พี จี (RPG) พัฒนาขึ้นใน พ.ศ. 2507 เป็นภาษาที่ใช้กับมินิคอมพิวเตอร์ สำหรับงานทางด้านธุรกิจ สามารถสร้างรายงานจากข้อมูล โดยการเขียนภาษาอาร์ พี จี สามารถเขียนและใช้งานเป็นส่วน ๆ ไม่จำเป็นต้องเขียนเป็นโปรแกรมยาว ๆ
9. ภาษาพี แอล วัน (PL/1) พัฒนาขึ้นใน พ.ศ. 2508 เป็นภาษาที่ออกแบบไว้ใช้งานทางธุรกิจและวิทยาศาสตร์ เป็นภาษาที่นำเอาขีดความสามารถของภาษาฟอร์แทรน และภาษาโคบอลไว้ด้วยกัน เป็นภาษาที่ง่าย รวบรัด สามารถรวบไฟล์หรือเรคคอร์ดทั้งทางด้าน Input และ Output ได้ สามารถแสดงข้อมูลในรูปของอาร์เรย์ได้ง่าย
10. ภาษาเอ พี เอล (APL) พัฒนาขึ้นใน พ.ศ. 2510 เป็นภาษาที่มีชุดตัวกระทำพื้นฐาน (Primitive Operators)
ที่ใช้ทำหน้าที่ต่าง ๆ เช่น สร้างเลขดัชนี สร้างเลขแบบสุ่ม เป็นภาษายอดนิยมของนักสถิติ สามารถใช้งานทางด้านธุรกิจได้เช่นกัน เช่น การผลิตเอกสาร ด้านวิเคราะห์ ด้านกราฟิก การจัดการระบบฐานข้อมูล ลักษณะภาษาคล้ายภาษาสนทนา เข้าใจง่าย แต่สามารถทำงานได้เร็ว
11. ภาษาสมอลท้อค (SMALL TALK) พัฒนาขึ้นใน พ.ศ. 2515 เพื่อใช้ในวงการศึกษา สามารถช่วยครูแก้ปัญหาทางการสอนได้ ใช้สร้างกราฟิก และการอธิบายทางการศึกษาได้ดี แต่ก็สามารถนำมาใช้งานด้านธุรกิจได้ด้วย จึงมีลักษณะเป็นภาษาเอนกประสงค์
12. ภาษาไพล็อท (PILOT) พัฒนาขึ้นใน พ.ศ. 2516 เป็นภาษาที่พัฒนาขึ้นสำหรับใช้สอนเด็กเกี่ยวกับการทำงานของคอมพิวเตอร์ นิยมนำไปเขียนโปรแกรมการสอน เพื่อใช้เป็นคอมพิวเตอร์ช่วยสอน (CAI) ภาษาที่ใช้ควบคู่กับไพล็อทคือภาษาโลโก้ (LOGO) ซึ่งพัฒนาขึ้นมาด้วยจุดมุ่งหมายเดียวกัน
13. ภาษาฟอร์ท (FORTH) พัฒนาขึ้นใน พ.ศ. 2518 มีลักษณะคล้ายภาษาแอสแซมบลี ระดับสูง ออกแบบไว้ใช้งาน System Promgramming ผู้ใช้สามารถพิมพ์คำสั่งใหม่ ๆ เข้าไปได้ และสามารถเก็บคำสั่งและเรียกออกมาใช้งานได้ ดังนั้น ผู้ใช้สามารถนำไปใช้สร้างโปรแกรมให้เหมาะสมกับความต้องการของตนได้ มักใช้ในงานสถิติ ธุรกิจการเงิน และด้านไฟลิ่ง

การศึกษาวิจัยด้านการสื่อสารภายในองค์กร

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

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

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

การพัฒนาโปรแกรมระบบปฏิบัติการของโปรแกรมที่ใช้ควบคุมและติดต่อกับอุปกรณ์ต่าง ๆ ในซอฟต์แวร์

8

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

โปรแกรมระบบปฏิบัติการเป็นโปรแกรมที่ใช้ควบคุมและติดต่อกับอุปกรณ์ต่าง ๆ ของเครื่องคอมพิวเตอร์ โดยเฉพาะการจัดการระบบของดิสก์ การบริหารหน่วยความจำของระบบ กล่าวโดยสรุปคือ หากจะทำงานใดงานหนึ่งโดยใช้คอมพิวเตอร์เป็นเครื่องมือในการทำงานแล้วจะต้องติดต่อกับซอฟต์แวร์ระบบก่อน ถ้าขาดซอฟต์แวร์ชนิดนี้จะทำให้เครื่องคอมพิวเตอร์ไม่สามารถทำงานได้ ตัวอย่างของซอฟต์แวร์ประเภทนี้ได้แก่ โปรแกรมระบบปฏิบัติการ DOS Unix Windows Sun OS/2 Warp Netware และ Linux ตัวแปลภาษาจาก Source Code ให้เป็น Object Code เป็นซอฟต์แวร์ที่ใช้ในการแปลภาษาแบ่งออกเป็น 2 ประเภทคือ คอมไพเลอร์ และอินเตอร์พรีเตอร์ คอมไพเลอร์จะแปลคำสั่งในโปรแกรมทั้งหมดก่อนแล้วทำการลิ้ง (Link) เพื่อให้ได้คำส่งที่เครื่องคอมพิวเตอร์เข้าใจ ส่วนอินเตอร์พีทเตอร์จะแปลทีละประโยคคำสั่งแล้วทำงานตามประโยคคำสั่งนั้น การจะเลือกใช้ตัวแปลภาษาแบบใดนั้นจะขึ้นอยู่กับภาษาที่ใช้ในการเขียนโปรแกรม เช่น ภาษาเบสิก (Basic) ภาษาปาสคาล (Pascal) ภาษาซี (C) ภาษาจาวา (Java) ภาษาโคบอล (Cobol) ภาษา SQL ภาษา HTML เป็นต้น

ยูทิลิตี้โปรแกรม คือ ซอฟต์แวร์เสริมช่วยให้เครื่องทำงานมีประสิทธิภาพมากขึ้น เช่น ช่วยในการตรวจสอบดิสก์ ช่วยในการจัดเก็บข้อมูลในดิสก์ ช่วยสำเนาข้อมูล ช่วยซ่อมอาการชำรุดของดิสก์ ช่วยค้นหาและกำจัดไวรัส ฯลฯ เป็นต้น โปรแกรมในกลุ่มนี้ได้แก่โปรแกรม Norton WinZip Scan virus Sidekick Scandisk Screen Saver ฯลฯ เป็นต้น ติดตั้งและปรับปรุงระบบ เป็นซอฟต์แวร์ที่ใช้ในการติดตั้งระบบเพื่อให้คอมพิวเตอร์สามารถติดต่อและใช้งานอุปกรณ์ต่าง ๆ ที่นำมาติดตั้งระบบ ได้แก่ โปรแกรม Setup และ Driver ต่าง ๆ เช่น โปรแกรม Setup Windows Setup Microsoft Office โปรแกรม Driver Sound Driver CD-ROM Driver Printer Driver Scanner ฯลฯ เป็นต้น

การใช้ซอฟต์แวร์ในภาคอุตสาหกรรมการศึกษา

130709_06

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

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

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

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

5 ปัญหาหลักในการพัฒนาซอฟต์แวร์พบบ่อยในปัจจุบัน

34

5 ปัญหาหลักในการพัฒนาซอฟต์แวร์ หรือจะว่าเป็น 5 ปัญหาคลาสสิกเลยก็ว่าได้ ถึงจะไม่เคยได้พัฒนาซอฟต์แวร์อย่างเต็มรูปแบบก็ตาม แต่ในช่วงเรียนปี 3 ก็พอมีอยู่บ้างเป็นโปรเจคใหญ่ที่ต้องนำมาพัฒนามีกระบวนการการทำงานต่างๆ เหมือนกับว่าเราทำงานจริงๆเลย และ อาจารย์ก็มักจะตรวจสอบความคืบหน้าของโปรเจคเราอยู่ทุกๆสัปดาห์เลย เพื่อให้อาจารย์มองเห็นปัญหาต่างๆ ในการทำงานของเรา …และในช่วงสอบ Final เทอมหนึ่งของปีที่ 3 ก็ได้มีข้อสอบของรายวิชานึงวิชานี้จะเป็นจะมีการเรียนการสอนที่คล้ายกับ Team Software Process ข้อสอบรายวิชานี้จะเป็นปัญหาต่างๆของเราในการพัฒนาโปรเจค ซึ่งก็คือปัญหาหลักๆ หรือปัญหาคลาสสิกของนักพัฒนาซอฟต์แวร์นั่นเองความต้องการจากผู้ใช้ ที่ไม่ชัดเจน คลุมเคลือขาดความสมบูรณ์ เรียบง่ายจนเกินไป จนไม่สามารถวิเคราะห์ได้ว่าต้องการอะไรและอื่นๆ อาจมีต้นเหตุมาจากความต้องการอีกมาก

แผนงานโครงการไม่ดี มีลัษกณะเป็นแผนงานที่เพ้อฝัน การวางแผนไม่ได้ตั้งอยู่บนข้อมูลที่แท้จริง ทำแบบเพ้อฝันไม่คิด ขาดข้อมูลที่ได้จากการปรึกษาหารือสมาชิกในทีม ไม่ว่าจะเกิดจากสาเหตุใดๆ ก็ตาม ขาดการประสานงานย่อยที่สำคัญกับผู้ใช้หรือลูกค้า การจัดทำแผนอาศัพเพียงความรู้ความเข้าใจของตนเองเป็นหลักการทำสอบซอฟต์แวร์ไม่เพียงพอ มักจะพบปัญหาในลักษณะที่ว่าซอฟต์แวร์นี้ผ่านการทดสอบมาได้อย่างไร ปัญหามากมาย ไม่มีคุณภาพทั้งในระดับระหว่างการทำงานร่วมกันในทีม หรือหลังส่งมอบให้ลูกค้าแล้ว หรือมีการทดสอบซอฟต์แวร์ที่ขาดความรอบคอบเวลาในการทดสอบไม่เพียงพอ และอื่นๆ อีกมากมีการเปลี่ยนแปลงไม่จบสิ้น (Always Change) ในระหว่างที่พัฒนาซอฟต์แวร์ มักจะขอให้มีการเปลี่ยนแปลง Features หรือ Functions ไม่ว่าจะเพิ่มขึ้นหรือตัดออก มั้กจะสร้างปัญหาให้กับทีมพัฒนาบ่อยครั้งที่กระทบกระเทือนถึง Solution Design ทำให้ต้องทำงานเพิ่มหรือทำงานใหม่เกือบทั้งหมด หรือในบางครั้งถึงกับต้องออกแบบใหม่ก็มีการขาดการติดต่อสื่อสารที่ดี ปัญหาหลายอย่างเกิดขึ้นจากการไม่เข้าใจกันและมีการติดต่อสื่สารกันอย่างผิดๆ หรือไม่มีการติดต่อสื่อสารกันเลย ปัญหาเช่นว่านี้เกิดขึั้นได้ในทุกๆระดับ ทั้งระหว่างทีมพัฒนาซอฟต์แวร์ด้วยกันเอง หรือปัญหาที่ไปเกิดกับผู้ใช้

ปัจจุบันพบว่ามีเทคโนโลยีใหม่ ๆ เกิดขึ้นมากมายไม่ว่าจะเป็นเทคโนโลยีคอมพิวเตอร์

34

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

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

การพัฒนาซอฟต์แวร์สำเร็จรูปที่ใช้สร้างสรรค์งาน


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

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

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

การใช้งานคอมพิวเตอร์ต้องมีซอฟต์แวร์ประยุกต์

การที่เทคโนโลยีคอมพิวเตอร์ได้พัฒนาก้าวหน้าอย่างรวดเร็ว โดยเฉพาะการที่มีคอมพิวเตอร์ขนาดเล็ก ทำให้มีการใช้งานคล่องตัวขึ้น จนในปัจจุบันสามารถนำคอมพิวเตอร์ขนาดเล็ก ติดตัวไปใช้งานในที่ต่าง ๆ ได้สะดวก

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

ในบรรดาซอฟต์แวร์ประยุกต์ที่มีใช้กันทั่วไป ซอฟต์แวร์สำเร็จ (package) เป็นซอฟต์แวร์ที่มีความนิยมใช้กันสูงมาก ซอฟต์แวร์สำเร็จเป็นซอฟต์แวร์ที่บริษัทพัฒนาขึ้น แล้วนำออกมาจำหน่าย เพื่อให้ผู้ใช้งานซื้อไปใช้ได้โดยตรง ไม่ต้องเสียเวลาในการพัฒนาซอฟต์แวร์อีก ซอฟต์แวร์สำเร็จที่มีจำหน่ายในท้องตลาดทั่วไป และเป็นที่นิยมของผู้ใช้มี 5 กลุ่มใหญ่ ได้แก่ ซอฟต์แวร์ประมวลคำ (word processing software) ซอฟต์แวร์ตารางทำงาน (spread sheet software) ซอฟต์แวร์จัดการฐานข้อมูล (data base management software) ซอฟต์แวร์นำเสนอ (presentation software) และซอฟต์แวร์สื่อสารข้อมูล (data communication software)

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

2) ซอฟต์แวร์ตารางทำงาน เป็นซอฟต์แวร์ที่ช่วยในการคิดคำนวณ การทำงานของซอฟต์แวร์ตารางทำงาน ใช้หลักการเสมือนมีโต๊ะทำงานที่มีกระดาษขนาดใหญ่วางไว้ มีเครื่องมือคล้ายปากกา ยางลบ และเครื่องคำนวณเตรียมไว้ให้เสร็จ บนกระดาษมีช่องให้ใส่ตัวเลข ข้อความหรือสูตร สามารถสั่งให้คำนวณตามสูตรหรือเงื่อนไขที่กำหนด ผู้ใช้ซอฟต์แวร์ตารางทำงานสามารถประยุกต์ใช้งานประมวลผลตัวเลขอื่น ๆ ได้กว้างขวาง ซอฟต์แวร์ตารางทำงานที่นิยมใช้ เช่น เอกเซล โลตัส

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

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

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

การพัฒนาซอฟต์แวร์ให้ประสบความสำเร็จนั้นไม่ใช่เรื่องง่าย

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

1. ปัญหาด้านการตลาด

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

2. ปัญหาด้านการวิจัยและพัฒนาเทคโนโลยี

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

นักวิจัยหลายร้อยคนต้องค้นคว้าทดลองนานนับสิบปี จึงจะสามารถพัฒนาซอฟต์แวร์ที่ฟังพูด และเขียนภาษาอังกฤษได้สำเร็จ แต่นักวิทยาศาสตร์และนักวิจัยในเรื่องเหล่านี้ของไทยมีอยู่น้อยมาก ดังนั้น จึงมีความจำเป็นอย่างมากที่จะต้องเพิ่มทรัพยากรมนุษย์ในส่วนนี้

3. ปัญหาด้านคุณภาพ

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

สาเหตุอื่นๆ ที่ทำให้ซอฟต์แวร์ของไทยขาดคุณภาพ ได้แก่ การขาดการบริหารโครงการที่ดีการขาดบุคลากรที่มีทักษะทันสมัยในด้านการพัฒนาและทดสอบซอฟต์แวร์ การขาดวิธีการกำหนดคุณลักษณะซอฟต์แวร์ที่เหมาะสม ฯลฯ

หากจะมีการเพิ่มคุณภาพของซอฟต์แวร์ไทย ก็จำเป็นอย่างยิ่งที่จะต้องปรับปรุงเรื่องของกระบวนการพัฒนาซอฟต์แวร์ (ซึ่งรวมถึงการกำหนดคุณลักษณะซอฟต์แวร์ และการประเมินคุณภาพของซอฟต์แวร์) และการพัฒนาบุคลากรด้านซอฟต์แวร์ไปพร้อมกันด้วย

การพัฒนาโปรแกรมภาษาคอมพิวเตอร์เพื่อช่วยในการแก้ปัญหา

การให้คอมพิวเตอร์แก้ปัญหาต่างๆให้เรา

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

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

การพัฒนาโปรแกรมคอมพิวเตอร์ให้กับระบบงานขนาดใหญ่

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

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