软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程;
软件维护的原因或者说驱动力:
在运行中发现软件错误和设计缺陷,这些错误和缺陷在测试阶段未能发现;
需要改进设计,以便增强软件的功能,提高软件的性能;
要求已经运行的软件能够适应特定的硬件,软件,外部设备和通信设备等的工作环境,
或者是要求适应已变动的数据或文件;
为使投入运行的软件与其他相关的程序有良好的接口,以利于协同工作;
为使运行软件的应用范围得到必要的扩充;
软件维护与硬件维护的区别:
硬件维护是替换已经损坏的零部件,纠正缺陷,加强设计和保养;
软件维护不仅可以改正原来设计中的错误或不当之处,而且还可以增强软件功能,
提高软件性能;
软件维护工作处于软件声明周期的最后阶段,占67%的生命期;
所以我们原来觉得软件测试是软件声明周期的最后阶段的想法是错误的;
而且我们认为软件的编写将占据大量的生命周期的想法也是错误的;
维护的种类
维护的步骤与方法
维护方法:
1, 基本工作:
a) 检查用户需求说明书,对用户原来的需求做到心中有数;
b) 同用户和开发人员商讨,明确维护的类型;
c) 检查程序和相应的文档;
d) 确定程序错误的性质与位置,或要增加功能的部分;
e) 研究程序修改可行性和修改可能引起的副作用;
f) 对改变的部分进行编码;
g) 修改相应的程序文档和程序库
2, 改进维护方法的一些建议:
a) 使用结构化程序设计技术来修改程序;
b) 鼓励维护人员与用户和开发人员互相商讨问题;
c) 建立和加强程序设计和文档标准;
d) 改进现有软件的文档;
e) 为检查维护工作的质量严格执行维护复审;
f) 提高用户对维护工作的重视;
g) 应以成批方式处理维护请求,而不是以分散的方式处理维护请求;
h) 当软件被修改后,应该特别重视重复测试和重复确认;
i) 应对维护人员加强应用领域新知识和新技术的培训,有利于搞好维护工作;
3, 理解现有系统;
4, 修改现有系统:
a) 制定修改计划;
b) 按计划修改系统
c) 控制系统修改的波动效应(如果修改一个模块引起其他模块的改变则称为波动效应)
5, 重新确定新的系统;
软件系统的可维护性
软件的可维护性是指维护人员为纠正软件系统出现的错误或缺陷,以及为新的要求而理解,修改和完善软件系统的难易程度。
简单地说,软件的可维护性就是软件修改的难易程度;
决定可维护性的因素:
可理解性;
可测试性:诊断和测试系统的难易程度;
可修改性;
维护的管理
维护人员:包括开发人员和专职维护人员;
软件维护阶段的文档:
1, 软件问题报告:
a) 登记号和登记日期;
b) 软件名称,编号,版本号;
c) 开发单位名称;
d) 报告人姓名,单位,电话;
e) 报告时间;
f) 问题来源;
g) 问题描述;
h) 处理意见;
i) 附注;
2, 软件修改报告:
a) 登记号和登记日期;
b) 上次修改登记号;
c) 修改日期;
d) 软件名称,编号,版本号;
e) 开发单位;
f) “软件修改申请报告“登记号和登记日期;
g) 修改时的运行环境;
h) 修改内容;
i) 批注者姓名;
j) 测试情况(测试项目,测试用例)
k) 修改的影响;
l) 修改时的资源消耗(人工数,计算机时数);
m) 附注;
n) 修改者和审核者姓名;