软件生存周期的最后一个阶段系统投入生产性运行以后的时期.ppt
《软件生存周期的最后一个阶段系统投入生产性运行以后的时期.ppt》由会员分享,可在线阅读,更多相关《软件生存周期的最后一个阶段系统投入生产性运行以后的时期.ppt(29页珍藏版)》请在麦多课文档分享上搜索。
1、2018年10月14日,1,软件生存周期的最后一个阶段 系统投入生产性运行以后的时期 需要的工作量非常大:开发成本的四倍左右60以上的人力 有资料表明,在数据处理方面,预算的30%-80%往往需用于软件的维护工作软件开发必须有利于提高软件可维护性,软件维护,2018年10月14日,2,软件维护的定义,改正性维护 对使用中发现的程 序错误进行修改 适应性维护 为配合环境的变化 而进行的修改 完善性维护 增加新功能或修改 已有功能 预防性维护 给未来的改进奠定 更好的基础而修改,在软件交付使用后,为了改正错误或满足新的需要而修改软件的过程,2018年10月14日,3,一直是软件生存周期中被忽视的阶
2、段关于维护的文献很少几乎没有提出什么有效的技术途径和“方法”软件可维护性维护人员理解、改正、改动和改进某软件的难易程度,如何提高软件的可维护性,2018年10月14日,4,一、维护的特点,从三个不同的方面考虑:1. 为了完成维护任务需要进行的活动,以及软件工程方法学对这类活动的功效的影响;,如何提高软件的可维护性,2018年10月14日,5,最明显的,软件维护的费用随时间稳步上升:1970年-35%-40%1980年-40%-60%1990年-70%-80% 无形的代价:因为维护现有软件占用了资源,使开发新软件错失良机;当看来合理的维护要求未得到及时满足将引起用户不满;考虑欠周到的维护使软件引
3、入新故障质量降低;为了应急,临时抽人,使正在进行的开发工作打断或混乱;软件生产率大幅度下降 用于维护工作的劳动:生产性活动(分析评价、修改设计、编写程序代码等)非生产性活动(理解程序、解释数据结构、接口特点、 性能限度等),2. 维护的代价,如何提高软件的可维护性,2018年10月14日,6,维护工作量的一个模型:M P K exp ( c d ) 其中M维护用的总工作量P生产性工作量K经验常数c复杂程度d维护人员对软件的熟悉程度 模型表明:如果软件的开发途径不好(即,没有使用软件工程方法论),而且原的开发人员不能参加维护工作,那么维护工作量(和费用)将指数地增加,如何提高软件的可维护性,20
4、18年10月14日,7,起因:软件定义和开发的方法有缺点无严格、科学的管理与规划,3. 维护的问题,例子:某公园有一游船码头,负责人请一位软件开发人员实现 计算机辅助游船管理系统。要求如下:当游客向租船处查问是否有可以租用的船只,如果租船处有空船,管理员就准备好船只,帮助游客上船,并在联机终端上打入一信息“S”表示租船周期开始。计算机自动把当时时钟值送入信息域。当游客还船时,管理员打入另一信息“E”表示租船周期结束。由管理员向游客结算租船时间和费用。一天结束时,管理员要用一些管理信息总结每天工作状况,要求系统打印出:租船次数 平均租船时间,如何提高软件的可维护性,2018年10月14日,8,显
5、然,该系统的功能包括两部分: 对输入流的信息进行汇总计算; 打印输出.因为 平均租船的时间 = 总的时间 / 租船次数总时间 = ( 第一条租船结束时间 - 第一条租船开始时间)+ (第二条租船结束时间 - 第二条租船开始时间)+ 或者总时间 =(第一条租船结束时间 + 第二条租船结束时间 + )-(第一条租船开始时间 + 第二条租船开始时间 + ),如何提高软件的可维护性,2018年10月14日,9,BEGINOPEN MESSAGE-STREAMNUMBER=0TOTALTIME=0GET MESSAGEDO WHILE NOT END-OF-STREAMIF CODE=STHEN NUM
6、BER=NUMBER+1TOTALTIME=TOTALTIME-STARTIMEELSE TOTALTIME=TOTALTIME+ENDTIMEENDIFPRINT NUMBER OF SESSION=NUMBERIF NUMBER=0THEN PRINT AVERAGE SESSION TIME=TOTALTIME/NUMBERENDIFCLOSE MESSAGE-STREAM END;,可以写出如下伪码程序:,如何提高软件的可维护性,2018年10月14日,10,如此简单的算法完成了全部的功能要求,当然这只是多种实现方案之一。可后来,一系列的麻烦接踵而至:不久,负责人希望软件增加一项新功能
7、: 找出一天中最长租用时间LongestSessionTime 开发人员仔细考虑后,认为需重新设计算法,可是时间与经费都不允许,所以借口推辞(技术原因-OS不允许把新要求扩充近来)-作罢!,如何提高软件的可维护性,2018年10月14日,11,几天后,负责人又提出: 把每天的报告分成上午情况、下午情况两份报告 开发人员再次推托(磁盘原因无法达此目标), -负责人甚不满!接下来,负责人要求修改系统:从报告中删除一切不完整的信息因为通信线路的故障造成了部分信息丢失,不改不行 !此紧急状况下,开发人员无充足的时间让从头另做,-负责人再也无耐心听其找理由了!,如何提高软件的可维护性,2018年10月1
8、4日,12,结论:按某种要求改动软件并非易事!反思:此例最初的软件方案中,忽略了每个游客 的租船时间概念,制约了开发人员对负责 人后来一系列新要求的满足。经验教训:在系统设计中应抓住问题的基本量!-提高软件的可维护性!,如何提高软件的可维护性,2018年10月14日,13,二、 决定软件可维护性的因素 可理解性读者理解软件的结构、接口、功能和内部过程的难易程度 模块化、详细的设计文档、结构化设计、源代码内部的文档和良好的高级程序设计语言等等,都对改进软件的可理解性有重要贡献 可测试性 诊断和测试的容易程度 良好的文档、软件结构、可用的测试工具和调试工具,及以前设计的测试过程也都是非常重要的 维
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 生存 周期 最后 一个 阶段 系统 投入 生产性 运行 以后 时期 PPT
