1.软件维护的定义
- 定义:所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
- 分类
- 改正性维护:软件中肯定隐藏着某些未被发现的错误,在使用过程中发现了隐藏的错误后,诊断和改正这些隐藏错误而修改软件的活动。
- 适应性维护:为了适应变化的环境而修改软件的活动
- 完善性维护:为扩充或完善原有软件的功能或性能而修改软件的活动
- 预防性维护:“把今天的方法学用于昨天的系统以满足明天的需要”
2.软件维护的特点
- 非结构化维护:软件配置的唯一成分只有代码
- 结构化维护:有完整的软件配置存在
- 特点:结构化维护与非结构化维护差别巨大,维护的代价高昂,维护的问题很多
3.软件维护过程
- 维护过程的本质是修改和压缩了软件定义和开发过程,而且事实上远在提出一项维护要求之前,与维护有关的工作已经开始了。
4.软件的可维护性
- 定义:维护人员理解、改正、改动或改进这个软件的难易程度。
- 决定软件可维护性的因素:①可理解性 ②可测试性 ③可修改性 ④可移植性 ⑤可重用性
- 文档是影响软件可维护性的决定因素。可分为用户文档和系统文档两类
5.软件再工程过程
- 库存目录分析
- 文档重构
- 逆向工程
- 代码重构
- 数据重构
- 正向工程