叮咚,瞌睡虫又来搬文字啦。。。果然一停暖气就降温。。院子里的杏花已被昨天的雨水和大风折腾的凋零一地,看到今天只有两例确诊,感觉离自由的距离又更进了一步(撒花)。

今天学习是的软件维护

需要充分认识软件维护工作的重要性和迫切性,以提高软件的可维护性,尽量减少软件维护的工作量和费用,从而提高软件系统的整体效益。

8.1.1软件维护的定义

软件维护时指软件系统交付使用以后,为了改正软件运行错误,或者因满足新的需求而加入新功能的修改软件的过程,软件维护活动就是需要改正现有错误,改进现有软件以适应新环境的过程。

8.1.2软件维护的分类

①改正在特定使用条件下暴露出来的,测试阶段未能发现的,潜在软件错误和设计缺陷。

②因在软件使用过程中数据环境发生变化(如事物处理代码改变)或处理环境发生变化(如按照了新硬件或更换了操作系统)需要根据实际情况、修改软件以适应这些变化。

③提出改进现有功能,增加新的功能或者改善系统总体性能等要求,为了满足此类要求而对软件进行的修改。

④为了预防软件系统的失效而对软件系统所实施的修改。

由于上述原因引起的维护活动可能归结为以下4类:改正性维护、适应性维护、完善下维护和预防性维护。

1、改正性维护:把软件投入使用后才逐渐暴露出来的错误的诊断、定位、改错的过程,称为改正(纠错)性维护,占整个维护工作量的21%,主要维护策略:有开发过程、采用新技术、利用应用软件包、提高系统结构化程度,进行周期性维护审查等。

2、适应性:为了适应计算机的飞速发展,使软件适应外部新的硬件和软件环境,或者数据环境(数据库、数据格式、数据输入/输出方式、数据储存介质)发生的变化而进行修改软件的过程。

主要维护策略对可能变化的因素进行配置管理,将环境变化而必须修改的部分局部化、即局限于某些程序模块等。

3、完善性维护

扩充软件功能,增加软件性能、提高软件运行效率和可维护性而进行的维护活动,称为完善性维护。

主要维护策略:尽量采用功能强、方便使用的工具、采用原型化的开发方法等

4、预防性维护

是为了提高软件未来的可维护性,可靠性等或为了给改进奠定更好的基础而修改软件的过程,主要维护策略:采用提前实现软件重用等技术。

8.1.3软件维护的特点

①软件维护时软件生存周期中延续时间最长,工作量最大的一个阶段,大中型软件产品的开发时间一般为1-3年,运行期可达5-10年,在整个过程中需要进行上述4种类型的大量软件维护。

②软件维护不仅工作量大、任务重、而且维护不当还会产生一些意想不到的副作用,甚至引起新的错误。

③是一个修改和简化的软件开发活动,开发的所有环节几乎都要维护,需要采用软件工程原理和方式进行,才能保证软件维护活动的高效率、标准化。

④软件维护工作一直未受到软件设计者们的足够重视,有关软件维护方面的文献资料很少,相应的技术手段和方法也很缺乏。

8.2软件维护的过程

首先要建立一个维护组织,然后建立维护活动登记申请制度及对维护方案的审批制度,规定复审的评价标准。

8.2.1结构化维护与非结构化维护

只配置源程序,注解和说明很少,容易理解出错,没有测试方面的文档,不可能进行回归测试)这些让程序员望而却步、事倍功半,这就是非结构化维护。

如果存在完整的软件配置,维护工作可以从设计文档、确定软件的重要的结构特点,功能特性和接口特点,确定所要求得修改和校正,计划一种处理方法,修改设计并进行复审,编制新的源程序,进行回归测试、最后交付使用,这就是结构化维护,此方法会大大减少维护工作量,且维护质量较高。

8.3图结构化维护与非结构化维护对比图

必须按照软件工程学的方法来开发 软件,这样才能降低维护成本,提高软件维护的效率和质量。

8.2.2维护组织

图8.4是一种典型的软件维护组织方式。

8.2.3维护工作的流程

软件维护过程是:建立维护机构编写软件维护申请报告 确定软件维护工作流程整理维护文档评价维护性能

1、建立维护机构:维护管理员、修改批准人员、系统管理员、配置管理和维护人员。

2、编写软件维护申请报告:提出维护清单、如申请的是适应完整或预防性维护,必须提出一份修改说明书,由维护管理员和系统管理员共同研究处理,相应地做出软件变更报告SCR,SCR内容包括:所需修改变动的性质、申请修改的优先级、为满足该维护申请报告所需的工作量(人员数、时间数等);预计修改后的结果。

3、确定软件维护流程

图8.5软件维护流程图

(1) 确认维护类型:需要维护人员与用户反复协商弄清错误概况和对业务的影响大小,用户系统做什么样的修改,把这些情况存入维护数据库,由维护管理员判断维护的类型,针对不同维护类型,进行不同优先级别的安排。

(2)实施相应维护:修改软件需求说、修改设计、设计评审、对源程序做必要的修改,单元测试、集成测试(回归测试)确认测试、软件配置评审等。

