第8章 维护

文章详细介绍了软件维护的定义、原因和类型,包括改正性、适应性、完善性和预防性维护。强调了维护在软件生命周期中的重要性,指出维护成本高、问题多的特点,并概述了维护过程,包括组织、报告和时间流。此外,讨论了软件的可靠性、文档对于可维护性的影响,以及预防性维护和软件再工程的作用。

第8章 维护

软件维护所需的工作量非常大,一般说来,大型软件的维护成本高达开发总成本的四倍左右。目前,软件开发组织把60%以上的工作量用于维护自己的软件上。

一、软件交付使用的工作

  1. 将旧系统的数据转换到新系统(如数据库数据);
  2. 新系统调试完成并加载入机器,准备运行;
  3. 将有关资料(如使用说明)转交给用户;
  4. 对用户做适当的培训

二、软件交付使用的方式

1) 直接方式

直接方式是用新系统直接替换旧系统,没有过渡。
优点:转换简单,费用最省。
缺点:风险大。

2) 并行方式

优点:
A.可以对系统进行全面测试,减少了新系统失灵带
来的风险,因为旧系统也仍然存在;
B.用户也能够有一段熟悉新系统的时间。
缺点:
所需费用较高,双系统要投入更多的人力财力。

3) 逐步方式

逐步方式是将软件分期,部分地交付使用。这种方式克服了上面两种方式的缺点,既能防止直接转换产生的危险性,又能减少并行方式的费用。

8.1 软件维护的定义

1、软件维护的定义

在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

2、软件维护的原因

1)改正在特定使用条件下暴露出来的一些潜在程序错误或设计缺陷;
2)因在软件使用过程中数据环境发生变化(如所要处理的数据发生变化)或处理环境发生变化(如硬件或软件操作系统等发生变化),需要修改软件,以适应这种变化;
3)用户和数据处理人员在使用时常提出改进现有功能、增加新功能、以及改善总体性能的要求,为满足这些要求,需要修改软件。

3、软件维护的类型

1、改正性维护

诊断和改正错误的过程称为改正性维护。

2、适应性维护

随着计算机的飞速发展,新的硬件系统和外部设备时常更新和升级,一些数据库环境、数据输入输出方式、数据存储介质等也可能发生变换。为了使软件适应这些环境变化而修改软件的过程叫做适应性维护

3、完善性维护

在软件投入使用过程中,用户可能还会有新的功能和性能要求,可能会提出增加新功能、修改现有功能等要求。为了满足这类要求而进行的维护称为完善性维护。

4、预防性维护

为了改进软件未来的可维护性或可靠性,或者为了给未来的改进奠定更好的基础而进行的修改,称为预防性维护。

8.2 软件维护的特点

8.2.1结构化维护和非结构化维护差别巨大

在这里插入图片描述

8.2.2 维护的代价高昂

软件维护的代价表现为有形代价和无形代价。

  1. 有形代价指软件维护的费用开支。
  2. 无形代价可用的资源必须供维护任务使用,以致耽误甚至丧失了开发的良机。

8.2.3 维护的问题很多

8.3 软件维护的过程

8.3.1 维护组织

在这里插入图片描述
① 维护申请提交给维护管理员,他把申请交给某个系统监督员去评价。
② 一旦做出评价,由修改负责人(变化授权人)确定如何进行修改。
③ 在修改程序的过程中,由配置管理员严格把关,控制修改的范围,对软件配置进行审计。

8.3.2 维护报告

  1. 维护申请报告或称软件问题报告,由申请维护的用户填写。
  2. 维护申请报告是由软件组织外部提交的文档,它是计划维护活动的基础。
  3. 根据软件问题报告(维护要求),作出的软件修改报告包含的信息主要有:
  1. 满足维护要求表中提出的要求所需要的工作量;
  2. 维护要求的性质;
  3. 这项要求的优先次序;
  4. 与修改有关的事后数据(如测试数据等)。

8.3.3 维护的时间流

在这里插入图片描述

8.4 软件的可靠性维护

8.4.1 决定软件可维护性的因素

  1. 可理解性
  2. 可测试性
  3. 可修改性
  4. 可移植性
  5. 可重用性

8.4.2 文档

①文档是开发、使用和维护程序所需要的图文资料。
②文档是影响软件可维护性的决定因素。
③文档比程序代码更重要。

  1. 用户文档
    用户文档是用户了解系统的第一步,它应该能使用户获得对系统的准确的初步印象。
  2. 系统文档
    所谓系统文档指从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。

8.4.3 可维护性复查

  1. 系统大小
  2. 程序设计语言
  3. 系统年龄
  4. 数据库技术的应用
  5. 先进的软件开发技术

8.5 预防性维护

1)反复多次做修改程序的尝试;
2)先通过仔细分析程序,尽可能多地掌握程序内部工作细节,再有效地修改;
3)用软件工程方法重新设计、编码和测试需要变更的软件部分; —局部再工程
4)以软件工程方法为指导,对程序全部重新设计、编码和测试。—软件再工程

8.6 软件再工程过程

在这里插入图片描述

  1. 库存目录分析
    包含每个应用系统的基本信息,如:名称、构建日期、修改次数、过去18个月报告的错误、用户数量文档质量、预期寿命等。从中选出再工程的候选者。
  2. 文档重构
    (1)如果一个程序走向生命终点,不再经历变化,则保持现状;
    (2)重构只针对当前正在修改的软件部分。
  3. 逆向工程
    逆向工程是一个恢复设计结果的过程,从程序代码中抽取数据结构、体系结构和处理过程的设计信息。
  4. 代码重构
    用重构工具分析源代码,标注出与结构化程序设计概念不符的部分,重构它的代码,测试
    重构代码并更新代码。
  5. 数据重构
    当数据结构较差时,进行再工程。如以文件方式保存数据变为以数据库方式存储。
  6. 正向工程
    也称革新或改造,即应用软件工程的原理、概念、技术和方法来重新开发现有系统。

小结

软件维护手册

主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软
件的维护。

软件问题报告

指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软件修改提供准备文档。

软件修改报告

软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以
及修改的影响作出详细的描述,提交审批。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郭同学忒骚了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值