ScholarGate
ผู้ช่วย

การบำรุงรักษาและวิวัฒนาการของซอฟต์แวร์

การบำรุงรักษาและวิวัฒนาการของซอฟต์แวร์เกี่ยวข้องกับการปรับเปลี่ยนซอฟต์แวร์หลังจากการส่งมอบ และพลวัตระยะยาวที่ระบบต้องเปลี่ยนแปลงอย่างต่อเนื่องเพื่อคงประโยชน์ใช้สอยไว้

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

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

Scope

ขอบเขตนี้ครอบคลุมประเภทของการบำรุงรักษา (การแก้ไข, การปรับตัว, การปรับปรุงให้สมบูรณ์, การป้องกัน); กฎเชิงประจักษ์ของวิวัฒนาการซอฟต์แวร์; ความเข้าใจโปรแกรมและการวิเคราะห์ผลกระทบ; การปรับปรุงโครงสร้าง, วิศวกรรมย้อนกลับ, และการย้ายระบบเก่า; การสะสมและการจัดการหนี้ทางเทคนิค; และกระบวนการและมาตรฐานที่ควบคุมการบำรุงรักษา เช่น ISO/IEC 14764

Sub-topics

Core questions

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

Key theories

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

Clinical relevance

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

Evidence & guidelines

ISO/IEC 14764 กำหนดกระบวนการบำรุงรักษาซอฟต์แวร์ และส่วนความรู้ด้านการบำรุงรักษาซอฟต์แวร์ของ SWEBOK ให้คำแนะนำที่เป็นที่ยอมรับเกี่ยวกับประเภท กิจกรรม และเทคนิคการบำรุงรักษา

History

การตระหนักว่าการบำรุงรักษามีบทบาทสำคัญในต้นทุนซอฟต์แวร์เพิ่มขึ้นในช่วงทศวรรษ 1970; Lehman และ Belady ได้กำหนดกฎของวิวัฒนาการซอฟต์แวร์จากการศึกษาเชิงประจักษ์ของระบบขนาดใหญ่ และเทคนิคการปรับปรุงโครงสร้างและการปรับปรุงระบบเก่าได้พัฒนาขึ้นเมื่อระบบที่มีอายุการใช้งานยาวนานขึ้น และหนี้ทางเทคนิคกลายเป็นข้อกังวลที่ได้รับการยอมรับ

Debates

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

Key figures

  • Meir M. Lehman
  • Les Belady
  • Ian Sommerville

Related topics

Seminal works

  • lehman1980
  • iso14764
  • sommerville2015

Frequently asked questions

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

Methods for this concept

Related concepts