第十一章 软件演化
软件演化的特性:
1.软件维护是一个必然的过程。
2.软件的不断修改会导致软件的退化。
3.软件系统的演化特性是在早期的开发阶段建立起来的。
4.软件开发的效率与投入的资源无关。
5.在软件系统中添加新的功能不可避免地产生新的缺陷,因此在一个发布的新版本中有较大的功能增量将会意味着需要发布下一个版本,该版本中的新增功能较少,而主要是修补这些新产生的软件缺陷。
软件维护
软件维护是指在软件运行或维护阶段对软件产品所进行的修改。
1.改正性维护
2.适应性维护
3.完善性维护
软件维护的特点
1.软件维护受开发过程影响大
2.软件维护困难多
(1)读懂别人的程序是很困难的,而文档的不足更增加了这种难度。
(2)文档的不一致性是软件维护困难的又一个因素。
(3)软件开发和软件维护人员在人员和时间上存在差异。
(4)软件维护不是一件吸引人的工作。
3.软件维护成本高
M=P+K*exp(C-D)
其中,M表示维护工作的总工作量,P表示生产性活动的工作量,K表示经验常数,C表示复杂性程度,D表示维护人员对软件的熟悉程度。
软件维护的过程
软件维护工作包括建立维护组织、报告与评估维护申请、实施维护流程等步骤。
软件再工程
软件再工程的过程模型