软件维护技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.改正性维护 要生成100%可靠的软件,成本太高。可通过新技术提高可靠性,减少 进行改正性维护的需要。这些技术包括:数据库管理系统、软件开发 环境、程序自动生成系统、较高级(第四代)的语言。应用以上4种方 法可产生更加可靠的代码。此外:
(1)利用应用软件包,可开发出可靠性更高的软件。 (2)结构化技术。用它开发的软件易于理解和测试。 (3)防错性程序设计。把自检能力引入程序,通过检查,提供审查跟踪。 (4)通过周期性维护审查,在形成维护问题之前就可确定质量缺陷。
改正在特定的使用条件下暴露出来的一些潜在的程序错误或程序设计 缺陷。
在软件使用过程中数据环境发生了变化(如事务处理代码发生改变) 或处理环境发生了变化(如安装了新的硬件或操作系统),需要对软 件进行修改以适应这种变化的需求。
用户和数据处理人员在使用软件时需要改进现有的功能、增加新的功 能、改善总体性能等,为满足这些要求,需要对软件进行修改以便把 这些要求纳入到软件之中。
12
1 软件维护概述
返回目录
(3)文档的副作用。对数据流、软件结构、 模块逻辑或任何其它有关 特性进行修改时,必须对相关技术文档进行相应修改。否则软件文 档不能反映软件的当前状态。 如果对可执行软件的修改不反映在文档里,就会产生文档的副作用。 例如,对交互输入的顺序或格式进行修改,如果没有正确地记入文 档中,就可能引起重大的问题。过时的文档内容、索引和文本可能 造成冲突,引起用户的失败和不满。因此,必须在软件交付之前对 整个软件配置进行评审,以减少文档的副作用。
5
1 软件维护概述
返回目录
在整个软件维护阶段所花费的全部工作量中,预防性维护只占很小 的比例,而完善性维护占了几乎一半的工作量,参看图1。
图1 三类维护占总维护比例
图2 维护在软件生存期所占比例
从图2中可以看到,软件维护活动所花费的工作占整个生存期工 作量的70%以上。
6
1 软件维护概述
返回目录
8
1 软件维护概述
返回目录
2.适应性维护 这一类维护不可避免,但可以控制。
(1)在配置管理时,把硬件、操作系统和其他相关环境因素的可能变 化考虑在内,可以减少某些适应性维护的工作量。
(2)把与硬件、操作系统,以及其他外围设备有关的程序归到特定的 程序模块中;把因环境变化而必须修改的程序局部于某些程序模块之 中。
3
1 软件维护概述
返回目录
1.2 软件维护的种类
软件维护是为了满足用户对已开发产品的性能与运行环境不断提高的 需要,达到延长软件的寿命的目的。按照这一目标,维护分如下几类:
1.改正性维护(Corrective Maintenance)
为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误 使用,而应当进行的诊断和改正错误的过程,就叫做改正性维护。
11
1 软件维护概述
返回目录
(2)修改数据的副作用。在修改数据结构时,有可能造成软件设计与数 据结构不匹配,因而导致软件出错。数据副作用就是修改软件信息结 构导致的结果。例如,在重新定义局部的或全局的常量、 重新定义记 录或文件的格式、增大或减小一个数组或高层数据结构的大小、修改 全局或公共数据、重新初始化控制标志或指针、重新排列输入/输出 或子程序的参数时,容易导致设计与数据不相容的错误。数据副作用 可以通过详细的设计文档加以控制。在此文档中描述了一种交叉引用, 把数据元素、记录、文件和其它结构联系起来。
2.适应性维护(Adaptive Maintenance)
随着计算机技术的飞速发展,外部环境(新的硬、软件配置)或数据 环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可 能发生变化,为了使软件适应变化,修改软件的过程叫做适应性维护。
4
1 软件维护概述
返回目录
3.完善性维护(Perfective Maintenance) 软件在使用的过程中,用户常常会对软件提出新的功能与性能的 要求。为了满足这些要求,需要修改或再开发软件,以扩充软件 功能、增强软件性能、改进加工效率、提高软件的可维护性,这种 情况下进行的维护活动叫做完善性维护。
1.3 影响软件维护工作量的因素 维护中,影响维护工作量的程序特性有以下几种:
(1)系统的大小 (2)程序设计语言 (3)系统年龄 (4)数据库技术的应用 (5)先进的软件开发技术 (6)其他方面
此外,许多软件在开发时并未考虑将来的修改,这就为软件的维护带来 许多问题。
7
1 软件维护概述
返回目录
ຫໍສະໝຸດ Baidu
1.4 软件维护的策略 James Martin等提出了一些维护策略,以控制维护成本。
(3)使用内部程序列表、外部文件,以及处理的例行程序包,可为维 护时修改程序提供方便。
9
1 软件维护概述
返回目录
3.完善性维护 利用前两类维护中列举的方法,也可以减少这一类维护。特别是数 据库管理系统、程序生成器、应用软件包,可减少系统或程序员的 维护工作量。此外,建立软件系统的原型,把它在实际系统开发之 前提供给用户。用户通过研究原型,进一步完善他们的功能要求, 就可以减少以后完善性维护的需要。
软件维护技术
学习目标
掌握软件维护的概念及类型 掌握软件维护的过程 掌握软件维护的可维护性 掌握提高软件可维护性的途径
1
软件维护技术
教学内容: 1 软件维护概述 2 软件维护的过程 3 软件的可维护性 4 提高可维护性的途径 5 逆向工程和再工程
2
1 软件维护概述
返回目录
1.1 软件维护的基本概念 把软件运行/维护阶段对软件产品所作的修改定义为软件维护。 进行软件维护的原因有很多,主要有以下几个方面:
10
1 软件维护概述
返回目录
1.5 修改程序的副作用 所谓副作用是指因修改软件而造成的错误或其它不希望发生的情况, 有三种副作用:
(1)修改代码的副作用。在使用程序设计语言修改源代码时,都可 能引入错误。例如,删除或修改一个子程序、删除或修改一个标号、 删除或修改一个标识符、改变程序代码的时序关系、改变占用存储的 大小、改变逻辑运算符、修改文件的打开或关闭、改进程序的执行效 率,以及把设计上的改变翻译成代码的改变、为边界条件的逻辑测试 做出改变时,都容易引入错误。
4.预防性维护(Preventive Maintenance) 为了提高软件的可维护性、可靠性等,为以后进一步改进软件打 下良好基础。通常,预防性维护定义为:“把今天的方法学用于 昨天的系统以满足明天的需要”。也就是说,采用先进的软件工 程方法对需要维护的软件或软件中的某一部分进行(重新)设计、 编制和测试。
相关文档
最新文档