【教学课件】第8讲软件维护.ppt

上传人:牧羊曲112 文档编号:5659578 上传时间:2023-08-06 格式:PPT 页数:31 大小:358KB
返回 下载 相关 举报
【教学课件】第8讲软件维护.ppt_第1页
第1页 / 共31页
【教学课件】第8讲软件维护.ppt_第2页
第2页 / 共31页
【教学课件】第8讲软件维护.ppt_第3页
第3页 / 共31页
【教学课件】第8讲软件维护.ppt_第4页
第4页 / 共31页
【教学课件】第8讲软件维护.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《【教学课件】第8讲软件维护.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第8讲软件维护.ppt(31页珍藏版)》请在三一办公上搜索。

1、Copyright Xinjun Mao,1,第8讲 软件维护,毛新军 教授计算机科学与技术系602教研室 0731-(45)73649,软件工程导论 之,用工程化的方法来开发软件,Copyright Xinjun Mao,2,前言,软件在交付给用户使用后,由于应用需求、环境变化以及自身问题,对它进行维护不可避免软件维护是一个长期过程,耗费较大,Copyright Xinjun Mao,3,主讲内容,软件维护的分类软件维护过程软件的可维护性维护活动维护的副作用逆向工程和重构工程,Copyright Xinjun Mao,4,1.软件维护的分类,纠正性维护完善性维护适应性维护预防性维护,Copy

2、right Xinjun Mao,5,纠正性维护,什么是纠正性维护纠正软件中的错误起因用户在使用软件过程中一旦发现错误,他们会向开发人员提出纠正性维护的请求目的诊断和改正软件系统中潜藏的错误,Copyright Xinjun Mao,6,适应性维护,什么是适应性维护对软件进行改造以便适应新的环境和平台原因软件运行于一定的环境(硬件、OS、网络等)之上,运行环境发展很快目的适应环境变化和发展而对软件进行维护,Copyright Xinjun Mao,7,改善性维护,什么是改善性维护对软件进行改造以增加新的功能、修改已有的功能原因在软件系统运行期间,用户可能要求增加新的功能、建议修改已有功能或提出

3、其他改进意见目的满足用户日益增长的各种需求而对软件系统进行的改善和补充,Copyright Xinjun Mao,8,预防性维护,什么是预防性维护对软件的结构进行改造以便提高软件的可靠性和可维护性等原因为进一步改善软件系统的可维护性和可靠性,为以后的软件改进奠定基础的维护活动目的获取软件结构,重新改善软件结构,Copyright Xinjun Mao,9,主讲内容,软件维护的分类软件维护过程软件的可维护性维护活动维护的副作用逆向工程和重构工程,Copyright Xinjun Mao,10,软件维护形式,Copyright Xinjun Mao,11,软件维护成本(1/2),维护成本不断增加7

4、0年代(3540),80(60)软件维护工作量涉及二方面助动性:用于理解代码功能,结构特征以及性能约束生产性:用于分析和评价、修改设计和代码,Copyright Xinjun Mao,12,软件维护成本(2/2),软件维护工作量模型:M=P+K*e(c-d)其中 M=维护总工作量P=生产性工作量K=经验常数C=复杂度(表示设计好坏和文档完整程度)D=对欲维护软件的熟悉程度模型表明:如果没有好的软件开发方法或者软件开发人员不能参与维护,那么软件维护工作量会指数上升,Copyright Xinjun Mao,13,软件维护可能存在的问题,软件版本控制-重要问题很难追踪软件的创建过程-文档不齐全理解

5、他人的软件比较困难人员流动大,维护人员得不到开发人员帮助软件修改困难,易出错缺乏成就感,Copyright Xinjun Mao,14,主讲内容,软件维护的分类软件维护过程软件的可维护性维护活动维护的副作用逆向工程和重构工程,Copyright Xinjun Mao,15,软件的可维护性,什么是软件的可维护性软件被理解、改正、调整和改进的程度影响软件可维护性的因素软件开发方法-结构化、OO、.文档是否齐全开发人员素质软件系统结构是否清晰、易于理解标准的程序设计语言文档的结构是否标准化.,Copyright Xinjun Mao,16,保证软件可维护性的复审(1/2),复审是保证软件可维护性的一

6、项重要工作(1)需求分析的复审对将来可能修改和改进的部分加注释,对软件的可移植性加以讨论,并考虑可能影响软件维护的系统界面(2)设计阶段的复审从易于维护和提高设计总体质量的角度全面评审数据设计、总体结构设计、过程设计和人机界面设计,Copyright Xinjun Mao,17,保证软件可维护性的复审(2/2),(3)编码阶段的复审强调编码风格和内部文档(4)阶段性测试必要的预防性维护(5)软件维护活动完成之际也要进行复审,Copyright Xinjun Mao,18,主讲内容,软件维护的分类软件维护过程软件的可维护性维护活动维护的副作用逆向工程和重构工程,Copyright Xinjun

7、Mao,19,维护组织,“抓着谁就是谁”不可取,好的组织模式极为重要,Copyright Xinjun Mao,20,维护报告和评估,所有的维护申请都应以标准化的形式纠正性维护:记录出错现场(输入数据、出错信息等)适应性和完善性维护:提供简短的修改规格说明书维护申请单将成为外部文档,应被视为完成维护任务 的主要依据,Copyright Xinjun Mao,21,维护活动事件流,确认用户的维护请求按关键程度将每一维护任务在任务队列中排队对队首的维护任务开展工作状况复审,Copyright Xinjun Mao,22,保存维护纪录,记录维护活动过程中的各种信息目的:估算维护技术的有效性 估算维护

8、技术的实际成本,Copyright Xinjun Mao,23,评价维护活动,度量和统计维护数据软件每次运行的平均失效次数各类维护的成本维护阶段增删一个语句所花费的人时数各类维护的百分比,Copyright Xinjun Mao,24,主讲内容,软件维护的分类软件维护过程软件的可维护性维护活动维护的副作用逆向工程和重构工程,Copyright Xinjun Mao,25,维护的副作用,改动-新的错误维护的副作用是指由于维护或者在维护过程中其他一些不期望的行为引入的错误代码副作用:如修改或者删除程序、修改或者删除语句标号、修改逻辑符号等等。慎重,可通过回归测试发现数据副作用:因修改信息结构而带来

9、的不良后果,如局部和全局数据的再定义,记录或者文件格式的再定义等 文档副作用:由于在设计文档中未能准确反映软件修改情况而带来的不良后果,Copyright Xinjun Mao,26,主讲内容,软件维护的分类软件维护过程软件的可维护性维护活动维护的副作用逆向工程和重构工程,Copyright Xinjun Mao,27,逆向工程和重构工程,逆向工程和重构工程是预防性维护采用的主要技术逆向工程:分析已有程序,寻求比源代码更高级的抽象形式;或者在软件生命周期中,将某种形式的描述转换为更高抽象形式描述的活动重构:在同一抽象级别上的转换系统的描述形式设计恢复:借助工具从已有程序中抽象出有关数据设计、总

10、体结构设计和过程设计的信息重构工程:在逆向工程所获得信息的基础上修改或者重构已有的系统,产生系统一个新版本的过程,Copyright Xinjun Mao,28,逆向工程和重构工程示意图,Copyright Xinjun Mao,29,小结,软件维护的分类软件维护过程软件的可维护性维护活动维护的副作用逆向工程和重构工程,Copyright Xinjun Mao,30,思考题,思考题为什么软件维护在整个软件生命周期中占有重要的地位?,Copyright Xinjun Mao,31,Q&A,An Introduction to Software Engineering,Practice,Practice,and Practice,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号