วิศวกรรมซอฟต์แวร์คืออะไร? ความหมาย พื้นฐาน ลักษณะเฉพาะ
วิศวกรรมซอฟต์แวร์คืออะไร
วิศวกรรมซอฟต์แวร์หมายถึงกระบวนการวิเคราะห์ความต้องการของผู้ใช้ จากนั้นจึงออกแบบ สร้าง และทดสอบแอปพลิเคชันซอฟต์แวร์ที่จะตอบสนองความต้องการเหล่านั้น
ลองดูคำจำกัดความต่างๆ ของวิศวกรรมซอฟต์แวร์:
- 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) การบำรุงรักษา