软件工程总结笔记——软件维护(八)

文章目录

  • 第八章 软件维护
    • 8.1 软件维护的任务和分类
      • 8.1.1 改正性维护
      • 8.1.2 适应性维护
      • 8.1.3 完善性维护
      • 8.1.4 预防性维护
    • 8.2 软件维护的特点
      • 8.2.1 非结构化维护和结构化维护
      • 8.2.2 软件维护的困难性
      • 8.2.3 软件维护的费用
    • 8.3 软件的可维护性
      • 8.3.1 软件可维护性的定义
      • 8.3.2 影响软件可维护性的因素
      • 8.3.3 文档
      • 8.3.4 软件可维护性的定量度量
      • 8.3.5 提高软件可维护性的方法
    • 8.4 软件维护活动

第八章 软件维护

是软件生命周期的最后一个阶段。也是最长的一个阶段。

8.1 软件维护的任务和分类

概念:是在软件交付使用后,为了改正错误或满足新的需要而修改软件的过程。

软件维护的原因:
① 改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷。
② 因在软件使用过程中数据环境发生变化,或运行环境发生变化,需要修改软件以适应这种变化。
③ 用户或管理人员在使用时常提出改正现有功能、增加新功能、改善总体性能的要求,为将这些合理的要求纳入现在运行的软件系统,需要维护软件。
④ 为使投入运行的软件与其他相关程序有良好的接口,以利于协同工作,为使运行软件的应用范围得到必要的扩充。

8.1.1 改正性维护

是在软件运行中发生异常或故障时进行的维护工作。

为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用、应进行的诊断和改正错误的过程,是改正性维护。

8.1.2 适应性维护

是指使软件适应不断变化的运行环境而进行的修改。

8.1.3 完善性维护

指为了满足用户对软件提出的新的功能和性能要求,需要修改或在开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

8.1.4 预防性维护

是为了改善软件在将来的可靠性与可维护性,为以后进一步改善软件性能打下良好基础。

8.2 软件维护的特点

特点:
(1)软件维护是软件生产性活动中延续时间最长、工作量最大的活动。
(2)软件维护不仅工作量大、任务重,而且还会引入新的错误。
(3)软件维护实际上是一个修改和简化了的软件开发过程。
(4)软件维护与软件开发一样,都需要采用软件工程的原理和方法。

8.2.1 非结构化维护和结构化维护

(1)非结构化维护
只有源程序,文档很少甚至没有文档,维护活动只能从阅读、理解、分析源程序开始,维护困难。
(2)结构化维护
用软件工程的思想开发的软件具有各阶段的文档,这对于理解和掌握软件的功能、性能、系统结构、数据结构、系统接口和设计约束有很大作用。

8.2.2 软件维护的困难性

(1)读懂别人写的程序是一件很困难的事情,缺少文档更加困难。
(2)文档不一致。
(3)软件开发和软件维护在人员和时间上的差异。
(4)软件维护不是一件吸引人的事。

8.2.3 软件维护的费用

软件维护的费用 在总费用 中的比重是不断增加的。

年份 在总费用中的占比
1970 35% ~ 40%
1980 40% ~ 60%
1990 70% ~ 80%

8.3 软件的可维护性

8.3.1 软件可维护性的定义

是指 纠正软件系统出现的错误和缺陷,以及为满足新的需要而修改、扩充、压缩软件的容易程度。

8.3.2 影响软件可维护性的因素

(1)软件的可读解性
(2)软件的可修改性
(3)软件的可测试性

8.3.3 文档

文档是 影响软件可维护性的决定因素。

文档应满足以下要求:

  1. 必须描述使用这个系统。
  2. 必须描述怎样安装和管理这个系统。
  3. 必须描述系统需求和设计。
  4. 必须描述系统的实现和测试,使系统是可维护的。

8.3.4 软件可维护性的定量度量

(1)可读性
(2)可修改性
(3)可测试性

8.3.5 提高软件可维护性的方法

(1)建立明确的软件质量目标和优先级。
(2)使用提高软件质量的技术和工具。
(3)进行明确的质量保证审查。

① 在检查点进行复审
② 验收检查
③ 周期性地维护审查
④ 对软件包进行检查
(4)选择可维护的程序设计语言
(5)做好程序的文档

① 帮助维护人员读懂程序
② 方便被维护软件的测试

8.4 软件维护活动

8.4.1 软件维护组织机构
8.4.2 软件维护申请报告
8.4.3软件维护工作流程

软件工程总结笔记——软件维护(八)_第1张图片
8.4.4 维护档案记录
8.4.5 维护评价

你可能感兴趣的:(软件工程)