วิศวกรรมซอฟต์แวร์คืออะไร? ความหมาย พื้นฐาน ลักษณะเฉพาะ

วิศวกรรมซอฟต์แวร์คืออะไร

วิศวกรรมซอฟต์แวร์หมายถึงกระบวนการวิเคราะห์ความต้องการของผู้ใช้ จากนั้นจึงออกแบบ สร้าง และทดสอบแอปพลิเคชันซอฟต์แวร์ที่จะตอบสนองความต้องการเหล่านั้น

ลองดูคำจำกัดความต่างๆ ของวิศวกรรมซอฟต์แวร์:

  • IEEE ในมาตรฐาน 610.12-1990 กำหนดวิศวกรรมซอฟต์แวร์ว่าเป็นการประยุกต์ใช้แนวทางที่เป็นระบบและมีระเบียบวินัยซึ่งสามารถคำนวณได้สำหรับการพัฒนา การดำเนินการ และการบำรุงรักษาซอฟต์แวร์
  • Fritz Bauer ให้คำจำกัดความว่าเป็น "การก่อตั้งและใช้หลักการทางวิศวกรรมมาตรฐาน" ช่วยให้คุณได้รับซอฟต์แวร์ที่เชื่อถือได้และทำงานอย่างมีประสิทธิภาพบนเครื่องจักรจริงในราคาประหยัด
  • โบห์มให้คำจำกัดความของวิศวกรรมซอฟต์แวร์ ซึ่งเกี่ยวข้องกับ 'การนำความรู้ทางวิทยาศาสตร์มาประยุกต์ใช้ในทางปฏิบัติเพื่อการออกแบบและสร้างโปรแกรมคอมพิวเตอร์อย่างสร้างสรรค์ นอกจากนี้ยังรวมถึงเอกสารประกอบที่จำเป็นสำหรับการพัฒนา การใช้งาน และการบำรุงรักษาโปรแกรมเหล่านั้นด้วย'

ทำไมต้องวิศวกรรมซอฟต์แวร์? วิกฤติซอฟต์แวร์และแนวทางแก้ไข

วิกฤติซอฟต์แวร์คืออะไร?

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

ปัญหาทั้งหมดข้างต้นนำไปสู่ ​​'วิกฤตซอฟต์แวร์'

โซลูชั่น

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

  • ช่วงปลายทศวรรษ 1970 มีการใช้หลักวิศวกรรมซอฟต์แวร์อย่างแพร่หลาย
  • ในทศวรรษ 1980 ได้เห็นกระบวนการทางวิศวกรรมซอฟต์แวร์แบบอัตโนมัติและการเติบโตของ (CASE) วิศวกรรมซอฟต์แวร์ช่วยด้วยคอมพิวเตอร์
  • ทศวรรษ 1990 ได้เห็นการเน้นที่เพิ่มมากขึ้นในด้าน 'การจัดการ' ของมาตรฐานคุณภาพและกระบวนการของโครงการ เช่นเดียวกับ ISO 9001

ทำไมวิศวกรรมซอฟต์แวร์ถึงได้รับความนิยม?

ต่อไปนี้เป็นเหตุผลสำคัญที่อยู่เบื้องหลังความนิยมของวิศวกรรมซอฟต์แวร์:

ทำไมวิศวกรรมซอฟต์แวร์ถึงได้รับความนิยม

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

ความสัมพันธ์ระหว่างวิศวกรรมซอฟต์แวร์กับสาขาวิชาอื่น

วิศวกรรมซอฟต์แวร์เกี่ยวข้องกับสาขาวิชาอื่นๆ อย่างไร:

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

ความท้าทายของวิศวกรรมซอฟต์แวร์

ต่อไปนี้เป็นความท้าทายสำคัญที่วิศวกรซอฟต์แวร์ต้องเผชิญ:

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

คุณลักษณะสำหรับผลิตภัณฑ์ซอฟต์แวร์

ลักษณะเฉพาะของผลิตภัณฑ์ซอฟต์แวร์ใดๆ จะรวมถึงคุณลักษณะต่างๆ ที่แสดงโดยผลิตภัณฑ์เมื่อติดตั้งและใช้งาน

ไม่ใช่บริการที่ได้รับจากผลิตภัณฑ์ แต่กลับมีความเกี่ยวข้องกับพฤติกรรมแบบไดนามิกของผลิตภัณฑ์และการใช้งานของผลิตภัณฑ์

