Evolution processes Evolution processes
- กระบวนการวิวัฒนาการของซอฟต์แวร์ขึ้นอยู่กับ
- ประเภทของซอฟต์แวร์ที่ต้องบำรุงรักษา
- กระบวนการพัฒนาที่ใช้
- ทักษะและประสบการณ์ของคนที่เกี่ยวข้อง
- ข้อเสนอ (Proposals) สำหรับการเปลี่ยนแปลง มักจะเป็นตัวขับเคลื่อนสำหรับวิวัฒนาการของระบบ
- ควรเชื่อมโยงกับ component ที่ได้รับผลกระทบจากการเปลี่ยนแปลง
- ซึ่งจะทำให้สามารถประมาณการต้นทุนตลอดจนผลกระทบจากการเปลี่ยนแปลง
- การเปลี่ยนแปลงและวิวัฒนาการ จะดำเนินไปตลอดอายุการใช้งานของระบบ Change identification and evolution processes The software evolution process Change implementation Urgent change requests
- การเปลี่ยนแปลงอย่างเร่งด่วน อาจต้องดำเนินการโดยไม่ต้องผ่านขั้นตอนทั้งหมดของกระบวนการวิศวกรรมซอฟต์แวร์
- หากมีข้อผิดพลาดร้ายแรงของระบบต้องได้รับการซ่อมแซมเพื่อให้สามารถใช้งานได้ตามปกติ
- หากการเปลี่ยนแปลงสภาพแวดล้อมของระบบ (เช่น การอัปเกรดระบบปฏิบัติการ) มีผลกระทบที่ไม่คาดคิด
- หากมีการเปลี่ยนแปลงทางธุรกิจที่ต้องการการตอบสนองที่รวดเร็วมาก (เช่นการเปิดตัวผลิตภัณฑ์ที่แข่งขันกัน) The emergency repair process Handover problems
- ในกรณีที่ทีมพัฒนาใช้วิธี agile แต่ทีมวิวัฒนาการไม่คุ้นเคยกับวิธี agile และชอบวิธีการตามแผน (plan-based approach)
- ทีมวิวัฒนาการคาดหวังเอกสารรายละเอียดเพื่อสนับสนุนวิวัฒนาการ
- ปกติกระบวนการ agile มักจะไม่มีเอกสารเยอะขนาดที่ต้องการ
- ในกรณีที่มีการใช้วิธีการตามแผน (plan-based approach) เป็นแนวทางในการพัฒนา แต่ทีมวิวัฒนาการต้องการใช้วิธีการแบบ agile