软件工程第2版教学课件ppt作者王宜贵第7章软件维护课件.ppt
文本预览下载声明
7.1 软件维护概述7.1.1软件维护的类型 1.改正性维护 2.适应性维护 3.完善性维护 4.预防性维护 7.1 软件维护概述7.1.2软件维护的特点 1.软件工程学方法对软件维护的影响 采用了软件工程学方法进行的结构化维护方式,会大大减少维护的工作量,减少浪费,提高总体维护质量。 2.维护的代价 在过去的几十年中,维护费用在不断地上升。 3.维护工作的困难 软件人员的流动性 没有文档资料或缺乏完整的文档资料 软件设计时没有强调模块独立 软件维护工作不吸引人 7.1 软件维护概述7.1.3 软件维护的副作用 修改软件往往伴随着引起新的错误的危险,即它会带来副作用。 1.修改代码的副作用 2.修改数据的副作用 3.修改文档的副作用 7.2 软件维护活动7.2.1 维护机构 7.2 软件维护活动7.2.2 维护申请 软件修改报告内容 (1)维护请求的性质。 (2)维护请求的优先级。 (3)完成维护请求所需的工作量。 (4)预计维护后的结果。 7.2 软件维护活动7.2.3 维护工作流程 7.2 软件维护活动7.2.4 程序修改的步骤 1.分析理解程序 2.修改程序 3.验证程序 7.2 软件维护活动7.2.5 维护记录 (1)程序名称; (2)源语句数; (3)机器指令条数; (4)所用的程序设计语言; (5)程序安装日期; (6)程序安装后运行次数; (7)与 (6)有关的故障处理次数; (8)程序改动的层次和名称; (9)因程序改动而增加的源语句数; (10)因程序改动而删除的源语句数; (11)每个改动所耗费的“人时”数; (12)程序改动日期; (13)维护人员的姓名; (14)维护申请报告的名称; (15)维护类型; (16)维护开始和完成日期; (17)累计用于维护的人时数;(18)维护工作的纯效益。 7.2 软件维护活动7.2.6 维护评价 可以从以下七个方面对维护性能进行定量的度量: (1)每个程序运行平均故障处理次数; (2)累计用于每种维护的人时数; (3)每个程序、每种语言、每类维护所进行的平均代码改动次数; (4)因程序改动而增加或删除的一条源语句平均花费的人时数; (5)改动每种语言平均花费的人时数; (6)一份维护申请报告平均周转时间; (7)不同维护类型所占的百分比。 7.3 软件的可维护性7.3.1 决定软件可维护性的因素 1.可理解性 2.可测试性 3.可修改性 7.3 软件的可维护性7.3.2 提高可维护性的方法 1.明确软件的质量目标和优先级 2.使用提高软件质量的技术和工具 3.采取有效的质量保证审查措施 4.选择便于维护的程序设计语言 5.完善软件文档 7.3 软件的可维护性7.3.3 可维护性复审 在软件生命周期的每一个阶段都应考虑并努力提高可维护性,在每个阶段结束前的技术审查和管理复审中,也应侧重可维护性的复审。 7.4 软件再工程 软件再工程是通过对旧软件实施处理来增进对软件的理解,同时又提高软件自身的可维护性、可复用性等。 软件的逆向工程是通过分析一个源程序,力图建立源代码抽象层次的程序表示的过程。逆向工程是一个设计的恢复过程。逆向工程工具可以从一个现有的程序中提取有关程序数据、体系结构和程序设计方面的信息。 7.4 软件再工程 软件的逆向工程是通过分析一个源程序,力图建立源代码抽象层次的程序表示的过程。逆向工程是一个设计的恢复过程。 软件重构是对源代码或数据进行修改,使其易于理解和维护,以适应将来的变更。通常重构并不修改整个软件程序的体系结构,而是关注模块的细节。如果重构扩展到模块边界之外并设计软件体系结构,则重构就会变成正向工程。 正向工程也称为改造,即用从现存软件恢复设计中得到的信息来重构现存系统,以改变其整体质量。 * * *
显示全部