软件工程:第11章 软件维护



《软件工程:第11章 软件维护》由会员分享,可在线阅读,更多相关《软件工程:第11章 软件维护(29页珍藏版)》请在装配图网上搜索。
1、软件工程概论软件工程概论 Software Engineering第第11章章 软件维护软件维护11.1 系统的变化系统的变化11.2 软件维护的基本内容和特点软件维护的基本内容和特点11.3 软件维护的实施软件维护的实施11.4 软件的可维护性软件的可维护性11.5 软件维护的副作用软件维护的副作用11.6 软件再工程软件再工程11.1 系统的变化系统的变化软件维护软件维护就是在软件已经交付使用之后,为了改正错误就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。或满足新的需要而修改软件的过程。维护活动维护活动1.改正性维护:在任何大型程序的使用期间,用户发现程改正性维护
2、:在任何大型程序的使用期间,用户发现程序错误,并且把问题报告给维护人员,进行诊断和改正序错误,并且把问题报告给维护人员,进行诊断和改正错误的过程。错误的过程。2.适应性维护:为了和变化了的环境适当地配合而进行的适应性维护:为了和变化了的环境适当地配合而进行的修改软件的活动。修改软件的活动。3.完善性维护:在使用软件的过程中用户提出增加新功能完善性维护:在使用软件的过程中用户提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。或修改已有功能的建议,还可能提出一般性的改进意见。4.预防性维护:为了改进未来的可维护性或可靠性,或为预防性维护:为了改进未来的可维护性或可靠性,或为了给未来的
3、改进奠定更好的基础而修改软件。了给未来的改进奠定更好的基础而修改软件。11.1 系统的变化系统的变化软件系统的变化:系统的需求越依赖于客观世界,软件系统的变化:系统的需求越依赖于客观世界,就越倾向于变化。就越倾向于变化。系统的类型系统的类型S-系统:有规格说明定义或来源于规格说明。在系统:有规格说明定义或来源于规格说明。在这些系统中特定的问题是根据它应用的整个环境这些系统中特定的问题是根据它应用的整个环境来描述的。来描述的。P-系统:可以用抽象的方式描述这个问题。然后系统:可以用抽象的方式描述这个问题。然后从抽象的观点出发书写系统的需求说明。近似解从抽象的观点出发书写系统的需求说明。近似解E-
4、系统:嵌入到现实世界中的,而且随着世界的系统:嵌入到现实世界中的,而且随着世界的变化而变化逐个解决方案建立在涉及的抽象过程变化而变化逐个解决方案建立在涉及的抽象过程的模型的基础上。的模型的基础上。11.1 系统的变化系统的变化系统生命周期中的变化系统生命周期中的变化软件开发阶段的改变导致变化的活动 相应需要改变的手工材料 需求分析 需求说明 系统设计 架构设计说明 技术设计说明 程序设计 程序设计说明 程序实现 程序代码 程序文档 模块测试 测试计划 测试脚本 系统测试 测试计划 测试脚本 系统提交 用户文档 培训工具 操作员文档 系统指南 程序员指南 培训课程11.1 系统的变化系统的变化系
5、统的生命范围系统的生命范围与系统的开发与维护相联系的,从创作到淘汰的一与系统的开发与维护相联系的,从创作到淘汰的一系列的全部耗费称为系列的全部耗费称为生命循环成本生命循环成本。通常,根据比较原始系统、修改系统和新系统生命通常,根据比较原始系统、修改系统和新系统生命循环的成本来决定是维护、重建还是取而代之。循环的成本来决定是维护、重建还是取而代之。11.2 软件维护的基本内容和特点软件维护的基本内容和特点软件维护分类:软件维护分类:改正性维护改正性维护。在软件开发阶段,由于测试技术的。在软件开发阶段,由于测试技术的局限性,必然会有某些错误未被发现一些隐藏下局限性,必然会有某些错误未被发现一些隐藏
6、下来的错误在运行过程中,在特定的条件下就会显来的错误在运行过程中,在特定的条件下就会显现出来被用户发现。针对这种错误进行修改的维现出来被用户发现。针对这种错误进行修改的维护就是改正性维护。护就是改正性维护。适应性维护适应性维护。软件运行的软硬件环境随着计算机。软件运行的软硬件环境随着计算机技术的飞速发展也日新月异。为适应这种环境的技术的飞速发展也日新月异。为适应这种环境的改变而进行的维护就是适应性维护。改变而进行的维护就是适应性维护。11.2 软件维护的基本内容和特点软件维护的基本内容和特点完善性维护完善性维护。在软件的使用过程中,用户对软件。在软件的使用过程中,用户对软件功能和性能的要求总是
7、不断变化的。例如快捷键功能和性能的要求总是不断变化的。例如快捷键的修改、界面风格的修改。为了满足这类要求进的修改、界面风格的修改。为了满足这类要求进行的维护就是完善性维护。行的维护就是完善性维护。预防性维护预防性维护。为了提高软件的可维护性和可靠性。为了提高软件的可维护性和可靠性而进行的维护就是预防性维护。而进行的维护就是预防性维护。11.2 软件维护的基本内容和特点软件维护的基本内容和特点软件维护的特点软件维护的特点非结构化非结构化维护:维护:软件的配置中只软件的配置中只有代码部分,而有代码部分,而没有相应的文档没有相应的文档说明。说明。结构化结构化维护:软维护:软件的配置是完整件的配置是完
8、整无缺的。无缺的。11.2 软件维护的基本内容和特点软件维护的基本内容和特点软件系统成本控制:软件维护费用、工作量软件系统成本控制:软件维护费用、工作量软件维护的工作量分为软件维护的工作量分为助动性助动性(理解代码、判明数(理解代码、判明数据结构、接口特性等为主的维护活动)和据结构、接口特性等为主的维护活动)和生产性生产性(分析和评价、设计修改和实现等维护活动)。(分析和评价、设计修改和实现等维护活动)。维护总的工作量的估算公式:维护总的工作量的估算公式:M=P+Ke(C-D)式中:式中:M表示维护活动的总工作量;表示维护活动的总工作量;P表示生产性工表示生产性工作量;作量;K表示经验常数;表
9、示经验常数;C表示软件的维护复杂度;表示软件的维护复杂度;D表示维护人员对软件的熟悉度;表示维护人员对软件的熟悉度;Ke(C-D)是助动性是助动性工作量。工作量。11.2 软件维护的基本内容和特点软件维护的基本内容和特点影响维护工作的主要因素:影响维护工作的主要因素:系统规模。系统规模。配套的文档。配套的文档。其他因素。其他因素。11.2 软件维护的基本内容和特点软件维护的基本内容和特点维护中的问题维护中的问题理解详细设计人员的代码是很困难的。理解详细设计人员的代码是很困难的。文档不规范。文档不规范。开发人员不能实时参与。开发人员不能实时参与。分析和设计的缺陷。分析和设计的缺陷。维护工作的乏味
10、。维护工作的乏味。用户使用者苛刻的要求。用户使用者苛刻的要求。11.2 软件维护的基本内容和特点软件维护的基本内容和特点软件维护的过程软件维护的过程11.2 软件维护的基本内容和特点软件维护的基本内容和特点维护组织:维护人员、维护管理员、系统管理员、维护组织:维护人员、维护管理员、系统管理员、修改控制决策机构以及配置管理员是该模式维护组修改控制决策机构以及配置管理员是该模式维护组织的一般组成人员。织的一般组成人员。修改控制部门维护申请配置管理人员维护控制员系统管理员维护工作人员11.2 软件维护的基本内容和特点软件维护的基本内容和特点维护的报告和审核:维护的报告和审核:维护申请单(维护申请单(
11、Maintenance Request Form,MRF):):适应性或者完善性维护。需要附加简短的修改需求适应性或者完善性维护。需要附加简短的修改需求说明,即需求规格说明书中应做哪些改动,如增加说明,即需求规格说明书中应做哪些改动,如增加功能或修改界面等。功能或修改界面等。软件问题报告单(软件问题报告单(Software Problem Report,SPR):改正性维护。提供完整的错误情况说明,):改正性维护。提供完整的错误情况说明,出错信息、错误发生环境等,包括交互数据清单和出错信息、错误发生环境等,包括交互数据清单和其他有关信息等。其他有关信息等。软件修改报告单(软件修改报告单(Sof
12、tware Change Report,SCR):):软件修改的真正依据是软件修改的真正依据是SCR。包括:为满足软件问。包括:为满足软件问题报告实际需要的工作量。所需修改变动性质。请题报告实际需要的工作量。所需修改变动性质。请求修改的优先级。修改的时候数据。求修改的优先级。修改的时候数据。11.2 软件维护的基本内容和特点软件维护的基本内容和特点维护过程的事件流维护过程的事件流维护申请类型类型严重性评价和分类立即进行评价优先次序评价优先次序行动通知申请者排列优先级从优先次序中选择下一任务应用软件工程方法计划组织应用资源开发新软件工作完成其他错误适应性完善性非常严重不严重否是是否11.2 软件
13、维护的基本内容和特点软件维护的基本内容和特点保存维护记录:要将维护阶段产生的文档保存到原保存维护记录:要将维护阶段产生的文档保存到原有文档中去,完善整个软件的文档说明。有文档中去,完善整个软件的文档说明。新产生的维护记录应该包括三类信息:维护前软新产生的维护记录应该包括三类信息:维护前软件运行情况(程序行数、指令条数、运行错误信件运行情况(程序行数、指令条数、运行错误信息等)、维护对软件产生的修改情况(维护类型、息等)、维护对软件产生的修改情况(维护类型、SCR单、变动的程序行数与功能、维护周期等)单、变动的程序行数与功能、维护周期等)以及数据变更情况。以及数据变更情况。11.2 软件维护的基
14、本内容和特点软件维护的基本内容和特点评价维护活动评价维护活动程序运行的平均失效次数,失效次数程序运行的平均失效次数,失效次数/运行次数。运行次数。每一类维护活动的总人时数。每一类维护活动的总人时数。每个程序、每种语言、每种维护类型所做的平均每个程序、每种语言、每种维护类型所做的平均程序变动数。程序变动数。维护阶段修改每条语句平均花费的人时数。维护阶段修改每条语句平均花费的人时数。维护每种语言平均花费的人时数。维护每种语言平均花费的人时数。一张一张MRF或者或者SPR的平均周转时间。的平均周转时间。各种维护类型所占的百分比。各种维护类型所占的百分比。11.2 软件维护的基本内容和特点软件维护的基
15、本内容和特点软件维护的技术软件维护的技术按照目的的不同,软件维护的技术分为两类:按照目的的不同,软件维护的技术分为两类:面向维护的技术面向维护的技术。面向维护的技术是软件开发阶。面向维护的技术是软件开发阶段用来减少错误,提高软件可维护性的技术,它段用来减少错误,提高软件可维护性的技术,它涉及软件开发的各个阶段。涉及软件开发的各个阶段。维护支援技术维护支援技术。维护支援技术是在软件维护阶段。维护支援技术是在软件维护阶段用来提高维护作业的效率和质量的技术。用来提高维护作业的效率和质量的技术。11.4 软件的可维护性软件的可维护性软件的软件的可维护性可维护性是指软件被理解、改正、调整和改是指软件被理
16、解、改正、调整和改进的容易程度。进的容易程度。软件的可维护性、可使用性和可靠性是衡量软件质软件的可维护性、可使用性和可靠性是衡量软件质量的量的3个主要特征,也是开发人员与用户最关心的问个主要特征,也是开发人员与用户最关心的问题。但是,到目前为止还没有普遍适用的定量度量题。但是,到目前为止还没有普遍适用的定量度量标准。标准。11.4 软件的可维护性软件的可维护性软件度量学的软件度量学的7个质量特性个质量特性可理解性。通过阅读源代码和相关文档,了解程序功能可理解性。通过阅读源代码和相关文档,了解程序功能及其如何运行,对源程序的代码容易理解。及其如何运行,对源程序的代码容易理解。可靠性。按照用户的要
17、求和设计目标,一个程序在给定可靠性。按照用户的要求和设计目标,一个程序在给定的一段时间内正确执行的概率。的一段时间内正确执行的概率。可测试性。表明论证程序正确性的容易程度。可测试性。表明论证程序正确性的容易程度。可修改性。表明程序容易修改的程度。可修改性。表明程序容易修改的程度。可移植性。表明程序转移到一个新的计算机环境的容易可移植性。表明程序转移到一个新的计算机环境的容易程度的大小。程度的大小。效率。表明一个程序能执行预定功能而又不浪费其资源效率。表明一个程序能执行预定功能而又不浪费其资源的程度。的程度。可使用性。表明用户使用方便、实用及易于使用的程度。可使用性。表明用户使用方便、实用及易于
18、使用的程度。11.4 软件的可维护性软件的可维护性间接地度量可维护性:维护全过程中查错间接地度量可维护性:维护全过程中查错改错改错验验证的一个周期,即从检测出软件运行时出现的错误开证的一个周期,即从检测出软件运行时出现的错误开始直到错误改正完成并经回归测试验证这段时间。始直到错误改正完成并经回归测试验证这段时间。觉察到问题所用的时间。觉察到问题所用的时间。收集维护工具所用的时间。收集维护工具所用的时间。分析问题所需的时间。分析问题所需的时间。形成修改说明书所用的时间。形成修改说明书所用的时间。修改设计与源代码所用的时间。修改设计与源代码所用的时间。测试(部分、整体)所用的时间。测试(部分、整体
19、)所用的时间。维护复审所用的时间。维护复审所用的时间。完全恢复所用的时间。完全恢复所用的时间。11.4 软件的可维护性软件的可维护性提高可维护性的方法提高可维护性的方法建立明确的软件质量目标。建立明确的软件质量目标。使用先进的软件开发技术和工具。使用先进的软件开发技术和工具。进行明确的质量保证审查。进行明确的质量保证审查。选择可维护的程序设计语言。选择可维护的程序设计语言。改进程序文档。改进程序文档。11.5 软件维护的副作用软件维护的副作用软件维护的副作用:因修改软件而造成的错误或其软件维护的副作用:因修改软件而造成的错误或其他不希望出现的情况。他不希望出现的情况。代码副作用代码副作用删除或
20、修改一个子程序。删除或修改一个子程序。删除或改变一个语句标号。删除或改变一个语句标号。删除或改变一个标识符。删除或改变一个标识符。为改进执行性能所做的修改。为改进执行性能所做的修改。改变文件的打开或关闭。改变文件的打开或关闭。改变逻辑运算符。改变逻辑运算符。把设计修改翻译成主代码的修改。把设计修改翻译成主代码的修改。对边界条件的逻辑测试所做的修改。对边界条件的逻辑测试所做的修改。11.5 软件维护的副作用软件维护的副作用数据副作用数据副作用重新定义局部和全程常量。重新定义局部和全程常量。重新定义记录或文件格式。重新定义记录或文件格式。增大或减小一个数组或高阶数据结构的大小。增大或减小一个数组或
21、高阶数据结构的大小。修改全程数据。修改全程数据。重新初始化控制标记或指针。重新初始化控制标记或指针。重新排列重新排列IO或子程序的自变量。或子程序的自变量。文档副作用文档副作用11.6 软件再工程软件再工程软件再工程软件再工程就是将新技术和新工具应用于旧的软件就是将新技术和新工具应用于旧的软件以期增强它的功能,提高其性能的一种以期增强它的功能,提高其性能的一种预防性预防性维护维护技术。技术。软件再工程不同于以完成纠错或适应需求变化为目软件再工程不同于以完成纠错或适应需求变化为目的的一般的软件维护,它是运用逆向工程、重构等的的一般的软件维护,它是运用逆向工程、重构等技术,在充分理解原有软件的基础
22、上,进行分解、技术,在充分理解原有软件的基础上,进行分解、综合,并重新构建软件,用以提高软件的各种性能。综合,并重新构建软件,用以提高软件的各种性能。11.6 软件再工程软件再工程软件再工程的过程软件再工程的过程软件再工程模型,软件再工程模型,6类活动:类活动:库存目录分析。库存目录分析。文档重构。文档重构。逆向工程。逆向工程。代码重构。代码重构。数据重构。数据重构。正向工程。正向工程。11.6 软件再工程软件再工程软件再工程的方法软件再工程的方法“大爆炸大爆炸”方法。方法。增量方法。增量方法。演化方法。演化方法。小结小结本章主要介绍了软件维护范畴的相关知识。软件维本章主要介绍了软件维护范畴的相关知识。软件维护是软件生命周期中持续时间最长的一个阶段,所护是软件生命周期中持续时间最长的一个阶段,所需要的人力、费用等资源也相当大。维护的内容不需要的人力、费用等资源也相当大。维护的内容不仅仅是对错误的修改(改正性维护),还包括适应仅仅是对错误的修改(改正性维护),还包括适应性维护、完善性维护和预防性维护。整个维护过程性维护、完善性维护和预防性维护。整个维护过程需要遵循一定的顺序(软件维护的具体实施),通需要遵循一定的顺序(软件维护的具体实施),通过一系列科学严格的步骤来完成一次维护。过一系列科学严格的步骤来完成一次维护。
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量管理知识100题(除答案)
- “五四精神”专题党课范文(三篇)
- 巡视巡察整改感悟及体会范文(三篇)
- 第四届全国节约用水知识大赛题库完整版(1-180题含答案)
- 党员干部在学习教育读书班上的交流发言范文(三篇)
- 各行业在2025年五四青年节演讲会上的演讲稿范文(四篇)
- 2025年度党风廉政建设工作会议上的讲话范文(四篇)
- 在全市“十五五”规划编制工作推进会上的讲话范文(三篇)
- 苏教译林版高中英语新课标3000词词性转换总结
- 高中英语阅读理解障碍词汇-总结
- 高中英语75个读后续写高频情绪描写词汇
- 高中英语读后续写21种场景句型积累与句子仿写
- 新员工培训的关键细节
- 某公司警示标志管理制度
- 某公司环保事故管理制度