ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:59.88KB ,
资源ID:6168158      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6168158.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第八章维护.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第八章维护.docx

1、第八章维护第八章 维护一、概述 P2二、软件维护的定义所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。维护的类型有四种:1、改正性维护(Corrective Maintenance)-诊断和改正错误的过程 在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。 这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。 为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,所进行的诊断和改正错误的过程就叫做改正性维护。2、适应性维护(Adaptive Maintenance )-为适应变化了的环境而进行的软件修改活动

2、在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)都可能发生变化。 为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。3、扩充与完善性维护(Perfective Maintenance) 在软件的使用过程中,用户往往会对软件提出增加新功能或修改已有功能、改善性能的要求。 为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。 这种情况下进行的维护活动叫做扩充与完善性维护。4、预防性维护(Preventive Maintenance) 预防性维护是为了提高软件的可维护性、可靠性等,为

3、以后进一步改进软件打下良好基础。 预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。目前,这类维护活动相对比较少。各类维护所占比例:三、软件维护的特点1、结构化维护与非结构化维护差别巨大 非结构化维护-软件配置的惟一成份是程序代码,维护活动从艰苦地评价程序代码开始。 P8 结构化维护-有一套完整的软件配置存在,维护工作从评价设计文档开始。 P92、影响软件维护的因素诸多系统大小、程序设计语言、系统年龄、是否应用数据库技术、是否采用较先进的软件开发技术、开发时是否考虑将来的修改、其他因素(应用的类型、数学模型、任务的难度、开关与标记、IF嵌套

4、深度、索引或下标数等)3、软件维护的代价高昂 首先,软件维护需要的工作量很大,平均说来,大型软件的维护成本高达开发成本的4倍左右。目前国外许多软件开发组织把60%以上的人力用于维护已有的软件,而且随着软件数量增多和使用寿命延长,这个百分比还在持续上升。 有形的软件维护成本是花费了多少钱,而无形的维护成本有更大的负面影响。(1) 一些合理的修复或修改请求不能及时安排,使得客户不满意;(2) 变更的结果引入新的故障,使得软件整体质量下降;(3) 把软件人员抽调到维护工作中,干扰了软件开发工作。 维护工作量的计算模型:其中:M 是维护中消耗的总工作量P 是生产性工作量K 是一个经验常数c 是因缺乏好

5、的设计和文档而导致复杂性的度量d 是维护人员对软件熟悉程度的度量模型表明,如果使用了不好的软件开发方法(未按软件工程要求做),原来参加开发的人员或小组不能参加维护,则工作量(及成本)将按指数级增加。4、影响软件维护的典型问题 P1416 难以读懂他人的程序 无文档或不全 软件人员流动性大 设计时未考虑修改需要,修改困难 维护工作无吸引力,缺乏成就感 难以跟踪软件的创建过程、软件版本的进化过程,软件的变化未在文档中反映出来四、软件维护的过程软件维护过程本质上是更改和压缩了的软件定义和开发过程。1、前期工作事实上,远在提出一项维护要求之前,与软件维护有关的工作已经开始了。(机构、制度和标准) 首先

6、要建立维护的机构 申明维护申请报告的提出过程及评价的过程 为每一个维护申请规定标准的处理步骤 建立维护活动的记录保管,并规定复审的标准2、维护机构 P1819维护要求 维护管理员系统管理员变化授权人3、维护报告 应该由软件维护人员向用户提供标准化格式表格,使用户能表达所需软件维护要求; 维护申请报告或称软件问题报告,由申请维护的用户填写; 用户必须完整地说明产生错误的情况,包括输入数据、错误清单以及其它有关材料; 如果申请的是适应性维护或完善性维护,用户必须提出一份修改说明书,列出所有希望的改进。 维护申请报告将由维护管理员和系统管理员来研究处理。他们应相应地做出软件修改报告,指明:(1) 所

7、需修改变动的性质;(2) 申请修改的优先级;(3) 为满足某个维护申请报告,所需的工作量;(4) 预计修改后的状况。 软件修改报告应提交给变化授权人(修改负责人),经批准后才能进一步安排维护工作。4、软件维护工作流程 P23 尽管维护申请的类型不同,但都要进行同样的技术工作-是一次压缩了的软件工程。(1) 修改软件需求说明(2) 修改软件设计(3) 设计评审(4) 对源程序做必要的修改(5) 单元测试(6) 集成测试(回归测试)(7) 确认测试(8) 软件配置评审等。 在每次软件维护任务完成后要进行情况评审 P265、保存维护记录 P286、定量评价维护活动 P2930五、软件的可维护性1、软

8、件可维护性概述 软件可维护性是指软件维护人员理解、纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩软件的难易程度; 可维护性、可使用性、可靠性是衡量软件质量的主要指标,也是用户十分关心的几个方面。 提高可维护性是支配软件工程方法学所有步骤的关键目标; 许多软件的维护十分困难,原因在于这些软件的文档不全、质量差,开发过程不注意采用好的方法,忽视程序设计风格等; 许多维护要求并不是因为程序中出错而提出的,而是为适应环境变化或需求变化而提出的-维护是不可避免的。2、决定软件可维护性的因素 可理解性 P33 可测试性 P34 可修改性 P35 可移植性 P35 可重用性 P3637

