软件维护特点MaintenanceChara.ppt_第1页
软件维护特点MaintenanceChara.ppt_第2页
软件维护特点MaintenanceChara.ppt_第3页
软件维护特点MaintenanceChara.ppt_第4页
软件维护特点MaintenanceChara.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.2 软件维护的特点 Maintenance Characteristics,8.3 软件维护过程 Maintenance process,8.4 软件可维护性 Software Maintainability,8.5 软件维护的副作用 Maintenance side effect,第八章 软件维护 Software Maintenance,8.1 软件维护的概念 Concepts of Software Maintenance,8.1 软件维护的概念 Concepts of Software Maintenance,8.1.1 软件维护的种类 Classes of Software Maintenance,8.1.2 影响维护工作量的因素 Affected factors for Maintenance quantity,一般来说,要求进行维护的原因大致有以下几种: (1)改正程序中的错误和缺陷。 (2)改进设计以适应新的软、硬件环境。 (3)增加新的应用范围。 综合以上几种要求进行维护的原因,我们可以把软件维护分为以下几类: 1改正性维护(Corrective Maintenance) 2适应性维护(Adaptive Maintenance) 3完善性维护(Perfective Maintenance) 4预防性维护(Preventive Maintenance),8.1.1 软件维护的种类 Classes of Software Maintenance,8.1.2 影响维护工作量的因素 Affected factors for Maintenance quantity,1系统的规模(System scale) 2系统的年龄(System age) 3系统的结构(System Structure) 4程序设计语言(Program Languages) 5文档的质量(Quality of documentation),8. 2 软件维护的特点 Maintenance Characteristics,8.2.1 软件工程与软件维护的关系 Relationship between Software project and Software Maintenance,8.2.2 维护成本 Maintenance Cost,8.2.3 维护的问题 Maintenance Problem,8.2.1 软件工程与软件维护的关系 Relationship between Software project and Software Maintenance,无形的维护成本: (1)一些看起来是合理的改错或修改的要求不能及时满足,使得用户不满意; (2)维护时产生的改动,可能会带来新的潜伏的故障,从而降低了软件的整体质量; (3)当必须把软件开发人员抽调去进行维护工作时,将在开发过程中造成混乱。,8.2.2 维护成本 Maintenance Cost,用于软件维护的工作量可以分为两部分:一部分用于生产性活动,另一部分用于非生产性活动。下面的表达式是由Belady和Lehman提出的维护工作量的计算模型:,MpKe(c d) M:维护中消耗的总工作量; p:生产性工作量; K:经验常数; c:复杂程度; d:维护人员对软件的熟悉程度。 通过这个模型可以看出,如果使用了不好的软件开发方法,参加维护的人员都不是原来开发的人员,那么维护工作量(及成本)将按指数级增加。,(1)理解他人编写的程序一般都有一定的困难性。 (2)软件配置的文档严重不足甚至没有,或者没有合格的文档。 (3)当需要对软件进行维护时,由于软件人员经常流动,维护阶段持续的时间又很长,所以一般不能指望由原来的开发人员来完成或提供软件的解释。 (4)绝大多数软件在设计时没有考虑到将来的修改问题。 (5)软件维护可以说是一项毫无吸引力的工作。之所以形成这样一种观念,一方面是因为软件维护工作量大,看不到什么“成果”,更主要的原因是因为维护工作难度大,又经常遭受挫折。,8.2.3 维护的问题 Maintenance Problem,8.3 软件维护过程 Maintenance process,8.3.1 维护机构(Maintenance organization),8.3.2 维护申请报告(Maintenance Reporting),8.3.3 维护的工作流程(Flow of Maintenance),8.3.4 维护记录 (Record Keeping of Maintenance),8.3.5 维护评价 (Evaluation of Maintenance),8.3.1 维护机构 Maintenance organization,维护管理员负责接受维护申请,然后把维护申请交给某个系统管理员去评价。系统管理员是一名技术人员,他必须熟悉软件产品的某一部分。系统管理员对维护申请做出评价,然后交与修改负责人确定如何进行修改。,8.3.2 维护申请报告 Maintenance Reporting,维护申请报告是由软件组织外部提交的文档,它是计划维护活动的基础。软件组织内部应依此制定相应的软件修改报告,这个报告包括以下内容: (1)为满足某个维护申请要求所需的工作量; (2)所需修改变动的性质; (3)申请修改的优先级; (4)与修改有关的事后数据。 软件修改报告应提交修改负责人进行审核批准,以便进行下一步工作。,8.3.3 维护的工作流程 Flow of Maintenance,无论是哪一种类型的维护,都要进行以下工作:,(1)修改软件设计; (2)设计复审; (3)对源代码的必要修改; (4)单元测试; (5)集成测试,包括回归测试; (6)验收测试; (7)软件配置复审。 在每次软件维护任务完成后,需要进行必要的情况评审。这种评审是对以下问题的一个小结: (1)在当前情况下,设计、编码、测试中的哪些方面能够改进? (2)哪些维护资源是应该有而实际上却没有的? (3)工作中的主要和次要的障碍是什么? (4)要求的维护类型中有预防性维护吗?,8.3.4 维护记录 Record Keeping of Maintenance,对于维护记录中的内容,Swanson给出了下述的项目表: (1)程序名称; (2)源程序语句条数; (3)机器代码指令条数; (4)使用的程序设计语言; (5)程序的安装日期; (6)程序安装后的运行次数; (7)与程序安装后运行次数有关的处理故障的次数;,(8)程序修改的层次和名称;,(9)由于程序修改而增加的源程序语句条数; (10)由于程序修改而删除的源程序语句条数; (11)每项修改所付出的“人时”数; (12)程序修改的日期; (13)软件维护人员的姓名; (14)维护申请报告的名称; (15)维护类型; (16)维护开始时间和维护结束时间; (17)用于维护的累计“人时”数; (18)维护工作的净收益。,8.3.5 维护评价 Evaluation of Maintenance,一般来说,可以从以下七个方面来评价维护工作: (1)每次程序运行时的平均出错次数; (2)用于每一类维护活动的总“人时”数; (3)每个程序、每种语言、每种维护类型所做的平均修改数; (4)维护过程中,增加或删除每条源程序语句花费的平均“人时”数; (5)用于每种语言的平均“人时”数; (6)一张维护申请报告的平均处理时间; (7)各类维护类型所占的百分比。,8.4 软件可维护性 Software Maintainability,8.4.1 软件可维护性的度量 Maintainability Measures,8.4.2 提高软件可维护性的方法 Methods for Improving Maintainability,可以从以下四个方面来度是软件的可维护性: 1可理解性(understandability) 2可测试性(testability) 3可修改性(Modify-ability) 4可移植性(transplant-ability),8.4.1 软件可维护性的度量 Maintainability Measures,8.4.2 提高软件可维护性的方法 Methods for Improving Maintainability,1建立明确的软件质量标准 2利用先进的软件技术和工具 3建立明确的质量保证制度 4选择可维护的程序设计语言 5改进软件的文档,8.5 软件维护的副作用 Maintenance side effect,(1)对子程序的删除或修改; (2)对语句标号的删除或修改; (3)对标识符的删除或修改; (4)为改进程序执行性能所做的修改: (5)改变文件的打开或关闭; (6)对逻辑运算符的修改; (7)把设计的修改翻译成程序代码的修改; (8)对判定的边界条件所做的修改。 为确保编码修改没有引入新的错误,应进行严格的回归测试。一般情况下,通过回归测试,可以发现并纠正修改编码所带来的副作用。,1、修改编码的副作用(Coding side effect),(1)重新定义局部常量或全程常量; (2)重新定义记录格式或文件格式; (3)改变一个数组或高阶数据结构的大小; (4)修改全程变量; (5)重新初始化控制标记或指针; (6)重新排列输入输出或子程序的自变量。 修改数据的副作用可以通过完善的设计文档来加以限制。这种文档描述了数据结构,并且提供了一种把数据元素、记录、文件及其它结构与软件模块联系起来的交叉对照功能。,2、修改数据的副作用(Data side effect),维护应该着眼于整个软件配置,而不只是源程序代码的修改。如果源代码的修

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论