- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8.5 预防性维护 预防性维护是由Miller提出来的, 方法定义为:“把今天的方法学应用到昨天的系统上,以支持明天的需求。” 6大进行软件再工程的理由 (1)维护一行源代码的代价是开发的14~40倍 (2)重新设计软件体系结构时使用现代设计概念,对将来的维护可能有很大的帮助。 (3)现有的软件作为原型使用,提高开发生产率 (4)用户容易搞清变更的需求和变更的范围 (5)利用逆向工程和再工程工具,可以使一部分工作自动化。 (6)在完成预防性维护的过程中建立起完整的软件配置。 8.6 软件再工程过程 典型的软件再工程过程模型如图8.2所示,该模型定义了6类活动。 是一个循环模型 每个阶段会重复, 可在任意阶段停止 1 库存目录分析 库存目录:包含关于每个应用系统的基本信息(例如,应用系统的名字,最初构建它的日期,已做过的实质性修 改次数,……,业务重要程度等) ? 库存目录分析作用:按照业务重要程度、寿命、当前可维护性、预期的修改次数等标准,把库中的应用系统排序,从中选出再工程的候选者,然后明智地分配再工程所需要的资源 1 库存目录分析 不必对库中的每个程序都作软件再工程 再工程的对象 (1)预定将使用多年的程序; (2)当前正在成功地使用着的程序; (3)在最近的将来可能要做重大修改或增强的程序。 2 文档重构 建立文档非常耗费时间,不可能为数百个程序都重新建立文档 ? 为了便于今后的维护,必须更新文档,但是由于资源有限,应采用“使用时建文档”的方法 ? 如果某应用系统是完成业务工作的关键,而且必须重构全部文档,则仍然应该设法把文档工作减少到必需的最小量 3 逆向工程 分析程序以便在比源代码更高的抽象层次上创建出程序的某种表示的过程 ? 逆向工程是一个恢复设计结果的过程,逆向工程工具从现存的程序代码中抽取有关数据、体系结构和处理过程的设计信息 4 代码重构 步骤 重构工具分析源代码,标注出和结构化程序设计概念 相违背的部分 重构有问题的代码 复审和测试生成的重构代码(以保证没有引入异常) 并更新代码文档 原则 关注个体模块的设计细节以及在模块中定义的局部数 据结构 不改变程序的体系结构,外部接口不发生变化 5 数据重构 数据重构始于逆向工程活动,分解当前使用的数据体系结构,必要时定义数据模型,标识数据对象和属性,并从软件质量的角度复审现存的数据结构 当数据结构较差时,应该对数据进行再工程 如果数据对软件体系结构和程序中的算法影响较大,对数据的修改会导致软件体系结构和代码层的修改 6 正向工程 使用现有程序中设计信息去改变或重构现有系统,以提高其整体质量 ? 被再工程的软件不仅重新实现现有系统的功能,而且加入了新功能和提高了整体性能 本课较短,可调节第11课 软件工程导论第12课 第 8 章 维护 第8章 维护 目的:提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。 8.1 软件维护的定义 定义:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程 8.1 软件维护的定义 维护类型 改正性维护:诊断和改正错误的过程(17%~21%) 适应性维护:为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的维护活动(18%~25%) 完善性维护:为了满足在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议的维护活动,还可能提出一般性的改进意见(50%~66%) 预防性维护: 为了给未来的改进奠定更好的基础而修改软件4% 8.2 软件维护的特点 1非结构化维护 软件配置的惟一成分是程序代码 步骤 维护活动从艰苦地评价程序代码开始 软件结构、全程数据结构、系统接口、性能和(或)设计约束等经常会产生误解,而且对程序代码所做的改动的后果也是难于估量 没有测试方面的文档,不可能进行回归测试 非结构化维护要付出很大代价 2 结构化维护 一个完整的软件配置存在 步骤: 评价设计文档开始, , 确定软件重要的结构特点、性能特点以及接口特点 修改设计并且对所做的修改进行仔细复查 编写相应的源程序代码 使用在测试说明书中包含的信息进行回归测试 把修改后的软件再次交付使用 8.2.2 维护的代价高昂 软件维护代价 维护费用:1970年的35%~40%,1980年上升为40%~ 60%,1990年上升为70%~80% 无形的代价 用户不满 软件的质量 人员的混乱 生产率的大幅度下降 维护工作量的一个模型 M=P+K×exp(c-d) P 生产性工作量 K 经验常数 c 复杂程度 d 维护人员对软件的熟悉程度 维护工作量和费用按指数地增加 8.2.3 维护的问题很多 8.3 软件维护过程 维护
文档评论(0)