- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 软件维护与软件再工程§7.1 软件维护的概念 四类维护活动: 改正性维护 适应性维护 扩充与完善性维护 预防性维护三类维护所占比例:改正性维 护 20%适应性维 护 25%其它维护 5 %扩充与完善性维护 50%改正性维护占全部维护量的比率已从80年代初的20%大幅度下降, 90年代初一些公司的产品差错率已接近于零各类维护活动的根本目的是延长软件生存期2个月-2年1年-10年软件生存周期其它维护 4 %计划分析设计编码测试运行和维护(简称维护)改善期 稳定期 陈旧期软件工程周期重构软件诞生§7.2 软件维护的特点7.2.1 维护的成本(c-d )MP+Ke=M : 维护工作总工作量P : 生产性工作量K : 经验常数c : 复杂度d : 对该软件熟悉程度的度量7.2.2 维护中的典型问题(1)难以跟踪软件版本的进化过程, 软件的变化未在文档中反映出来.(2)难以跟踪软件的创建过程.(3)难以读懂他人程序.(4)无文档或不全.(5)软件人员流动性大.(6)设计时未考虑修改需要,修改困难.(7)维护工作无吸引力,缺乏成就感.§7.3 软件的维护任务7.3.1 维护组织7.3.2 维护报告维护要求表软件维护人员提供给用户的空白的维护要求表,也称为软件问题报告表,这个表格由要求一项维护活动的用户填写。软件维修报告满足维护要求表中的要求所需要的工作量;维护要求的性质;这项要求的优先次序;与修改有关的事后数据。维护阶段的事件流不管维护类型如何,都需要进行同样的技术工作。这些工作包括修改软件设计、复查、必要的代码修改、单元测试和集成测试(包括使用以前的测试方案的回归测试)、验收测试和复审。不同类型的维护强调的重点不同,但是基本路径是相同的。维护事件流中最后一个事件是复审,它再次检验软件配置的所有成分的有效性,并且保证事实上满足了维护要求表中的要求。软件过程的输出信息可以分为3类: ①计算机程序(源代码和可执行程序); ②描述计算机程序的文档(供技术人员或用户使用); ③数据(程序内包含的或在程序外的)。 上述这些项组成了在软件过程中产生的全部信息,我们把它们统称为软件配置,而这些项就是软件配置项。7.3.4 保存维护记录维护过程中作应记录的数据程序标识源程序语句数目机器代码指令条数..............以收集的数据为基础构造维护数据库,供维护评价使用.7.3.5 评价维护活动从七个方面度量(评价)维护工作:(1)每次程序运行平均失效的次数;(2)用于每一类维护活动的总人时数;(3)平均每个程序、每种语言、每种维护类型所做的程序变动数;(4)维护过程中增加或者删除一个源语句平均花费的人时数;(5)维护每种语言花费的平均人时数;(6)一张维护要求表的平均周转时间;(7)不同维护类型所占的百分比。7.4软件可维护性7.4.1 软件可维护性的定义 软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的难易程度。或者: 维护人员理解、改正、改动或者改进这个软件的难易程度。7.4.2 可维护性的度量度量程序可维护性的7个特性在各类维护中的侧重点 改正性维护 适应性维护 完善性维护可理解性?可测试性?可修改性? ?可靠性?可移植性?可重用性? ?效率? 建立明确的软件质量目标和优先级 使用提高软件质量的技术和工具 进行明确的质量保证审查 选择可维护的程序设计语言 改进程序的文档 维护老化代码§7.5 提高可维护性的方法§7.6 预防性维护维护老程序的方法:(1)反复多次的做修改程序的尝试;(2)仔细分析程序尽可能多得掌握程序的内部工作细节,以便更加有效的修改它;(3)在深入理解原有设计的基础上,用软件工程方法重新设计、重新编码和测试那些需要变更的软件部分;(4)以软件工程方法学为指导,对程序全部重新设计、编码和测试,为此可以使用逆向工程和再工程工具来帮助理解原有的设计。预防性维护:把今天的方法学应用到昨天的系统上,以支持明天的需求。§7.7 软件再工程 7.7.1 软件再工程在软件复用中,有问题是与现有系统密切相关的例如: —现有软件系统如何适应当前技术的发展及需求的变化,采用更易于理解的、适应变化的、可复用的系统软件构架并提炼出可复用的软件构件? —现存大量的遗产软件系统(Legacy Software)由于技术的发展,正逐渐退出使用,如何对这些系统进行挖掘、整理,得到有用的软件构件? —已有的软件构件随着时间的流逝会逐渐变得不可使用,如何对它们进行维护,以延长其生命期,充分利用这些可复用构件?软件再工程(Software Reengineering)正是解决上述问题的主要技术手段。 软件再工程是一类软件工程活动,是一个工程过程,它将逆向工
文档评论(0)