3、维护评审:应对发以下问题进行总结。

①在目前情况下、设计、编码和测试那些方面可以改进

②那些维护资源应该有而实际没有

③工作中主要的或次要的障碍是什么

④从维护申请的类型来看,是否应该有预防性维护

4、整理软件维护文档

每项维护活动都应收集相关的数据,主要包括:修改程序增加的源程序语句条数;修改程序所减少的源程序语句条数,每次修改所付出的人员和时间数;维护申请报告的名称和维护类型,维护工作的净收益等。

5、评价软件维护性能

第八章 软件维护(1)相关推荐

  1. 《软件工程导论》课后习题解答

    来源:https://blog.csdn.net/Rong_Toa/article/details/80771976 第一章 软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过 ...

  2. 软件工程学习笔记(考试版)

    软 件 工 程 笔 记 第一章 ² 一个软件产品必须由一个完整的配置组成,软件配置主要包括:程序,数据及相关文档.程序是能够完成预定功能和性能的可执行的指令序列:数据是使程序能够适当的处理信息的数据结 ...

  3. 《软件工程导论》课后习题答案

    <软件工程导论>课后习题答案 第一章 软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.这些问题表现在以下几个方面: (1)用户对开发出 ...

  4. 2008-1-14 《软件工程》课后习题解答...

    第一章 概述 1.软件产品的特性是什么? a.软件产品是一种逻辑产品. b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品. c.软件产品 ...

  5. 软件工程导论概念集合

    <软件工程导论>主编:薛继伟 哈尔滨工业大学出版社 第一章软件工程概述 软件:软件是程序以及所有使程序正确运行所需的相关文档和配置信息.软件=程序+数据+文档 软件危机:随着计算机应用的普 ...

  6. 《软件工程导论》考试复习资料(全、附答案)

    本资料来自专业老师提供的复习资料,题目较多覆盖全面,对考试和平常学习及极其有用. <软件工程> 期末复习答疑 一.怎样进行课程的总复习? 将在16周最后的课程总复习课(串讲):第一.各章的 ...

  7. 【系统分析师之路】第八章 系统测试与维护(章节重点)

    [系统分析师之路]第八章 系统测试与维护(章节重点) 第八章 系统测试与维护章节重点 [系统分析师之路]第八章 系统测试与维护(章节重点) 章节重点 一.软件测试的概念和方法(★★) 1)软件测试的概 ...

  8. 汇编语言第五到八章总结

    第五章 [BX]和loop 1.内存单元间接表示: [bx] mov  dl, [0];  dl  ←  ((ds)×16 + 0) mov  bx, 0 mov  dl, [bx];  dl  ←  ...

  9. led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验

    1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...

  10. [单刷APUE系列]第八章——进程控制[1]

    目录 [单刷APUE系列]第一章--Unix基础知识[1] [单刷APUE系列]第一章--Unix基础知识[2] [单刷APUE系列]第二章--Unix标准及实现 [单刷APUE系列]第三章--文件I ...

最新文章

  1. 资源 | 5月Python好文TOP 10新鲜出炉,你都看了吗?
  2. java使用链栈实现迷宫求解
  3. [MySQL 5.1 体验]MySQL 事件调度器(Event Scheduler)
  4. Servlet总结04——注意Servlet单实例的线程安全性
  5. 智迪科技携手海通安恒,启动SAP实施项目
  6. python栈与队列的封装
  7. android 中的invalidate 和 postInvalidate
  8. linux gcc编译C程序 分享
  9. 一文带你了解什么是GitOps
  10. 马化腾说它千年实现李彦宏说新瓶装旧酒,只有马云看好阿里笑了
  11. 关于DHCP的中继问题
  12. 计算机联锁控制系统的软件应具备信号操作功能,N6_计算机联锁控制系统原理-软件原理.ppt...
  13. OpenCVSharp Mat.Set<T>修改像素颜色
  14. 红帽linux如何装软件,redhat 下软件的安装
  15. variance和variation的区别
  16. 去掉window.print()去除页眉页脚及网址
  17. Java子类与父类之间的对象转换
  18. 企业级数据中台应用架构和技术架构
  19. 購物籃分析,最清楚概念-part1
  20. 为什么磁盘1次随机读需10ms

热门文章

  1. UNIAPP使用MathJax解析数学公式
  2. Xshell上传文件到Centos服务器
  3. 计算机组策略无法编辑,win7系统无法打开本地组策略编辑器的解决方法
  4. 微信小程序服装商城+后台管理系统
  5. 等保三级 MySql数据库通用测评知识
  6. 2020年中青杯数学建模B题思路
  7. 信息学奥赛一本通(C++版)在线评测系统 1161:转进制
  8. Embedded Linux学习笔记—TQE9_i.MX6Q LTIB环境配置
  9. 同步检波 matlab,AgilentN9030A|安捷伦N9030A|KeysightN9030A|是德N9030A|频谱分析仪
  10. 引导扇区维护工具linux,bootice引导扇区维护工具(bootice1.3.4新版及1.3.3经典版)...