软件演化和维护

1、什么是软件演化 (Software Evolution)
是指对软件进行维护和更新的一种行为,它是软件生命周期中始终存在的变化活动。
按生命周期的不同阶段,软件演化可分为:
开发演化
创造一个新软件的过程,它强调要在一定的约束条件下从头开始实施,占软件演化的30%
运行演化
又称软件维护(Software Maintenance),是软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,它强调必须在现有系统的限定和约束条件下实施,占软件演化的70%。

在传统环境下,运行演化在开发演化后发生
在网络环境下,开发演化与运行演化已呈现出交织协同、并生共长的态势,软件运行状态改变的同时,软件版本也不断升级

2、Lehman的8条软件演化法则
(1974)持续变更法则。软件必须持续改进,否则就会变得越来越不令人满意。
(1974)复杂度递增法则。软件的复杂性随着演化不断增加,除非采取措施使系统保持或降低复杂性。
(1974)自调节法则。软件的演化过程可以自动调节产品分布和过程测量,以接近正常状态。
(1978)组织稳定性法则。在软件的生命周期中,组织的平均开发效率是稳定的。
(1978)通晓法则。随着软件的演化,所有相关人员(如开发人员、销售人员和用户)都必须始终掌握软件的内容和行为,以便达到满意的演化效果。
(1991)功能持续增加法则。在软件的生命周期中,软件功能必须持续增加,否则用户的满意度会降低。
(1996)质量衰减法则。如果没有严格的维护和适应性调整使之适应运行环境的变化,软件的质量会逐渐衰减。
(1996)反馈系统法则。软件演化过程是由多层次、多循环、多主体的反馈系统组成,而且要想在任何合理的基础上达到有意义的改进就必须这样进行处理。

3、维护类型
纠错性维护(Corrective maintenance)
由于软件中的缺陷引起的修改
完善性维护(Perfective maintenance)
根据用户在使用过程中提出的一些建设性意见而进行的维护活动
适应性维护(Adaptive maintenance)
为适应环境的变化而修改软件的活动
预防性维护(Preventive maintenance)
为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础

4、软件维护技术
程序理解
逆向工程(Reverse Engineering)
再工程(Reengineering)

猜你喜欢

转载自blog.csdn.net/algzjh/article/details/80735288