วันจันทร์ที่ 22 ตุลาคม พ.ศ. 2555

บทที่ 1ทำความรู้จักกับวิศวกรรมซอฟแวร์


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

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

        จากบทบาทที่เปลี่ยนแปลงไปของซอฟแวร์ตั้งแต่อดีตจนถึงปัจจุบัน จึงสามารถแบ่งประเภทของซอฟแวร์ตามวัตถุประสงค์การใช้งานออกเป็น 7 กลุ่มดังนี้

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

2.ซอฟแวร์แอปพลิเคชั่น (Application Software) เป็นโปรแกรมแก้ปัญหาทางด้านธุรกิจโดยเฉพาะ สามารถทำงานบนเครื่องกระบวนการธุรกิจที่เกิดขึ้นในแต่ละวันหรือเพื่อตัดสินใจทางธุรกิจ บางครั้งยังสามารถทำงานแบบเวลาจริงได้

3.ซอฟแวร์ด้านวิทยาศาสตร์และวิศวกรรม (Scientific Software / Engineering) เป็นซอฟแวร์ที่ใช้เฉพาะงานด้านวิทยาศาสตร์และวิศวกรรมศาสตร์

4.ซอฟแวร์แบบฝัง (Embedded Software) เป็นซอฟแวร์ที่ติดตั้งไว้ภายในอุปกรณ์อิเล็กทรอนิกส์ต่างๆ หรือภายในระบบงาน เพื่อควบคุมการทำงานของอุปกรณ์หรือระบบงานนั้นๆโดยไม่แสดงให้ผู้ใช้งานเห็นหรือจำกัดการมองเห็น
5.ซอฟแวร์แบบสายการผลิต (Production-Line Software) เป็นซอฟแวร์เฉพาะด้าน ที่ลูกค้าหลายกลุ่มสามารถนำไปใช้งานได้เหมือนกัน หรืออาจเป็นกลุ่มลูกค้าเฉพาะ และลูกค้าตลาดใหญ่ที่เป็นผู้ใช้ทั่วไป

6. เว็บแอปพลิเคชั่น ( Web Application) กรณีซอฟแวร์แอปพลิเคชั่นสามารถทำงานบนเว็บไซด์ เพื่อจัดการมูลในฐานข้อมูลจะเรียกว่า เว็บแอปพลิเคชั่น

7.ซอฟแวร์ปัญญาประดิษฐ์ (Artificial Intelligence Software) เป็นซอฟแวร์ที่ถูกออกแบบให้มีอัลกอริธึมในการทำงานที่ซับซ้อนเลียนแบบสมองมนุษย์ เพื่อแก้ปัญหาที่มีความซับซ้อนสูงด้วยการวิเคราะห์ตามหลักของเหตุและผล
อุตสาหกรรมการผลิตซอฟแวร์ จะเปรียบซอฟแวร์เป็นผลิตภัณฑ์เช่นเดียวกับสินค้า โดยที่วิศวกรซอฟแวร์จะต้องผลิตซอฟแวร์ทั้งหมด  2  ประเภท ได้แก่
1.Generic Product เป็นผลิตภัณฑ์ซอฟแวร์หรือระบบที่ถูกผลิตขึ้นโดยผู้ผลิตซอฟแวร์รายใหญ่ เพื่อจำหน่ายให้กับลูกค้าในตลาดทั่วไปที่ต้องการซื้อไปเพื่อใช้งานตามความสามารถของซอฟแวร์ โดยไม่ยึดตามความต้องการของลูกค้า
2.Customized Product เป็นผลิตภัณฑ์ซอฟแวร์หรือระบบ สำหรับลูกค้าเฉพาะรายที่ตกลงทำสัญญาว่าจ้างกันไว้โดยการผลิตจะยึดตามความต้องการของลูกค้า  

1.2 วิศวกรรมซอฟแวร์และความสำคัญ
ได้มีผู้ให้คำจำกัดความของคำว่า วิศวกรรมซอฟแวร์ ไว้หลายความหมายดังนี้
วิศวกรรมซอฟแวร์ หมายถึง การนำแนวทางที่เป็นระบบ  มีระเบียบ กฎเกณฑ์ และสามารถวัดผลในเชิงปฏิบัติได้ มาประยุกต์ใช้ในการพัฒนา ปฏิบัติการ และบำรุงรักษาซอฟแวร์
        วิศวกรรมซอฟแวร์ หมายถึง การผสมผสานระหว่างศาสตร์และศิลป์เพื่อการผลิตซอฟแวร์เชิงพาณิชย์ โดยเริ่มต้นตั้งแต่การจัดทำข้อกำหนดคุณสมบัติของระบบ ตลอดจนการบำรุงรักษาระบบให้เป็นปกติ โดยแบ่งนัยสำคัญออกเป็น 2 ประเด็นคือ
