软件维护与演化

21-软件维护与演化

软件交付的主要活动

1.安装部署。2.用户培训与文档支持。3.项目评价(汲取经验教训)。

软件维护

软件交付之后修改软件系统或其部件的活动过程,可以修正缺陷,完善系统功能,提高性能或其他属性、适应变化的环境。演化和维护是等价的词汇。

软件维护的类型

完善性维护:为了满足新需求,增加软件功能。

适应性维护:为了使软件适应新环境。

修正性维护:为了排除系统中的缺陷。

预防性维护:为了提高可维护性。

软件维护的高代价性的原因

变更的频繁性:

软件变更的频率和幅度相当大。

新增需求是影响最大的变更类型,缺陷修复是发生最为频繁的变更类型。

维护的困难性:

程序理解:程序理解困难。

影响分析:修改一部分代码时,可能会影响到其他部分。

开发可维护的软件的方法

考虑软件的可变更性:软件开发时就考虑为可能的变更进行设计。如面向对象设计中的开闭原则

为降低维护困难而开发:编写详细的技术文档并保持更新,保证代码的可读性,维护需求跟踪连,维护回归测试基线。

软件演化生命周期模型

初始开发:第一个版本的软件产品开发。

演化:对演化增量进行处理以保持软件产品的持续增值。

服务:用户使用,开发者维护,软件不在持续增加价值。

逐步淘汰:用户仍使用,开发者不维护。

停止:用户不使用,开发者不维护。

(开演服汰停)

软件维护与演化的常见技术

逆向工程

分析目标系统,标识系统的部件及其交互关系,

原理是抽取软件系统的需求和设计而隐藏实现细节,

使用其他形式或更高层的抽象创建系统表现的过程,

作用是理解遗留软件并对其进行维护。

再工程

检查和改造一个目标系统,用新的模式及其实现复原该目标系统,以改善系统或促进系统的再利用,作用是通过修改软件来处理遗留软件。

区别(关注点)

逆向工程关注点是理解软件而不是修改软件,再工程关注如何修改软件,不会花费很大力气理解软件。处理遗留软件时,再工程之前通常需要一个前导的逆向工程。


软件维护与演化
http://example.com/2022/06/15/计算机基础/软件工程/21-软件维护与演化/
作者
PALE13
发布于
2022年6月15日
许可协议