第8章 维护

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

第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. 正向工程
    也称革新或改造,即应用软件工程的原理、概念、技术和方法来重新开发现有系统。

小结

软件维护手册

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

软件问题报告

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

软件修改报告

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小郭同学忒骚了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值