版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程第8章:维护第一页,共60页。任务:维护软件的正常运行,改进性能和质量,为进一步推广和升级做准备。工作量:大型软件的维护成本是开发总成本的四倍左右,软件开发组织把60%以上的工作量用于维护自己的软件上。第二页,共60页。软件一旦交付,就意味着漫长的维护之路的开始……第三页,共60页。当你改错一行代码的时候第四页,共60页。当你想要重构别人的代码时第五页,共60页。当你尝试想要修复一个bug时的样子第六页,共60页。当你凌晨4点还在工作时的样子第七页,共60页。星期五下午项目经理给你分配任务时的样子第八页,共60页。当你尝试修复别人代码的时候,结果...第九页,共60页。产品上线时发现缺陷时的样子第十页,共60页。终端用户没有你的软件使用说明的时候第十一页,共60页。当你看到第一次使用CSS美化页面的效果时的样子第十二页,共60页。一夜鏖战后第一次运行脚本时的样子第十三页,共60页。老板找你修复严重bug时样子第十四页,共60页。没有按Ctrl-s就关闭文件时的样子第十五页,共60页。在没有使用百度就解决一个重要问题时的样子第十六页,共60页。向服务器上传文件时的样子第十七页,共60页。当你发现上周五还非常好用,到了周一却不能运行时的样子第十八页,共60页。当所有人都在办公室挥汗如雨的加班而你却能安然的回家度周末时的样子第十九页,共60页。当听到老板说项目如果能如期完工将会有一笔奖金时的样子第二十页,共60页。当你使用正则表达式返回了想要的结果时的样子第二十一页,共60页。终于把代码写完时的样子第二十二页,共60页。软件交付软件维护软件维护过程软件的可维护性预防性维护软件再工程过程第二十三页,共60页。新系统旧系统一、软件交付尽可能平稳过渡第二十四页,共60页。1.软件交付使用的工作数据转换(如数据库数据)调试并加载,准备运行资料移交(如使用说明)用户培训
第二十五页,共60页。2.软件交付方式(1)直接方式旧系统新系统优点:转换简单,费用最省缺点:风险大
意想不到的问题,程序设计错误应急措施:随时能切换到旧系统不适用关系重大的系统第二十六页,共60页。(2)并行方式旧系统新系统关系重大的软件一般采用同时运行新系统和旧系统,这就是并行方式。优点:能对系统进行全面测试,减少了新系统风险;给用户熟悉新系统的时间。缺点:双系统要投入更多的人力财力。第二十七页,共60页。分期,分部分地交付使用克服了上面两种方式的缺点,既能防止直接转换产生的危险性,又能减少并行方式的费用必须考虑好新旧系统的配合问题和接口问题(3)逐步方式实际应用中,常常是混合以上几种方法。对系统不重要的部分采用直接方式,对系统重要部分采用并行方式,使系统平稳交付使用。第二十八页,共60页。特定条件下会暴露出缺陷;环境变化的适应性修改(数据环境、使用环境和处理环境)新需求的出现(功能改进和增加、性能要求)二、软件维护1.软件维护的原因第二十九页,共60页。(1)改正性维护在用户使用过程中诊断、发现和改正错误的过程称为改正性维护。2.软件维护的类型(2)适应性维护硬件系统和外设需要时常更新和升级,造成数据库环境、数据输入/输出方式、数据存储介质等发生变换。为了使软件适应这些环境变化而修改软件的过程叫做适应性维护。第三十页,共60页。(3)完善性维护用户在使用过程中提出新的功能和性能要求,造成功能增加和修改称为完善性维护。(4)预防性维护为了改进软件未来的可维护性或可靠性,或者为未来维护方便而进行的修改,称为预防性维护。在实践中比较少见。第三十一页,共60页。在各类维护中,完善性维护占软件维护工作的大部分。根据国外的数据统计表明,完善性维护占全部维护活动的50%~66%,改正性维护占17%~21%,适应性维护占18%~25%,其它维护活动占4%左右。第三十二页,共60页。非结构化维护:经常产生误解,不能回归测试,维护代价大。3.结构化维护评价代码评价软件结构评价数据结构评价系统接口评价设计约束第三十三页,共60页。结构化维护评价设计文档确定软件结构评价性能特点评价接口特点修改设计修改代码回归测试第三十四页,共60页。有形代价:维护的费用开支70年代,软件维护费用占总预算的30%~40%,80年代上升到60%左右,90年代达到了80%。4.软件维护的代价第三十五页,共60页。无形代价:潜在的影响当看起来合理的要求不能及时满足时,会引起用户的不满;修改可能会引入新的错误,使软件质量下降;大量工程师从事维护工作,会影响开发工作。第三十六页,共60页。Belady和Lehman的维护工作量模型
M=P+Ke(c-d)其中:M:用于维护工作的总工作量
P:生产性工作量
K:经验常数
c:因缺乏好的设计和文档而导致软件复杂性的度量
d:维护人员对软件熟悉程度的度量复杂度-熟悉度5.软件维护工作量模型第三十七页,共60页。6.软件维护的典型问题只有代码而没有注释,维护就相当困难;维护人员经常变化与流动,维护工作量增加;没有足够的文档资料,或者资料不一致;软件在设计时没有考虑将来的修改(模块化设计原则);维护常常受挫,吃力不讨好,没有挑战,很多人不愿意从事这样的工作。第三十八页,共60页。三、软件维护过程1.维护组织…维护要求(软件问题报告)维护管理员系统管理员软件系统变化授权人第三十九页,共60页。包含信息:维护的工作量维护的性质优先级有关的事后数据(如测试数据等)2.维护报告第四十页,共60页。3.维护的事件流分析问题开始分析计划改正进度错误改正目录开发目录分配的人员维护任务分配的人员复审修改后的软件配置复审后新的的软件配置类型维护要求错误适应完善⊕⊕估量错误严重程度严重不严重⊕评价优先度高低⊕第四十一页,共60页。4.保存维护记录1)程序标识;2)源语句数;3)机器指令数;4)使用的程序设计语言;5)安装的日期;6)自安装以来程序运行次数;7)自安装以来程序失效次数8)程序变动的层次和标识;9)因程序变动而增加的源语句数;10)因程序变动而删除的源语句数;11)每个改动耗费的人时数;12)程序改动的日期;13)软件工程师的名字;14)维护要求表的标识;15)维护类型;16)维护开始和完成的日期;17)累计用于维护的人时数;18)与完成的维护相联系的纯效益。第四十二页,共60页。5.评价维护活动可以从以下方面度量维护工作:1)每次程序运行平均失效的次数;2)用于每一类维护活动的总人时数;3)平均每个程序、每种维护类型所做的程序变动数;4)维护过程中增加或删除一个源语句平均花费的人时数;5)维护每种语言平均花费的人时数;6)一张维护要求表的平均周转时间;7)不同维护类型所占的百分比。第四十三页,共60页。四、软件的可维护性可理解性可测试性可修改性可移植性可重用性1.决定因素软件可维护性是维护人员理解、改正和改进软件的难易程度。第四十四页,共60页。(2)可测试性设计成易测试、易诊断,能用测试工具和调试工具进行测试和诊断的软件。(1)可理解性:软件结构、接口、功能和内部过程的理解的难易程度。影响因素:模块化、结构化设计、详细的设计文档资料、源代码内部文档、良好的程序设计语言等。第四十五页,共60页。(3)可修改性与设计时采用的原则和策略相关。(耦合、内聚、控制域和作用域、局部化程度)(4)可移植性(5)可重用性决定软件可维护性的最终因素是软件设计阶段所采用的方法,以及软件文档资料的质量。提高软件的可维护性是软件工程的一个重要目标。第四十六页,共60页。2.文档用户文档系统文档功能描述安装文档使用手册参考手册操作员指南第四十七页,共60页。3.可维护性复审测试结束时进行正式的可维护性复审,也称配置复审目的:保证软件配置的所有成分是完整的、一致的和可理解的。第四十八页,共60页。(1)系统大小。系统功能越复杂,理解掌握起来就越困难,需要的维护工作量越大。(2)程序设计语言。语言的功能越弱,实现同样功能所需的语句就越多,程序就越大,维护起来就越困难。(3)系统年龄。老系统当初未按照软件工程的要求进行开发,文档太少;在长期的维护中许多地方与程序不一致,维护起来困难较大。4.影响维护工作量的因素第四十九页,共60页。(4)数据库技术(5)先进的开发技术。使用能使软件结构比较稳定的分析与设计技术(如面向对象分析、设计技术),可以减少一定的工作量。(6)其它因素。应用的类型、数学模型、任务的难度、IF嵌套深度等。第五十页,共60页。(1)反复多次做修改程序的尝试;(2)分析掌握程序内部细节,再修改;(3)用软件工程方法重新设计、编码和测试需要变更的软件部分;(4)以软件工程方法为指导,对程序全部重新设计、编码和测试。3:是局部再工程;4:是软件再工程/预防性维护五、预防性维护第五十一页,共60页。预防性维护的理由:(1)对于旧系统,维护一行原代码的代价可能是最初开该行源代码代价的14-40倍;(2)使用最新的设计理念重新设计软件体系结构(程序和数据结构),对将来的维护有较大帮助;(3)旧系统可作为原型,能提高开发效率。第五十二页,共60页。六、软件再工程过程正向工程库存目录分析文档重构逆向工程代码重构数据重构分析应用系统的信息,找出再工程的目标构建日期、修改次数、过去18个月报告的错误、用户数量、文档质量、预期寿命……第五十三页,共60页。六、软件再工程过程正向工程库存目录分析文档重构逆向工程代码重构数据重构重构只针对当前正在修改的软件部分。如果一个程序走向生命终点,不再经历变化,最后保持现状。第五十四页,共60页。六、软件再工程过程正向工程库存目录分析文档重构逆向工程代码重构数据重构恢复设计结果的过程,从程序代码中抽取数据结构、体系结构和处理过程的设计信息。第五十五页,共60页。六、软件再工程过程正向工程库存目录分析文档重构逆向工程代码重构数据重构分析源代码,标注出不符合结构化设计的部分,重构代码,测试并更新。第五十六页,共60页。六、软件再工程过程正向工程库存目录分析文档重构逆向工程代码重构数据重构对较差的数据结构进行再工程,以先进的数据组织方式代替陈旧的方式。第五十七页,共60页。六、软件再工程过程正向工程库存目录分析文档重构逆向工程代码重构数据重构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营销策划 -纪梵希柜台活动方案
- 汇报演出活动主持稿结尾范文
- 2024年车辆年检服务协议
- 二零二五年度坟墓迁移与墓园环境整治合作协议
- 二零二五年度互联网企业股权激励与员工股权收益权合同3篇
- 2024年货车租赁搬运合同样本
- 2024年生物医药技术研发合作合同
- 2025年度小型船舶买卖及船舶交易信用保证合同3篇
- 2024沈阳房屋买卖合同附带相邻权及土地使用协议2篇
- 2024年绿色环保墙纸进出口贸易合同3篇
- 湖南2025年湖南省生态环境厅直属事业单位招聘44人笔试历年参考题库附带答案详解
- 福建省部分地市2023-2024学年高三上学期第一次质量检测(期末)生物 含解析
- (新版):中国卒中学会急性缺血性卒中再灌注治疗指南
- 人工智能在体育训练中的应用
- 2024-2030年中国液态金属行业市场分析报告
- 高二上学期数学北师大版(2019)期末模拟测试卷A卷(含解析)
- 中考语文真题专题复习 小说阅读(第01期)(解析版)
- GB 45067-2024特种设备重大事故隐患判定准则
- 《陆上风电场工程概算定额》NBT 31010-2019
- 生物医学电子学智慧树知到期末考试答案章节答案2024年天津大学
- 幸福创业智慧树知到期末考试答案章节答案2024年山东大学
评论
0/150
提交评论