版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章维护
在软件产品被开发出来并交付用户使用之后,就进入了软件的维护阶段。这个阶段是软件生命周期的最后一个阶段,其基本任务是保证软件在一个相当长的时期能够正常运行。软件维护需要的工作量很大,平均说来,大型软件的维护成本高达开发成本的4倍左右。目前国外许多软件开发组织把60%以上的人力用于维护已有的软件。软件工程的目的是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。
本章学习目标:理解软件维护的定义掌握软件维护活动掌握程序修改步骤了解软件的可维护性
一、软件维护定义1.定义
所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件维护包括下述4项活动。(1)改正性维护。(2)适应性维护。(3)完善性维护。(4)预防性维护。
各类维护占维护在软件生
总维护比例存期所占比例
2.影响维护工作量的因素系统规模程序设计语言系统年龄数据库技术的应用先进的软件开发技术应用类型、数学模型等
3.维护成本M是维护中消耗的总工作量p是生产性工作量K是一个经验常数c是导致复杂性的度量d是对软件熟悉程度的度量。
二、软件维护活动为了有效地进行软件维护,应事先就开始做组织工作。首先建立维护的机构申明提出维护申请报告的过程及评价的过程为每一个维护申请规定标准的处理步骤建立维护活动的登记制度以及规定评价和评审的标准。
软件维护的机构
软件维护的工作流程开发项目表区分类型严重性评价优先度评价错误分析维护过程问题分析复审配置维护申请纠错适应完善纠错项目表严重不严重维护人员名单低高维护人员名单已修改的配置修改报告单已修改的软件批准交付用户的配置
尽管维护申请的类型不同,但都要进行同样的技术工作。修改软件需求说明修改软件设计设计评审对源程序做必要的修改单元测试集成测试(回归测试)
确认测试软件配置评审等
在每次软件维护任务完成后进行情况评审,对以下问题做一总结:在目前情况下,设计、编码、测试中的哪一方面可以改进?哪些维护资源应该有但没有?工作中主要的或次要的障碍是什么?从维护申请的类型来看是否应当有预防性维护?
维护档案记录程序名称源程序语句条数机器代码指令条数所用的程序设计语言程序安装的日期程序安装后的运行次数与程序安装后运行次数有关的处理故障次数程序改变的层次及名称修改程序增加的源程序语句条数修改程序减少的源程序语句条数每次修改所付出的“人时”数修改程序的日期软件维护人员的姓名维护申请报告的名称、维护类型开始时间和维护结束时间在维护上的累计人时数维护工作的净收益等
三、程序修改步骤在软件维护时,必然会对源程序进行修改。通常对源程序的修改不能无计划地仓促上阵,为了正确、有效地修改,需要经历以下三个步骤。分析和理解程序修改程序重新验证程序
1.分析理解程序经过分析,全面、准确、迅速地理解程序是决定维护成败和质量好坏的关键。在这方面,软件的可理解性和文档的质量非常重要。理解程序的功能理解程序的结构了解数据流信息了解控制流信息理解程序操作要求
2.修改程序设计程序修改计划修改代码以适应变化修改程序的副作用可能引入错误可能出现软件设计和数据结构不匹配文档和程序不匹配
3.重新验证程序静态确认验证修改后的程序需要检查:(1)修改是否涉及到规格说明书?修改结果是否符合规格说明书?(2)程序的修改是否足以修正软件中的问题?源程序代码有无逻辑错误?修改时有无修补失误?(3)修改部分对其它部分有无不良影响(副作用)?
计算机确认用计算机对修改程序进行确认测试:确认测试顺序:先对修改部分进行测试,然后隔离修改部分,测试程序的未修改部分,最后再把它们集成起来进行测试。这种测试称为回归测试。准备标准的测试用例。在重新确认过程中,需邀请用户参加。
维护后的验收维护主管部门要检验:全部文档是否完备,并已更新;所有测试用例和测试结果已经正确记载;记录软件配置所有副本的工作已经完成;维护工序和责任已经确定。
四、软件可维护性软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。可维护性、可使用性、可靠性是衡量软件质量的主要质量特性,也是用户十分关心的几个方面。软件的可维护性是软件开发阶段各个时期的关键目标。
1.决定软件可维护性的因素
目前广泛使用的是用如下的七个特性来衡量程序的可维护性。
可理解性 可使用性 可测试性 可移植性 可修改性 效率 可靠性
(1)可理解性可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。一个可理解的程序应具备以下一些特性:模块化风格一致性、不使用令人捉摸不定或含糊不清的代码使用有意义的数据名和过程名、结构化、完整性等。对于可理解性,可以使用一种叫做“90-10测试”的方法来衡量
(2)可靠性可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。关于可靠性,度量的标准主要有:平均失效间隔时间MTTF平均修复时间MTTR
(3)可测试性可测试性表明论证程序正确性的容易程度。程序越简单,证明其正确性就越容易。而且设计合用的测试用例,取决于对程序的全面理解。一个可测试的程序应当是可理解的,可靠的,简单的。对于程序模块,可用程序复杂性来度量可测试性。程序的环路复杂性越大,程序的路径就越多。因此,全面测试程序的难度就越大。
(4)可修改性可修改性表明程序容易修改的程度。一个可修改的程序应当是可理解的、通用的、灵活的、简单的。通用性是指程序适用于各种功能变化而无需修改。灵活性是指能够容易地对程序进行修改。
(5)可移植性可移植性表明程序转移到一个新的计算环境的可能性的大小。或者它表明程序可以容易地、有效地在各种各样的计算环境中运行的容易程度。一个可移植的程序应具有结构良好、灵活、不依赖于某一具体计算机或操作系统的性能。
(6)效率效率表明一个程序能执行预定功能而又不浪费机器资源的程度。这些机器资源包括内存容量、外存容量、通道容量和执行时间。
(7)可使用性从用户观点出发,可使用性定义为程序方便、实用、及易于使用的程度。一个可使用的程序应是易于使用的、能允许用户出错和改变,并尽可能不使用户陷入混乱状态的程序。
(8)可重用性所谓重用是指同一软件不做修改或稍加改动就可以在不同环境中多次重复使用。可重用的软件构件在开发时经过很严格的测试,可靠性比较高,改正性维护需求少。很容易修改可重用的软件构件使之再次应用在新环境中,因此,软件中使用的可重用构件越多,适应性和完善性维护也就越容易。
在各类维护中的侧重点
文档是影响软件可维护性的决定因素。软件系统的文档可以分为用户文档和系统文档两类。用户文档主要描述系统功能和使用方法;系统文档描述系统设计、实现和测试等各方面的内容。下面分别讨论用户文档和系统文档。2.文档
用户文档至少应该包括下述5方面的内容:功能描述:说明系统能做什么;安装文档:说明怎样安装这个系统以及怎样使系统适应特定的硬件配置;使用手册:简要说明如何着手使用这个系统;参考手册:详尽描述用户可以使用的所有系统设施以及它们的使用方法,还应该解释系统可能产生的各种出错信息的含义;操作员指南(如果需要有系统操作员的话):说明操作员应该如何处理使用中出现的各种情况。(1)用户文档
描述系统设计、实现和测试的文档对于理解程序和维护程序来说是极端重要的。对于软件开发过程前面阶段的各个文档,他们的作用是显而易见的。(2)系统文档
典型的软件再工程过程模型如图8.3所示,该模型定义了6类活动。五、软件再工程过程
1.库存目录分析每个软件组织都应该保存其拥有的所有应用系统的库存目录。该目录包含关于每个应用系统的基本信息。应该仔细分析库存目录,按照业务重要程度、寿命、当前可维护性、预期的修改次数等标准,把库中的应用系统排序,从中选出再工程的候选者,然后明智地分配再工程所需要的资源。
2.文档重构软件稳定或者生命周期临近结束,保持现状首先建立起正在修改部分的文档如果某应用系统是完成业务工作的关键,而且必须重构全部文档,则仍然应该设法把文档工作减少到必需的最小量。
3.逆向工程逆向工程工具从现存的程序代码中抽取有关数据、体系结构和处理过程的设计信息。
4.代码重构重构难于理解、测试和维护的模块的代码。重构并不修改整体的程序体系结构,它仅关注个体模块的设计细节以及在模块中定义的局部数据结构。如果重构扩展到模块边界之外并涉及软件体系结构,则重构变成了正向工程。
5.数据重构
数据重构始于逆向工程活动,分解当前使用的数据体系结构,必要时定义数据模型,标识数据对象和属性,并从软件质量的角度复审现存的数据结构。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加油站的行业监管与政策导向
- 二零二五年度美发行业互联网+解决方案合同4篇
- 2024年电线杆塔成品运输服务合同
- 2025年智能楼宇安防监控系统整体解决方案合同3篇
- 2025年度航空维修配件采购合同质量监控与供应链管理4篇
- 2025年度水资源综合利用承包合同规范范本3篇
- 2025年度机器人研发制造个人劳务分包合同范本2篇
- 2024年03月吉林招商银行长春分行校园招考笔试历年参考题库附带答案详解
- 二零二五年度建筑节能抹灰分包劳务合同8篇
- 二零二五年影视文化传播有限公司股权转让合同3篇
- 拆迁评估机构选定方案
- 床旁超声监测胃残余量
- 上海市松江区市级名校2025届数学高一上期末达标检测试题含解析
- 综合实践活动教案三上
- 《新能源汽车电气设备构造与维修》项目三 新能源汽车照明与信号系统检修
- 2024年新课标《义务教育数学课程标准》测试题(附含答案)
- 医院培训课件:《静脉中等长度导管临床应用专家共识》
- 趣味知识问答100道
- 中国国际大学生创新大赛与“挑战杯”大学生创业计划竞赛(第十一章)大学生创新创业教程
- 钢管竖向承载力表
- 2024年新北师大版八年级上册物理全册教学课件(新版教材)
评论
0/150
提交评论