软件演化(software evolution),理学-计算机科学技术-计算机软件-软件语言与方法-软件方法学,软件在其生命周期内的更新行为和过程。大多数软件产品和系统在初次交付之后都会进入一个长期的演化过程。在此过程中,软件的业务需求以及用户期望可能会发生变化,软件运行的业务或技术上下文环境可能发生变化,软件在使用过程中可能会发现新的错误和问题,软件在性能、可维护性、可扩展性等非功能性质量方面可能需要改进。以上这些因素都需要对软件不断地进行修改,以持续适应用户和客户的需要,保持市场竞争力。此外,在敏捷开发等迭代化软件开发过程中,每一次迭代既是开发过程的延续,又是基于前一次迭代开发成果的进一步演化。软件演化过程往往伴随着软件维护任务,具体包括纠正性维护、预防性维护、适应性维护、完善性维护等。为了确保软件质量及提高软件开发效率,软件演化和维护过程应当支持开发人员高效地理解软件的设计和实现方案、实施软件修改、验证和确认软件修改结果。因此,软件的可理解性、可修改性、可扩展性、可测试性等方面的质量对于软件的可持续演化具有重要的影响。