L10_软件工程概论_QUST.pdfVIP

  • 3
  • 0
  • 约9.13千字
  • 约 47页
  • 2018-04-10 发布于河南
  • 举报
L10_软件工程概论_QUST

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

文档评论(0)

1亿VIP精品文档

相关文档