ตัวอย่างของคุณลักษณะเหล่านี้คือ:

Efficiency, reliability, robustness, maintainability, etc. 

อย่างไรก็ตาม ความสำคัญเชิงสัมพันธ์ของคุณลักษณะเหล่านี้แตกต่างกันไปในแต่ละระบบซอฟต์แวร์

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

การเพิ่มประสิทธิภาพคุณลักษณะข้างต้นเป็นสิ่งที่ท้าทายมาก ตัวอย่างเช่น การนำเสนอ UI ที่ดีกว่าสามารถลดประสิทธิภาพของระบบได้

ลักษณะของซอฟต์แวร์ที่ดี

ซอฟต์แวร์ใด ๆ ควรได้รับการตัดสินจากสิ่งที่นำเสนอและวิธีการใดบ้างที่ช่วยให้คุณใช้งานได้

ซอฟต์แวร์ทุกตัวจะต้องตอบสนองคุณสมบัติต่อไปนี้:

  • Operaแห่งชาติ
  • เกี่ยวกับการนำส่ง
  • ซ่อมบำรุง

ต่อไปนี้เป็นคุณลักษณะที่สำคัญบางประการของซอฟต์แวร์ที่ดีซึ่งพัฒนาโดยผู้เชี่ยวชาญด้านซอฟต์แวร์

Operaแห่งชาติ

ลักษณะเฉพาะนี้ช่วยให้เราทราบว่าซอฟต์แวร์ทำงานได้ดีเพียงใดในการดำเนินการซึ่งสามารถวัดได้ดังนี้:

  • งบประมาณ
  • อย่างมีประสิทธิภาพ
  • การใช้งาน
  • ความเชื่อถือได้
  • ความถูกต้อง
  • ฟังก์ชั่น
  • ความปลอดภัย
  • ⁠ความปลอดภัย

เกี่ยวกับการนำส่ง

นี่เป็นสิ่งสำคัญเมื่อซอฟต์แวร์ถูกย้ายจากแพลตฟอร์มหนึ่งไปยังอีกแพลตฟอร์มหนึ่ง:

  • การทำงานร่วมกัน
  • ความสามารถในเรอุส
  • Portability
  • การปรับตัวและเข้าถึงได้

ซ่อมบำรุง

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

  • ความยืดหยุ่น
  • การบำรุงรักษา
  • modularity
  • scalability

สรุป

  • วิศวกรรมซอฟต์แวร์เป็นกระบวนการในการวิเคราะห์ความต้องการของผู้ใช้ จากนั้นจึงออกแบบ สร้าง และทดสอบแอปพลิเคชันซอฟต์แวร์ที่จะตอบสนองความต้องการดังกล่าว
  • เหตุผลสำคัญในการใช้วิศวกรรมซอฟต์แวร์คือ: 1) ซอฟต์แวร์ขนาดใหญ่ 2) ความสามารถในการขยายขนาด 3) ความสามารถในการปรับตัว 4) ต้นทุน และ 5) ลักษณะไดนามิก
  • ในช่วงปลายทศวรรษ 1960 ซอฟต์แวร์จำนวนมากมีงบประมาณเกินงบประมาณ ดังนั้นจึงเสนอซอฟต์แวร์ที่ไม่น่าเชื่อถือซึ่งมีค่าใช้จ่ายในการบำรุงรักษาสูง
  • ช่วงปลายทศวรรษ 1970 มีการใช้หลักวิศวกรรมซอฟต์แวร์อย่างแพร่หลาย
  • แนวคิดทางวิศวกรรมซอฟต์แวร์ 1) วิทยาการคอมพิวเตอร์ 2) วิทยาการจัดการ 3) วิศวกรรมระบบ และ 4) เศรษฐศาสตร์
  • ความต้องการของตลาดที่เพิ่มขึ้นสำหรับเวลาตอบสนองที่รวดเร็วถือเป็นความท้าทายที่ใหญ่ที่สุดในสาขาวิศวกรรมซอฟต์แวร์
  • 1) การบำรุงรักษา 2) ความน่าเชื่อถือ 3) ประสิทธิภาพ และ 4) การใช้งานเป็นคุณลักษณะที่สำคัญที่สุดของผลิตภัณฑ์ซอฟต์แวร์
  • ลักษณะสำคัญของซอฟต์แวร์ที่ดีมี 1 ประการ คือ XNUMX) Operaฉบับที่ 2) การเปลี่ยนผ่าน 3) การบำรุงรักษา