เรื่องน่ารู้ วิศวกรรมซอฟต์แวร์ คืออะไร ประวิตความเป็นมาเป็นอย่างไร


1,100 ผู้ชม

วิศวกรรมซอฟต์แวร์ประยุกต์ความรู้และเทคโนโลยีทางด้านวิศวกรรมศาสตร์ วิศวกรรมคอมพิวเตอร์ วิทยาการคอมพิวเตอร์ เทคโนโลยีสารสนเทศ การบริหารจัดการโครงการ และสาขาอื่น ๆ ที่เกี่ยวข้องเข้าด้วยกัน


บทความน่ารู้ : เรื่องวิศวกรรมซอฟต์แวร์
วิศวกรรมซอฟต์แวร์ (อังกฤษ: software engineering) เป็นศาสตร์เกี่ยวกับวิศวกรรมด้านซอฟต์แวร์ มีเนื้อหาเกี่ยวข้องกับการใช้กระบวนการทางวิศวกรรมใน การดูแลการผลิต ตั้งแต่การเริ่มเก็บความต้องการ การตั้งเป้าหมายของระบบ การออกแบบ กระบวนการพัฒนา การตรวจสอบ การประเมินผล การติดตามโครงการ การประเมินต้นทุน การรักษาความปลอดภัย ไปจนถึงการคิดราคาซอฟต์แวร์เป็นต้น
วิศวกรรมซอฟต์แวร์ประยุกต์ความรู้และเทคโนโลยีทางด้านวิศวกรรมศาสตร์ วิศวกรรมคอมพิวเตอร์ วิทยาการคอมพิวเตอร์ เทคโนโลยีสารสนเทศ การบริหารจัดการโครงการ และสาขาอื่น ๆ ที่เกี่ยวข้องเข้าด้วยกัน เพื่อสร้างซอฟต์แวร์ที่สามารถปฏิบัติงานตามเป้าหมาย ภายใต้เงื่อนไขที่กำหนด
วิศวกรรมซอฟต์แวร์เป็นศาสตร์ที่ทวีความสำคัญเพิ่มขึ้นเรื่อย ๆ เนื่องจากในปัจจุบัน ซอฟต์แวร์มีความซับซ้อนเพิ่มขึ้น จำเป็นต้องมีการวิศวกรรมที่จะควบคุมและดำเนินการผลิต ที่มีประสิทธิภาพ สามารถวัดผลได้ และ สามารถตรวจหาข้อผิดพลาดพร้อมสาเหตุได้ อย่างสะดวกและรวดเร็ว เพื่อให้สามารถปรับปรุงแก้ไขซอฟต์แวร์ตั้งแต่อยู่ในระหว่างการผลิตได้อีก ทั้งยังมีการทบทวนและตรวจสอบ
วิศวกรรมซอฟต์แวร์
วิศวกรรมซอฟต์แวร์ คือ การประยุกต์ใช้ระบบ กฎเกณฑ์ การเข้าถึงซึ่งสามารถวัดประเมินได้ในการพัฒนา การปฏิบัติการ และการบำรุงรักษาซอฟต์แวร์ และในการศึกษาสิ่งเหล่านี้ ก็คือการประยุกต์ใช้งานทางด้านวิศวกรรมมาจัดการกับซอฟต์แวร์
ข้อตกลงทางวิศวกรรมซอฟต์แวร์ ปรากฏขึ้นครั้งแรกในการประชุมวิศวกรรมซอฟต์แวร์นาโต ที่จัดขึ้นในปี ค.ศ. 1968 และได้ให้ความสำคัญกับเหตุการณ์ "วิกฤติการณ์ซอฟต์แวร์" ในขณะนั้น ตั้งแต่นั้นเป็นต้นมา วิศวกรรมซอฟต์แวร์ก็ได้กลายมาเป็นศาสตร์และแขนงของการศึกษาเฉพาะ ในการสร้างซอฟต์แวร์ที่มีคุณภาพสูงขึ้น มีราคาถูกลงเป็นที่ยอมรับได้ ดูแลรักษาได้ง่าย และพัฒนาได้อย่างรวดเร็วขึ้น ตั้งแต่นั้นก็ยังคงมีการเปรียบเทียบวิศวกรรมซอฟต์แวร์กับวิศวกรรมแขนงอื่น ยังคงมีการถกเถียงกันว่าวิศวกรรมซอฟต์แวร์ที่แท้จริงคืออะไร และวิศวกรรมซอฟต์แวร์สมควรเป็นหนึ่งในสาขาวิศวกรรมหรือไม่ วิศวกรรมซอฟต์แวร์ได้ขยายวงกว้างอย่างไร้ขีดจำกัดไปยังผู้ที่มีส่วนเกี่ยว ข้องกับซอฟต์แวร์ เช่น โปรแกรมเมอร์ การพัฒนาซอฟแวร์ในบางครั้งข้อตกลงอาจขึ้นอยู่กับผู้ที่มีส่วนสำคัญใน อุตสาหกรรมซอฟต์แวร์ในการเปลี่ยนแปลงกระบวนการสร้างซอฟต์แวร์ แต่กระนั้นวิศวกรรมซอฟต์แวร์ก็ยังเป็นที่ใฝ่ฝันของวัยรุ่นในการประกอบอาชีพ ในนิตยสาร Money Magazine ได้กล่าวว่า อาชีพในแขนงวิศวกรรมซอฟต์แวร์มีแนวโน้มอนาคตที่สดใส[1] และในเว็บไซต์ Salary.com ได้กล่าวว่าอัตราเงินเดือนในอาชีพวิศวกรรมซอฟต์แวร์มีอัตราสูงที่สุดในประเทศสหรัฐอเมริกาในปี ค.ศ. 2006[2]
วิชาชีพ
ในบางสาขาอาชีพ ยกตัวอย่างเช่น ในมลรัฐออนตาริโอ ประเทศแคนาดา ใบอนุญาตของวิศวกรทางด้านซอฟแวร์ ในหลาย ๆ พื้นที่ในโลก ไม่มีกฎหมายควบคุมอาชีพวิศวกรทางด้านซอฟแวร์ แต่มีข้อกำหนดบางอย่างจาก สถาบันวิศวกรไฟฟ้าและอิเลคโทรนิค(Institute of Electrical and Electronics Engineers: IEEE)และสมาคมคอมพิวเตอร์ (ACM) ซึ่งเป็นองค์กรหลักในด้านวิศวกรรมซอฟแวร์ ใน IEEE ได้กำหนดแนวทางไว้ในองค์ความรู้ด้านวิศวกรรมซอฟแวร์เมื่อปี ๒๕๔๗ ได้กำหนดแนวทางและกำหนดกรอบความรู้ที่วิศวกรด้านซอฟแวร์ควรรู้ และยังกำหนดจรรยาบรรณของวิศวกรซอฟแวร์ และนอกจากนี้ IEEE ยังมีการตีพิมพ์พจนานุกรมว่าด้วยวิศวกรรมซอฟแวร์และวิศวกรรมระบบ
การจ้างงาน
ในปี 2004 ในสหรัฐอเมริกา สำนักแรงงานสถิติ นับ 760840 ซอฟต์แวร์วิศวกร ถืองานในสหรัฐอเมริกา; ในช่วงเวลาเดียวกันมีบาง 1.4 ล้านประกอบทำงานในสหรัฐอเมริกาในอื่นๆทั้งหมดรวมวิศวกรรมฝึกหัด เนื่องจากความญาติเป็นความแปลกฟิลด์การศึกษาทางการศึกษาในวิศวกรรมซอฟต์แวร์ นั้นมักจะสอนเป็นส่วนหนึ่งของหลักสูตรด้านวิทยาศาสตร์คอมพิวเตอร์และเป็นผล มากที่สุดซอฟต์แวร์วิศวกรถือด้านวิทยาศาสตร์คอมพิวเตอร์องศา
ส่วนใหญ่ ซอฟต์แวร์วิศวกร ทำงานเป็นพนักงานหรือผู้รับเหมา วิศวกรซอฟต์แวร์ที่ทำงานร่วมกับธุรกิจหน่วยงานราชการ (พลเรือนหรือทหาร) และองค์กรที่ไม่แสวงหาผลกำไร บางซอฟต์แวร์วิศวกรสามารถทำงานด้วยตนเองได้ บางองค์กรมีผู้เชี่ยวชาญแต่ละดำเนินงานใน กระบวนการพัฒนาซอฟต์แวร์ องค์กรอื่น ๆ ต้องทำวิศวกรซอฟต์แวร์จำนวนมากหรือทั้งหมดของพวกเขา มากในโครงการคนอาจชำนาญในเดียวบทบาท โครงการขนาดเล็กคนอาจกรอกหลายหรือทั้งหมดบทบาทในเวลาเดียวกัน Specializations ประกอบด้วย: ในอุตสาหกรรม (นักวิเคราะห์ สถาปนิก นักพัฒนา ทดสอบ การสนับสนุนทางเทคนิค ผู้จัดการ) และในด้านวิชาการ (นักวิชาการศึกษา นักวิจัย)
มีความถกเถียงในอนาคตโอกาสการจ้างงานสำหรับวิศวกรและซอฟต์แวร์อื่นๆ ไอที ผู้เชี่ยวชาญด้าน ตัวอย่างเช่นออนไลน์ล่วงหน้าตลาดที่เรียกว่า "อนาคตของ ITJOBS ไอทีงานในอเมริกา" พยายามตอบว่าจะมีเพิ่มเติมไอทีงานรวมทั้งซอฟต์แวร์วิศวกรในกว่า 2012 มีใน ค.ศ. 2002
การรับรอง
การรับรองวิชาชีพของ วิศวกรซอฟต์แวร์ ยังเป็นเรื่องโต้แย้งกันอยู่ บ้างก็เห็นว่าใบรับรองเป็นเครื่องมือสำหรับยกระดับหลักปฏิบัติของมืออาชีพ และ วัตถุประสงค์ของการให้ใบรับรองวิชาชีพวิศวกรซอฟต์แวร์ เป็นการปกป้องสาธารณะ[1] สมาคมคอมพิวเตอร์หรือ ACM มีการรับรองวิชาชีพในปี 1980 และถูกยกเลิกไปเนื่องจากขาดความสนใจ ACM ได้มีการตรวจสอบความเป็นไปได้ของการรับรองวิชาชีพ วิศวกรรมซอฟต์แวร์ในปี 1990 แต่ในที่สุดการรองดังกล่าวก็ถูกตัดสินว่าไม่เหมาะสมในเรื่องการรับรอง วิชาชีพในอุตสาหกรรมของวิศวกรรมซอฟต์แวร์ ในปี 2006 สมาคม IEEE ได้มีการรับรองวิชาชีพซอฟต์แวร์เกิน 575 ราย ในประเทศแคนาดา Canadian Information Processing Society ได้สร้างกฎหมายที่รู้จักเพื่อรองรับอาชีพข้อมูลระบบผู้เชี่ยวชาญ สถาบันวิศวกรรม ซอฟต์แวร์ได้ให้การรับรองที่ระบุหัวข้อขึ้น เช่นความปลอดภัย การปรับปรุงกระบวนการของสถาปัตยกรรมซอฟต์แวร์ การรับรองโปรแกรมส่วนใหญ่ในอุตสาหกรรมไอทีเป็นการรับรองเชิงเฉพาะด้าน เทคโนโลยี และมีการจัดการโดยผู้ขายเทคโนโลยีเหล่านี้ โปรแกรมเหล่านี้มีการรับรองที่เหมาะสมกับสถาบันที่จะว่าจ้างให้บุคคลที่ใช้ กับเทคโนโลยีนั้น
ผลกระทบของโลกาภิวัตน์
นักศึกษาหลายคนในประเทศที่พัฒนาแล้ว มีความกลัวและได้หลีกเลี่ยงที่จะมีวุฒิการศึกษาระดับปริญญาเกี่ยวข้องกับวิศวกรรมซอฟต์แวร์เนื่องจากเกิดความกลัวเรื่องการจ้างงานจากภายนอกประเทศ offshore outsourcing (การนำเข้าผลิตภัณฑ์ซอฟต์แวร์หรือบริการจากต่างประเทศ) และการย้ายที่อยู่ การต้องเดินทางไปทำงานต่างชาติ ทั้งๆ ที่รัฐบาล ไม่ได้แสดงสถิติการคุกคามถึงวิศวกรรมซอฟต์แวร์ อาชีพที่เกี่ยวข้อง กระบวนการเขียนโปรแกรมทางคอมพิวเตอร์ ดูเหมือนว่าจะไม่ปรากฏให้เห็น บ่อยครั้งมีจำนวนหนึ่งคาดว่าจะเริ่มต้นเป็นโปรแกรมเมอร์คอมพิวเตอร์ก่อนที่ จะมีการ เลื่อนขั้นให้เป็นวิศวกรซอฟต์แวร์ดังนั้น อาชีพทางวิศวกรรมซอฟต์แวร์มีความยากลำบาก โดยเฉพาะอย่างยิ่ง ในระหว่างช่วงที่เศรษฐกิจตกต่ำ
บางครั้งที่ปรึกษามักแนะนำนักศึกษาให้สนใจในเรื่องของ "ทักษะบุคคล" และทักษะองค์กร มากกว่าทักษะด้านเทคนิคเพียงอย่างเดียว เพราะ "ทักษะเบื้องต้น" นี้ จะถูกนำไปใช้มากกว่าทักษะในระดับที่ยากมากขึ้น มันมีมุมมองด้านวิศวกรรมซอฟต์แวร์ ดูเหมือนจะเริ่มต้นการจำกัดโดยโลกาภิวัฒน์มากยิ่งขึ้น
การศึกษา
ความรู้ทางด้านการเขียนโปรแกรมคอมพิวเตอร์เป็นความรู้พื้นฐานสำหรับอาชีพของวิศวกรซอฟต์แวร์ แต่เท่านั้นยังไม่เพียงพอ ส่วนใหญ่วิศวกรซอฟต์แวร์มีวุฒิการศึกษาในสาขาวิทยาการคอมพิวเตอร์ เนื่องจากอดีตยังไม่ค่อยมีหลักสูตรการเรียนการสอนระดับอุดมศึกษาในสาขาวิศวกรรมซอฟต์แวร์ อย่างไรก็ตามได้มีการเริ่มมีหลักสูตรสาขาวิศวกรรมซอฟต์แวร์ เปิดสอนมากขึ้น โดยเฉพาะอย่างยิ่งระดับปริญญาโทและปริญญาเอก ในช่วงปี ค.ศ. 2001-2004 ได้คณะวิชาการกลุ่มหนึ่งได้พัฒนาหลักสูตรต้นแบบ (อังกฤษ: Model Curriculum) สำหรับวิศวกรรมซอฟต์แวร์ระดับปริญญาตรี เรียกว่า SE2004 เพื่อให้เป็นมาตรฐานสากล การพัฒนาหลักสูตรต้นแบบดังกล่าวได้รับการสนับสนุนจากสมาคม ACM และสมาคมคอมพิวเตอร์แห่ง IEEE[2]
ในปี ค.ศ. 1998 มหาวิทยาลัยบัณฑิตศึกษาแห่งนาวาล (Naval Postgraduate School) ในสหรัฐอเมริกา ได้ริเริ่มหลักสูตรปริญญาเอกสาขาวิศวกรรมซอฟต์แวร์เป็นครั้งแรกในโลก[ต้องการอ้างอิง] Steve McConnell ได้ให้ความเห็นว่า เป็นเพราะมหาวิทยาลัยส่วนใหญ่มีการเรียนการสอนวิทยาการคอมพิวเตอร์มากกว่า วิศวกรรมซอฟต์แวร์ จึงทำให้ขาดแคลนวิศวกรซอฟต์แวร์ที่แท้จริง ในปี ค.ศ. 2004 สมาคมคอมพิวเตอร์แห่ง IEEE ได้พัฒนา องค์ความรู้ สำหรับสาขาวิศวกรรมซอฟต์แวร์ หรือเรียกว่า Software Engineering Body of Knowledge จนได้รับการรับรองมาตรฐานสากล ISO (ISO/IEC TR 19759:2005)[3]
European Commission ภายในโปรแกรม Erasmus Mundus สำหรับนักศึกษาจากยุโรป และประเทศอื่นๆ. นี่เป็นการร่วมกันของ4มหาวิทยาลัยในยุโรป [4]
สาขาวิชาย่อย
วิศวกรรมซอฟต์แวร์สามารถแบ่งออกไปได้อีก 10 สาขาวิชาย่อย คือ[4]
    การวิเคราะห์ความต้องการของซอฟต์แวร์: การศึกษาวิเคราะห์ข้อกำหนดและข้อกำหนดสำหรับการตรวจสอบความถูกต้องของซอฟต์แวร์.
    การออกแบบซอฟต์แวร์: การออกแบบซอฟต์แวร์มักใช้เครื่องมือช่วยในการออกแบบ Computer-Aided Software Engineering (CASE) และใช้การออกแบบที่เป็นมาตรฐานที่เป็นที่ยอมรับโดยทั่วไปเช่น การออกแบบโดยใช้ภาษายูเอ็มแอล (UML) เป็นต้น
    การพัฒนาซอฟต์แวร์: การพัฒนาซอฟต์แวร์ด้วยภาษาการเขียนโปรแกรมคอมพิวเตอร์ต่างๆ
    การทดสอบซอฟต์แวร์: การทดสอบการทำงานของซอฟต์แวร์
    การบำรุงรักษาซอฟต์แวร์: ระบบซอฟต์แวร์ต่างๆ มักมีปัญหาหลายๆ อย่าง หลังจากพัฒนาเสร็จแล้วยังจำเป็นต้องมีการเพิ่มเติมเรื่อยๆ เป็นเวลาอีกยาวนาน
    การจัดการการตั้งค่าซอฟต์แวร์: เนื่องจากซอฟต์แวร์เป็นระบบที่มีคววมซับซ้อนสูง การกำหนดค่า (เช่นการควบคุมเวอร์ชันและการควบคุมซอร์ซโค๊ด) ต้องได้รับการจัดการตามมาตรฐานและกรรมวิธีที่ถูกต้อง
    การจัดการวิศวกรรมซอฟต์แวร์: การบริหารจัดการระบบซอฟต์แวร์เรียนแบบมาจากการบริหารโครงการ แต่มีข้อแตกต่างกันเล็กน้อย ซึ่งจะพบแค่ในสาขาของซอฟต์แวร์
    กระบวนการพัฒนาซอฟต์แวร์: กระบวนการพัฒนาซอฟต์แวร์เป็นหัวข้อที่มีผู้พูดถึงเป็นอย่างมาก เช่น กระบวนการพัฒนาซอฟต์แวร์แบบเอจายล์ (อังกฤษ: Agile) หรือ กระบวนการพัฒนาซอฟต์แวร์แบบน้ำตก (Waterfall)
    เครื่องมือในวิศวกรรมซอฟต์แวร์
    คุณภาพซอฟต์แวร์: การควบคุมคุณภาพซอฟต์แวร์ และการประกันคุณภาพให้กับการพัฒนาซอฟต์แวร์
    ซอฟต์แวร์ท้องถิ่น: เป็นหนึ่งสาขาของอุตสาหกรรมนี้ที่เกี่ยวกับภาษาท้องถิ่น
 
        ขอบคุณที่มา : https://th.wikipedia.org/wiki/วิศวกรรมซอฟต์แวร์

อัพเดทล่าสุด