I. What is maintaining!!
Any work done to change the system after it is in operation is considered to be maintenance
当系统运转之时,也就是说,当系统在实际生产环境中被用户使用时,系统开发就完成了。系统运转之后,任何针对系统改变所做的工作,都被认为是维护。
The typical development project takes between one and two years but requires and additional five to six year so maintenance time.
一般的开发项目花费1-2年时间开发但是需要额外的5-6年的维护时间。
More than half of a project’s programming resources are spent on maintenance
超过一半的项目编程资源都花费在维护上
In accordance with 80-20 rule:20% of the effort is in development and 80% is in maintenance
80/20规则:20%的工作量用于开发,而80%的工作量用于维护
II. Four types of maintenance activities//维护活动
维护活动类似于开发活动:分析需求、评估系统和程序设计、编写和评审代码、测试变化以及更新文档。
维护同时集中于系统演化的以下4个主要方面
1、维护对系统日常功能的控制
2、维护对系统修改的控制
3、完善现有验收的功能
4、防止系统性能下降到不可接受的程度
Corrective maintenance改正性维护
要控制日常的系统功能,维护就需要小组对故障导致的问题立即作出反应。针对这些问题所进行的处理,称为改正性维护。
维护小组找出失效的原因,并进行修正,需要对需求、设计、代码、测试等进行相应的改变。
开始的修改可能是临时性的,但不一定是最好的,后续要进行完善,以纠正更普遍的问题。
Adaptive maintenance
有时,对系统的一部分进行的改变会要求改系统的其它部分,适应性维护实现这种改变。
例如,假定为了增强一个编译器,我们给它添加一个调试器。我们必须改变菜单、图元或功能键定义,以便使用户能够选择调试器选项。
Perfective maintenance
在维护系统时,对文档、设计、代码以及测试进行检查,以寻找改进的机会。完善性维护是为了对系统某些方面进行改进而做出的改变,这些改变完全不是因为故障。
例如,可以进行文档的详细描述,改变测试集增加测试覆盖,增强代码的可读性等
Preventive maintenance
类似于完善性维护,预防性维护是改变系统的某些方面,以预防失效的发生。它可能包括,增加类型检查、增强故障处理、或在情况语句中增加“catch-all”语句,以确保系统能够处理所有可能的情况。是在发现一个实际的或潜在的故障,而这个故障还没有造成失效之前,进行的维护。