- 3
- 0
- 约9.13千字
- 约 47页
- 2018-04-10 发布于河南
- 举报
L10_软件工程概论_QUST
软件维护
概念
概述
• 软件维护阶段覆盖了从软件交付使用到被淘汰的整个时期
• 两种错误认识
– 软件维护是一次新的开发活动
– 软件维护就是改错
• 新开发活动强调要在一定的约束条件下从头开始实施
• 软件维护强调必须在现有系统的限定和约束条件下实施
概述
• 软件维护是指在软件运行/维护阶段对软件产品所进行的
修改就是所谓的维护
– 改正性维护
– 适应性维护
– 完善性维护
– 预防性维护
改正性维护
• 改正性维护(corrective maintenance )为了识别和纠正
软件错误、改正软件性能上的缺陷、排除实施中的误使用 ,
应进行的诊断和改正错误的过程
– 如:改正性维护可以是改正原来程序中开关使用的错误
– 如:解决开发时未能测试各种可能情况带来的问题等
适应性维护
• 软件运行的外部环境(新的硬、软件配置)或数据环境
(数据库、数据格式、数据输入/输出方式、数据存储介
质)可能发生变化,为了使软件适应这种变化,而修改软
件的过程叫做适应性维护(adaptive maintenance )
– 例如,需要对已运行的软件进行改造,以适应网络环境或已升级
改版的操作系统要求
完善性维护
• 为了满足新的功能与性能要求,需要修改或再开发软件 ,
以扩充软件功能、增强软件性能、改进加工效率、提高软
件的可维护性。这种情况下进行的维护活动叫做完善性维
护(perfective maintenance )
– 例如 ,完善性维护可能是修改一个计算工资的程序,使其增加新
的扣除项目;缩短系统的应答时间,使其达到特定的要求等
预防性维护
• 预防性维护(preventive maintenance )是指把今天的
方法学用于昨天的系统以满足明天的需要
• 也就是说 ,采用先进的软件工程方法对需要维护的软件或
软件中的某一部分 (重新)进行设计、编码和测试
• 粗看起来,在一个正在工作的程序版本已经存在的情况下
重新开发一个大型程序,似乎是一种浪费 ,其实不然,下
述事实很能说明问题……
预防性维护
• 维护一行源代码的代价可能是最初开发该行代码的14 ~40倍;
• 重新设计软件体系结构(程序及数据结构)时使用了现代设计概
念,它对将来的维护可能有很大的帮助;
• 由于现在的程序版本可作为软件原型使用,开发生产率可大大
高于平均水平;
• 用户具有较多使用该软件的经验,因此,能够很容易的搞清新
的变更需求和变更的范围 ;
• 利用逆向工程和再工程的工具,可以使一部分工作自动化;
• 在完成预防性维护的过程中可以建立起完整的软件配置。
各类维护占总维护工作量的比例
• 各类维护占总维护工作量的比例
– 在整个软件维护阶段花费的全部工作量中,预防性维护只占很小
的比例,而完善性维护占了几乎一半的工作量
– 只有正确区分维护活动的类型才能够更有效地确定维护需求的优
先级
维护工作量在软件生存期中所占比例
• 软件维护活动花费的工作量占整个生存期工作量的70%以
上(工作量的比例直接反映了成本的比例)
影响维护工作量的因素
• 系统的规模
– 系统规模越大,其功能就越复杂,软件维护的工作量也随之增大
• 程序设计语言
– 使用强功能的程序设计语言可以控制程序的规模
– 语言的功能越强,生成程序的模块化和结构化程度越高,所需的
指令数就越少,程序的可读性也越好
• 系统年龄
– 老系统比新系统需要更多的维护工作量
影响维护工作量的因素
• 数据库技术的应用
– 使用数据库,可以简单而有效地管理和存储用
原创力文档

文档评论(0)