1.สหวิทยาการจัดการด้านวิศวกรรม หมายถึง การผสมผสานระหว่าศาสตร์และศิลป์ เพื่อการผลิตซอฟแวร์โดยการประยุกต์ศาสตร์ด้านต่างๆ ไม่ว่าจะเป็นทฤษฎี ระเบียบวิธีการปฏิบัติ เครื่องมือ และเทคนิค ตลอดจนการใช้ศิลปะในการบริหารจัดการด้านการจัดสรรทรัพยากร คุณภาพ งบประมาณและเวลาอย่างเหมาะสม
2.ผู้เชี่ยวชาญด้านการผลิตซอฟแวร์ หมายถึง วิศวกรซอฟแวร์ที่มีความชำนาญในการผลิตซอฟแวร์ โดยใช้เทคนิค กระบวนการ และเครื่องมือต่างๆ ในการพัฒนาได้อย่างมีประสิทธิภาพ 
วิศวกรรมซอฟแวร์ หมายถึง การนำหลักวิชาด้านวิศวกรรมมาดูและกระบวนการผลิตซอฟแวร์ ตั้งแต่ขั้นตอนแรกจนถึงขั้นตอนการบำรุงรักษาหลังการใช้งาน เพื่อให้ซอฟแวร์ที่ได้มีคุณภาพสูงสุดภายใต้ข้อจำกัดด้านเวลาและการลงทุน 
ความสำคัญองวิศวกรรมซอฟแวร์
วิวัฒนาการของซอฟแวร์และเทคโนโลยีคอมพิวเตอร์เกิดขึ้นอย่างต่อเนื่อง จากยุค 70 แอปพลิเคชั่นต่างๆ ทำงานบนคอมพิวเตอร์ที่มีการประมวลผลแบบเดี่ยว ที่นิยมใช้บนเครื่องเมนเฟรม นิยมเก็บในแถบแม่เหล็ก การทำงานกับข้อมูลยังคงเป็นแบบง่ายๆ ปัจจุบันการทำงานได้เปลี่ยนแปลงไปจากเดิมเป็นอย่างมาก มีความสลับซับซ้อนขึ้น มีการประมวลผลแบบ Multiprocessing ไม่ได้ทำงานบนเครื่องคอมพิวเตอร์เพียงเครื่องเดียว มีการทำงานในระบบเครือข่าย  โดยต้องมีการแชร์ข้อมูลทั้งภายในและภายนอกในรู้แบบของเว็บเพจ กระบวนการที่ใช้พัฒนาแบบ Waterfall ไม่สามารถรองรับระบบที่ซับซ้อนในปัจจุบันได้อีกต่อไป
        สามารถสรุปปัจจัยการเปลี่ยนแปลงที่ทำให้งานด้านวิศวกรรมซอฟแวร์มีความสำคัญได้ 7 ประการ ดังนี้
1.การเปลี่ยนแปลงของระยะเวลาการเปิดตัวของผลิตภัณฑ์เร็วขึ้น ทำให้การผลิตสั้นลง
2.การเปลี่ยนแปลงในอุตสาหกรรมคอมพิวเตอร์ ทำให้มีการพัฒนาซอฟแวร์เพิ่มขึ้น และการบำรุงรักษามากขึ้น 
3.บุคคลหรือบริษัทขนาดเล็ก มีอำนาจในการซื้อคอมพิวเตอร์มากขึ้น เนื่องจากมีราคาที่ถูกลง 
4. การแพร่หลายของการเชื่อมต่อเครือขายทั้งแบบท้องถิ่นและแบบระยะไกล
5. ความสามารถในการดัดแปลงการใช้เทคโนโลยีเชิงวัตถุเข้ากับระบบงานได้
6. การเปลี่ยนแปลงด้านส่วนประสานงานกับผู้ใช้เป็นแบบกราฟฟิกมากขึ้น
7. แบบจำลองการผลิตซอฟแวร์แบบ Waterfall ไม่สามารถคาดการณ์ความต้องการของผู้ใช้ได้อีกต่อไป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น