第八章软件维护合肥工业大学理学院•在软件开发过程中始终强调软件的可维护性
原因是,一个应用系统由于需求和环境的变化以及自身暴露的问题,在交付用户使用后,对它进行维护是不可避免的,统计和估测结果表明,信息技术中硬件费用一般占35%,软件占65%,而软件后期维护费用有时竟高达软件总费用的80%,所有前期开发费用仅占20%
•许多大型软件公司为维护已有软件耗费大量人力、财力
因此,必须建立一套评估、控制和实施软件维护的机制,这就是本章重点讨论的内容
1软件维护的定义•软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程
软件维护的类型•根据软件维护的不同原因,软件维护可以分成4种类型:–纠错性(改正性)维护–适应性维护–完善性维护–预防性维护纠错性维护•在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段
•这些隐藏下来的错误在某些特定的使用环境下就会暴露出来
•为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做纠错性维护
适应性维护•在使用过程中,–外部环境(新的硬、软件配置)–数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化
•为使软件适应这种变化,而去修改软件的过程就叫做适应性维护
完善性维护•在软件的使用过程中,用户往往会对软件提出新的功能与性能要求
•为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性
•这种情况下进行的维护活动叫做完善性维护
预防性维护•预防性维护即软件再工程,是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的活动
•采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试,称为预防性维护
各种维护类型和维护