9、3、软件的使用和维护与文档 文档是影响软件可维护性的决定因素,文档往往比代码更加重要; 软件文档应该满足下述要求:(1) 必须描述如何使用这个系统,没有这种描述时即使是最简单的系统也无法使用;(2) 必须描述怎样安装和管理这个系统;(3) 必须描述系统需求和设计;(4) 必须描述系统的实现和测试,以便使系统成为可维护的。 软件系统的文档可以分为用户文档和系统文档两类(1) 用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的;用户文档是用户了解系统的第一步,它应该能使用户获得对系统的准确的初步印象。文档的结构方式应该使用户能够方便地根据需要阅读有关的内容。用户文档至少应该包括下述5

10、方面的内容: 功能描述; 安装文档; 使用手册; 参考手册; 操作员指南(如果需要有系统操作员的话) 。 P4041上述内容可以分别作为独立的文档,也可以作为一个文档的不同分册,具体做法应该由系统规模决定。(2) 系统文档描述系统设计、实现和测试等各方面的内容。 P42 *4、可维护性复审 在软件生命周期的每个阶段,对软件的可维护性进行评价,为软件的可维护性打下基础,以使软件维护尽可能容易。P196197,P4345 在完成了每项维护工作之后,都应该对软件维护本身进行仔细认真的复审。(1) 维护应该针对整个软件配置,不应该只修改源程序代码。当对源程序代码的修改没有反映在设计文档或用户手册中时,

11、就会产生严重的后果;(2) 每当对数据、软件结构、模块过程或任何其他有关的软件特点做了改动时,必须立即修改相应的技术文档。不能准确反映软件当前状态的设计文档可能比完全没有文档更坏;(3) 用户通常根据描述软件特点和使用方法的用户文档来使用、评价软件。如果对软件的可执行部分的修改没有及时反映在用户文档中,则必然会使用户因为受挫折而产生不满。六、预防性维护预防性维护方法是由Miller提出来的,他把这种方法定义为:“把今天的方法学应用到昨天的系统上,以支持明天的需求。”开发和维护者不应等待用户的维护申请,在条件具备时应该主动地进行预防性维护。预防性维护对象: 预计若干年内将继续使用的程序 当今正成

12、功使用的程序 最近的将来要进行大修改和完善的程序七、软件再工程1、概述软件再工程,也叫做修理或再生,是一类软件工程活动。它将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式。它从已存在的程序中重新获得设计信息,而且使用这些信息来改建或重构现有的系统,同时加进新的功能或改善它的性能,以改进它的综合质量。软件再工程不仅可以帮助软件机构降低软件演化的风险,而且可以使软件将来易于进一步变更,有助于推动软件维护自动化的发展。2、逆向工程术语“逆向工程”来自硬件领域,是一种通过对产品的实际样本进行分析,得出一个或多个关于这个产品的设计和制造规格的活动。软件的逆向工程与此类似,通过对程序的分析

13、导出更高抽象层次的表示,如从现存的程序中抽取数据、体系结构、过程的设计信息等,是一个设计恢复的过程。逆向工程的过程如下图所示。逆向工程的过程从源代码重构开始,将无结构的源代码转化为结构化的程序代码,这使得源代码易阅读,并为后续的逆向工程活动提供了基础。抽取是逆向工程的核心,内容包括处理抽取、界面抽取和数据抽取。处理抽取可在不同的层次对代码进行分析,即语句、语句段、模块、子系统、系统。在进行更细的分析之前先应理解整个系统的整体功能。由于GUI(图形用户界面)给系统带来越来越多的好处,进行用户界面的图形化已成为最常见的再工程活动之一。界面抽取应先对现存用户界面的结构和行为进行分析和观察。同时,还应

14、从相应的代码中提取有关的附加信息。数据抽取包括内部数据结构的抽取、全局数据结构的抽取、数据库结构的抽取等。逆向工程的过程所抽取的信息,一方面可以提供给软件工程师以便在任何维护活动中使用这些信息;另一方面可以用来重构原来的系统,使新系统更易维护。3、重构软件重构是对源代码和/或数据进行修改,使其易于理解或维护,以适应(服务于)将来的变更。通常,重构并不修改整个软件程序的体系结构,趋向于关注模块的细节。如果重构扩展到模块边界之外并涉及软件体系结构,则重构就会变成正向工程。软件重构中代码重构的目标是生成可提供相同功能但质量更高的程序。需要代码重构的模块往往以难于理解、测试和维护的方式编码。为此,用重

15、构工具分析源代码,标注出和结构化程序设计概念相违背的部分,然后重构此代码,复审和测试生成的重构代码,更新代码的内部文档。和代码重构不同,数据重构发生在相当低的抽象层次上,它是一种全范围的再工程的活动。当数据结构较差时,其程序将难于进行适应性修改和增强。数据重构在多数情况下以逆向工程活动为开始,来理解现存的数据结构,这称为数据分析。数据分析完成后则开始数据重新设计,包括数据记录标准化、数据命名合理化、文件格式转换、数据库类型转换等等。软件重构的好处,即:提高了程序的质量,改善了软件的生产率,减少了维护的工作量,使软件易于测试和调试等等。4、正向工程正向工程也称为改造或再工程,它用从现存软件恢复设计中得到的信息去重构现存系统,以改善其整体质量。在大多数情况下,被再工程的软件需重新实现现存系统的功能,并加入新功能和或改善整体性能。正向工程过程将应用软件工程的原则、概念和方法来重建现存应用。由于软件的原型(现存系统)已经存在,正向工程的生产率将远高于平均水平;同时,又由于用户已对该软件有经验,因而正向工程过程可以很容易地确定新的需求和变化的方向。这些优越性使得再工程比重新开发更有吸引力。5、软件再工程过程模型所定义的6类活动P198,P53,P5561实验:12-16周,周2上午,4-401,402

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1