第八章软件维护课件.ppt
《第八章软件维护课件.ppt》由会员分享,可在线阅读,更多相关《第八章软件维护课件.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、章软件维护软软件件维护维护的概念的概念软软件件维护维护的特点的特点软软件件维护维护的的过过程程软软件的可件的可维护维护性性1软件维护的概念软件维护的概念 软件维护是软件生存周期的最后一个阶段软件维护是软件生存周期的最后一个阶段,不属于系统开发的过程。不属于系统开发的过程。问题问题内内 容容维护维护目的目的 维护维护种类种类 满足用户对已开发产品的性能与运行环境不断提高的要求,进而满足用户对已开发产品的性能与运行环境不断提高的要求,进而达到延长软件寿命的目的。达到延长软件寿命的目的。改正性改正性适应性适应性完善性完善性预防性预防性对程序使用期间发现的程序错误进行诊断和改正的过程;对程序使用期间发
2、现的程序错误进行诊断和改正的过程;配合变化了的环境进行修改软件的活动;配合变化了的环境进行修改软件的活动;满足用户在使用过程中提出增加新的功能或修改已有满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的工作;功能的建议而进行的工作;为了改善未来的可维护性或可靠性而修改软件的工作。为了改善未来的可维护性或可靠性而修改软件的工作。软件维护的工作量非常大,不同应用领软件维护的工作量非常大,不同应用领域的维护成本差别也很大。一般大型软件域的维护成本差别也很大。一般大型软件的维护成本平均高达开发成本的四倍左右。的维护成本平均高达开发成本的四倍左右。改正性改正性完善性完善性适应性适应性预防性
3、预防性左右左右 软件的易维护性是软件开发过程中每个步骤的一个关键目标。维护费用占软件总支软件的易维护性是软件开发过程中每个步骤的一个关键目标。维护费用占软件总支出的到。而无形的代价更是无法估计的。出的到。而无形的代价更是无法估计的。2 维护的特点维护的特点()()维护要求维护要求评价代码评价代码评价设计评价设计配置配置复查复查修改程序修改程序修改设计修改设计计划途径计划途径?复查复查修改程序修改程序维护后软维护后软件与记录件与记录软件软件代码代码一一.维护方式维护方式 方式方式配置配置开始开始工作工作 成本成本难度难度结构化维护结构化维护非结构化维护非结构化维护每个阶段文档与程序代码每个阶段文
4、档与程序代码仅有程序代码仅有程序代码评价设计文档开始评价设计文档开始评价代码开始评价代码开始()()确定软件的结构特征、确定软件的结构特征、性能特性和接口特性,性能特性和接口特性,()()确定软件修改带来的影确定软件修改带来的影 响,找出一种处理方法;响,找出一种处理方法;()()修改设计、复审;修改设计、复审;()()再编写源程序代码,进行再编写源程序代码,进行 回归测试;回归测试;()()将修改后的软件交付使用将修改后的软件交付使用 软件结构、软件结构、全程数据结构、全程数据结构、系统接口、性系统接口、性能要求、设计能要求、设计约束等具体特约束等具体特点不清楚而很点不清楚而很难确定。难确定
5、。维护成本较低。维护成本较低。易于维护。易于维护。很高。很高。维护困难。维护困难。3 维护的特点维护的特点()()二二.与软件维护有关的问题与软件维护有关的问题影响影响维护维护因素因素维护维护困难困难 软件维护工作量模型:;:总工作量;:评价、修改设计和编写代码等软件维护工作量模型:;:总工作量;:评价、修改设计和编写代码等 工作量;:经验常数;:系统复杂程度;:维护人员对软件的熟悉程度。工作量;:经验常数;:系统复杂程度;:维护人员对软件的熟悉程度。()()模块化详细设计文档有助于理解软件的结模块化详细设计文档有助于理解软件的结 构、界面功能和内部流程;构、界面功能和内部流程;()()开发过
6、程中严格而科学的管理规划及清晰开发过程中严格而科学的管理规划及清晰 可靠的文档资料对发生错误后的理解与纠可靠的文档资料对发生错误后的理解与纠 错无疑是很重要的。错无疑是很重要的。()()模块的独立程度对软件修改的难易程度、模块的独立程度对软件修改的难易程度、改进和移植影响是很大的。改进和移植影响是很大的。软件开发及维护人员的水平;软件开发及维护人员的水平;使用标准的程序设计语言;使用标准的程序设计语言;使用标准的操作系统接口;使用标准的操作系统接口;使用规范化的文档资料;使用规范化的文档资料;测试用例的有效性。测试用例的有效性。别人写的程序在没有说明文档时,理解很困难,不为人喜欢;别人写的程序
7、在没有说明文档时,理解很困难,不为人喜欢;维护持续时间都很长,开发人员一般不在现场,对软件没有人说明。维护持续时间都很长,开发人员一般不在现场,对软件没有人说明。绝大多数软件在设计时都没有考虑将来的修改。除非设计中强调了绝大多数软件在设计时都没有考虑将来的修改。除非设计中强调了模块的独立性,否则软件的修改既困难又易发生差错。模块的独立性,否则软件的修改既困难又易发生差错。开发方法开发方法开发条件开发条件理解理解时间时间设计设计问题问题4 维护的过程维护的过程()()一一.建立软件维护的组织建立软件维护的组织,在组织中有总负责人、系统管理员和维护管理员等。在组织中有总负责人、系统管理员和维护管理
8、员等。二二.编写维护的报告编写维护的报告 用标准化的格式表达所有软件维护的要求。要求包括下列内容:用标准化的格式表达所有软件维护的要求。要求包括下列内容:.满足维护要求表中提出的要求所需要的工作量;满足维护要求表中提出的要求所需要的工作量;.维护要求的性质;维护要求的性质;.该项要求的优先顺序;该项要求的优先顺序;.与修改有关的事后数据。与修改有关的事后数据。三三.为每一个维护要求规定一个标准化的事件序列为每一个维护要求规定一个标准化的事件序列(见下页图形见下页图形).明确维护的类型明确维护的类型:纠错性维护纠错性维护,进一步分清是适应性维护还是完善性维护;进一步分清是适应性维护还是完善性维护
9、;.对纠错性维护从评价错误的严重性开始对纠错性维护从评价错误的严重性开始,分别不同程度采取不同的方法;分别不同程度采取不同的方法;.适应性维护和完善性维护沿着同一路径推进,确定优先顺序后开始工作;适应性维护和完善性维护沿着同一路径推进,确定优先顺序后开始工作;.对恶性软件故障,应把所有的资源用来解决问题;对恶性软件故障,应把所有的资源用来解决问题;.对任何类型的维护都要进行同样的技术工作,包括:修改软件设计、设计对任何类型的维护都要进行同样的技术工作,包括:修改软件设计、设计 复审、必要的代码修改、单元测试、集成测试、验收测试和复审等。复审、必要的代码修改、单元测试、集成测试、验收测试和复审等
10、。5 维护的过程维护的过程()()区分区分类型类型问题问题分析分析严重性严重性评价评价维护维护任务任务配置配置复审复审优先度优先度评价评价问题问题分析分析纠错项目表纠错项目表 纠错纠错 分配的人员分配的人员 已修改配置已修改配置 开发项目表开发项目表 测试测试 已修改软件已修改软件复审后供使用复审后供使用的软件配置的软件配置分配的人员分配的人员 适应适应严重严重完善完善不严重不严重计划改计划改正进度正进度低低高高维护事件序列图维护事件序列图维护事件序列图维护事件序列图维护要求维护要求6 维护的过程维护的过程()()维维护护记记录录中中的的数数据据工工作作量量考考虑虑程序标识;程序标识;自从安装
11、以来程序失败的次数;自从安装以来程序失败的次数;自从安装以来程序运行的次数;自从安装以来程序运行的次数;维护每种语言平均花费的人时数;维护每种语言平均花费的人时数;因程序变动而增加的源语句数;因程序变动而增加的源语句数;程序变动的层次和标识;程序变动的层次和标识;每次程序运行平均失效的次数;每次程序运行平均失效的次数;程序安装的日期;程序安装的日期;使用的程序设计语言;使用的程序设计语言;机器指令条数;机器指令条数;源语句数;源语句数;不同维护类型所占的时间比。不同维护类型所占的时间比。平均每个程序、每种语言、每种维护类型所做的程序变动数;平均每个程序、每种语言、每种维护类型所做的程序变动数;
12、与完成的维护相联系的纯效益。与完成的维护相联系的纯效益。累计用于维护的人时数;累计用于维护的人时数;维护开始和完成的日期;维护开始和完成的日期;维护类型;维护类型;维护要求表的标识;维护要求表的标识;软件工程师的名字;软件工程师的名字;程序改动的日期;程序改动的日期;每个改动所耗费的人时数;每个改动所耗费的人时数;因程序变动而删除的源语句数;因程序变动而删除的源语句数;用于同一类维护活动的总人时数;用于同一类维护活动的总人时数;一张维护要求表的平均周转时间;一张维护要求表的平均周转时间;增加或删除一个源语句平均花费的人时数增加或删除一个源语句平均花费的人时数7 可维护性可维护性()()决定软件
13、可维护性的因素决定软件可维护性的因素 因素因素内内 容容可理解性可理解性可测可测试性试性可修可修改性改性软件的结构、接口、功能和内部过程的难易程度;软件的结构、接口、功能和内部过程的难易程度;模块化、详细设计文档、结构化设计、源代码内部的文档;模块化、详细设计文档、结构化设计、源代码内部的文档;程序设计语言。程序设计语言。诊断和测试的难易程度取决于软件容易理解的程度;诊断和测试的难易程度取决于软件容易理解的程度;良好的文档对诊断和测试是至关重要的诊断和测试;良好的文档对诊断和测试是至关重要的诊断和测试;软件结构、可用的测试工具和调试工具,以往的测试过程是很重要的;软件结构、可用的测试工具和调试
14、工具,以往的测试过程是很重要的;在设计阶段应尽力把软件设计成容易诊断和测试的。在设计阶段应尽力把软件设计成容易诊断和测试的。与设计原理、规则直接相关;与设计原理、规则直接相关;与藕合、内聚、局部化、控制域、作用域等等都有关系。与藕合、内聚、局部化、控制域、作用域等等都有关系。8 可维护性可维护性()()与可维护性相关的文档与可维护性相关的文档 文档文档内内 容容文档描述文档描述要求要求用户用户文档文档系统系统文档文档如何使用这个系统;如何使用这个系统;怎样安装和管理这个系统;怎样安装和管理这个系统;系统需求和设计;系统需求和设计;系统的实现和测试。系统的实现和测试。功能描述功能描述:说明系统能
15、做什么;说明系统能做什么;安装文档安装文档:说明怎样安装该系统及使系统适应特定的硬件配置;说明怎样安装该系统及使系统适应特定的硬件配置;使用手册使用手册:简要说明如何使用这个系统;简要说明如何使用这个系统;参考手册:详尽描述用户可以使用的系统设施及方法,以及可能产参考手册:详尽描述用户可以使用的系统设施及方法,以及可能产 生的出错信息含义;生的出错信息含义;操作员指南:说明操作员如何处理使用中出现的各种情况。操作员指南:说明操作员如何处理使用中出现的各种情况。从问题定义、需求说明到验收测试这样一系列和系统实现有关的文档。从问题定义、需求说明到验收测试这样一系列和系统实现有关的文档。9第八章第八
16、章 小小 结结 一一.软件维护是软件生存周期的最后一个阶段,也是持续时间最长、软件维护是软件生存周期的最后一个阶段,也是持续时间最长、代价最大的一个阶段。代价最大的一个阶段。二二.软件维护包括四类活动:改正性维护、适应性维护、完善性维软件维护包括四类活动:改正性维护、适应性维护、完善性维 护和预防性维护。护和预防性维护。三三.软件的可理解性、可测试性和可维修性是决定软件可维护性的软件的可理解性、可测试性和可维修性是决定软件可维护性的 基本因素。基本因素。四四.软件生存周期的每个阶段和软件可维护性密切相关。软件生存周期的每个阶段和软件可维护性密切相关。五五.文档是影响软件可维护性的决定因素。文档
17、是影响软件可维护性的决定因素。六六.文档分为用户文档和系统文档,它们都必须和程序代码同时维文档分为用户文档和系统文档,它们都必须和程序代码同时维 护才有真正的价值。护才有真正的价值。10第八章第八章 习习 题题 .为什么说软件的维护是不可避免的?为什么说软件的维护是不可避免的?.软件的维护一般分为哪几类?软件的维护一般分为哪几类?.影响软件维护的因素有哪些?影响软件维护的因素有哪些?.软件维护困难主要表现在什么方面?软件维护困难主要表现在什么方面?.决定软件可维护性的因素?决定软件可维护性的因素?.软件价格应该计入维护成本吗?为什么?软件价格应该计入维护成本吗?为什么?.对前面各章中分析的各应
18、用系统,提出改进和扩充功能的要求?对前面各章中分析的各应用系统,提出改进和扩充功能的要求?()()教材销售采购系统;教材销售采购系统;()()图书管理系统;图书管理系统;()()房产管理系统。房产管理系统。11第九章软件工程管理 软件项目的特点和管理的职能软件项目的特点和管理的职能 成本估算成本估算 人员的分配和组织人员的分配和组织 进度安排进度安排 质量保证质量保证 项目计划项目计划 软件管理工具软件管理工具12 软件项目特点和管理的职能软件项目特点和管理的职能()()软件项目的规模越大,所需要软件项目的规模越大,所需要 的管理支持工作量越大。统计资料的管理支持工作量越大。统计资料 表明在软
19、件项目的规模达到一定程表明在软件项目的规模达到一定程 度时,所需的软件管理工作量将达度时,所需的软件管理工作量将达 到总工作量的一半。如图所示:到总工作量的一半。如图所示:技术和管理是软件生产中不可缺少的两个方面,对技术而言,技术和管理是软件生产中不可缺少的两个方面,对技术而言,管理意味着决策和支持。只有对生产过程进行科学的估量,作管理意味着决策和支持。只有对生产过程进行科学的估量,作到技术落实、组织落实和费用落实,才能达到提高生产率,改到技术落实、组织落实和费用落实,才能达到提高生产率,改善产品质量的目的。因此软件工程管理也是软件工程学中研究善产品质量的目的。因此软件工程管理也是软件工程学中
20、研究的领域之一。的领域之一。100%100%50%50%软件规模软件规模工工作作量量技术工作技术工作管理工作管理工作 软件项目的规模软件项目的规模,决定了采用怎样决定了采用怎样的管理水平、开发工具和开发方法。的管理水平、开发工具和开发方法。13 软件项目特点和管理的职能软件项目特点和管理的职能()()一一.软件项目的特点软件项目的特点 .软件项目与其他任何产业项目不同,它是算法、思想、概念、软件项目与其他任何产业项目不同,它是算法、思想、概念、组织、流程、效率、优化等的融合体;组织、流程、效率、优化等的融合体;.开发软件项目产品开发软件项目产品,在多数情况下在多数情况下,用户给不出明确的想法和
21、要用户给不出明确的想法和要 求。求。.在开发过程中,程序及其相关的文档资料常常需要修改,在修在开发过程中,程序及其相关的文档资料常常需要修改,在修 改过程中又可能带来新的问题,且这些问题要在很久以后才会改过程中又可能带来新的问题,且这些问题要在很久以后才会 发现。发现。.在研制开发过程中,文档资料是不可缺少的,但工作量又是巨在研制开发过程中,文档资料是不可缺少的,但工作量又是巨 大的大的,往往也是人们不愿去作的。往往也是人们不愿去作的。.参加软件项目的工作人员,要求具有一定的业务水平和实际工参加软件项目的工作人员,要求具有一定的业务水平和实际工 作经验,而很难完全避免的人员流动,对工作的影响是
22、很大的。作经验,而很难完全避免的人员流动,对工作的影响是很大的。离开的人员不仅带走了重要的信息,而且带走了工作经验。离开的人员不仅带走了重要的信息,而且带走了工作经验。14 软件项目特点和管理的职能软件项目特点和管理的职能()()二二.软件项目管理的特殊困难软件项目管理的特殊困难 .智力密集智力密集,可见性差可见性差,对没有软件知识和软件开发实践经验的人对没有软件知识和软件开发实践经验的人 员很难做好管理工作。员很难做好管理工作。.特定的开发环境特定的开发环境,加上特定的开发方法、工具和语言。建立在这加上特定的开发方法、工具和语言。建立在这 种内容、形式各异基础上的研制或生产方式,与其他领域大
23、规种内容、形式各异基础上的研制或生产方式,与其他领域大规 模现代化生产的管理区别很大,给管理造成的实际困难也更多。模现代化生产的管理区别很大,给管理造成的实际困难也更多。.劳动密集、自动化程度低,加之软件本身的复杂性,各种错误劳动密集、自动化程度低,加之软件本身的复杂性,各种错误 难以避免,为确保软件质量,给管理提出了更高的要求。难以避免,为确保软件质量,给管理提出了更高的要求。.使用方法繁琐,维护困难。使用方法繁琐,维护困难。.对从事软件项目开发工作的人员对从事软件项目开发工作的人员,不仅需要一定的技术水平和工不仅需要一定的技术水平和工 作经验作经验,而且要求具有良好的心理素质。因此对软件人
24、员的管理而且要求具有良好的心理素质。因此对软件人员的管理 是一个不可忽视的问题。是一个不可忽视的问题。15 软件项目特点和管理的职能软件项目特点和管理的职能()()三三.软件管理的职能软件管理的职能 .管理的目的管理的目的:按照工程预定的时间和费用按照工程预定的时间和费用,成功地完成软件的计划、开成功地完成软件的计划、开 发和维护任务。管理贯穿整个软件生存周期。发和维护任务。管理贯穿整个软件生存周期。.管理的内容管理的内容 ()()费用管理费用管理:对软件开发进行成本核算对软件开发进行成本核算,使软件生产按照商品生产的规使软件生产按照商品生产的规 律办事。包括律办事。包括:以简单、科学方法估算
25、软件开发费用以简单、科学方法估算软件开发费用,作为签定开发作为签定开发 合同的根据;管理开发费用的有效使用合同的根据;管理开发费用的有效使用,即用经济手段来保证产品即用经济手段来保证产品 如期按质完成。如期按质完成。()()质量管理质量管理:按项目的质量保证计划按项目的质量保证计划,确保各个开发阶段的开发和维护确保各个开发阶段的开发和维护 工作全部按软件工程的规范进行工作全部按软件工程的规范进行,保证软件产品的质量。保证软件产品的质量。()()配置管理配置管理:通过对于程序、文档和数据的各种版本所进行的管理,通过对于程序、文档和数据的各种版本所进行的管理,保证资料的完整性与一致性。保证资料的完
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 软件 维护 课件
限制150内