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

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

%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 จำเป็นอย่างยิ่งที่จะต้องมีการเรียนรู้วิธีการลดความเสี่ยงต่างๆเหล่านี้