1、软件维护是软件生存周期的最后一个阶段,是在软件交付使用后,为了改正错误或满足新的需要而修改软件的过程。软件维护工作的目标是:不断地、持续地改进、扩充、完善软件系统,以提高系统运行效率,并尽量延长系统的使用寿命,为用户创造更大的价值。
2、软件维护产生原因
(1)改正在特定使用条件下暴露出来的一些潜在的程序错误和设计缺陷。
(2)由于软件使用过程中数据环境发生变化或处理环境发生变化需要修改软件以适应这种变化。
(3)用户或数据处理人员在使用时常提出改进现有功能、增加新的功能,以及改善总体性能的要求,需要维护软件。
3、软件维护分类
(1)改正性维护
(2)适应性维护
(3)完善性维护
(4)预防性维护
4、软件维护技术
软件维护的技术包括:面向维护的技术和维护支援技术。
面向维护的技术是软件开发阶段用来减少错误,提高软件可维护性的技术。
维护支援技术是在软件维护阶段用来提高维护作业的效率和质量的技术。
5、软件维护的副作用
软件维护的副作用是指:由于维护或在文档化过程中其他一些不期望的行为引入的错误。副作用大致分为以下三类:
代码的副作用
数据副作用
文档副作用
6、软件再工程
软件再工程是目前预防性维护所采用的的主要技术,是为了以新形式重构已存在软件系统而实施的检测、分析、更替,以及随后构建新系统的工程活动。
软件再工程的目的是理解已存在的软件(包括规范、设计、实现),然后对该软件重新实现以期增强它的功能,提高它的性能,或降低它的实现难度,客观上达到维持软件的现有功能并为今后新功能的加入做好准备的目标。
7、必须在软件交付之前对整个软件配置进行复审,以减少文档副作用。
8、软件的可维护性、可使用性、可靠性是衡量软件质量的几个主要特性。
9、软件维护的费用增加的主要原因是维护的效率非常低。
10、维护申请报告是一种由用户产生的文档,它用作计划维护任务的基础。
11、采用手工方法开发软件只有程序而无文档,维护困难,这是一种非结构化维护,采用软件工程方法开发软件,各阶段均有文档,容易维护,这是一种结构化维护。
12、在软件维护的内容中,占维护活动工作量比例最高的是适应性维护。
13、当前时期软件维护的费用在总费用中的比例为60%~70%
14、软件维护中大部分工作是由于用户的需求改变而引起的。
15、需求分析的修改不属于软件维护中的副作用。
16、软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充与压缩的容易程度。
17、软件使不同的系统约束条件和用户需求得到满足的容易程度是指兼容性。
18、可维护性的特性中,相互矛盾的是效率和可修改性。
19、影响软件维护成本的因素有哪些?
有形的软件维护成本可体现在花费了多少资金,而无形的软件维护成本则对软件有更大的影响。例如如下情况:
(1)一些合理的修复或修改请求如果不能得到及时安排,就会引起用户的不满。
(2)由于维护时的改动,在软件中引入潜在的错误,从而使软件的整体质量下降。
(3)把软件人员调到维护工作中,将会干扰软件开发工作。